aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ncurses/ANNOUNCE463
-rw-r--r--contrib/ncurses/AUTHORS38
-rw-r--r--contrib/ncurses/INSTALL1619
-rw-r--r--contrib/ncurses/MANIFEST1024
-rw-r--r--contrib/ncurses/Makefile.in97
-rw-r--r--contrib/ncurses/Makefile.os2259
-rw-r--r--contrib/ncurses/NEWS8571
-rw-r--r--contrib/ncurses/README210
-rw-r--r--contrib/ncurses/README.emx72
-rw-r--r--contrib/ncurses/TO-DO201
-rw-r--r--contrib/ncurses/aclocal.m45306
-rw-r--r--contrib/ncurses/announce.html.in600
-rwxr-xr-xcontrib/ncurses/config.guess1528
-rwxr-xr-xcontrib/ncurses/config.sub1662
-rwxr-xr-xcontrib/ncurses/configure17673
-rw-r--r--contrib/ncurses/configure.in1782
-rw-r--r--contrib/ncurses/convert_configure.pl119
-rw-r--r--contrib/ncurses/dist.mk160
-rw-r--r--contrib/ncurses/doc/hackguide.doc682
-rw-r--r--contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html6413
-rw-r--r--contrib/ncurses/doc/html/announce.html600
-rw-r--r--contrib/ncurses/doc/html/hackguide.html914
-rw-r--r--contrib/ncurses/doc/html/ncurses-intro.html2722
-rw-r--r--contrib/ncurses/doc/ncurses-intro.doc2501
-rw-r--r--contrib/ncurses/form/Makefile.in165
-rw-r--r--contrib/ncurses/form/READ.ME42
-rw-r--r--contrib/ncurses/form/f_trace.c70
-rw-r--r--contrib/ncurses/form/fld_arg.c98
-rw-r--r--contrib/ncurses/form/fld_attr.c119
-rw-r--r--contrib/ncurses/form/fld_current.c137
-rw-r--r--contrib/ncurses/form/fld_def.c399
-rw-r--r--contrib/ncurses/form/fld_dup.c101
-rw-r--r--contrib/ncurses/form/fld_ftchoice.c65
-rw-r--r--contrib/ncurses/form/fld_ftlink.c87
-rw-r--r--contrib/ncurses/form/fld_info.c109
-rw-r--r--contrib/ncurses/form/fld_just.c86
-rw-r--r--contrib/ncurses/form/fld_link.c96
-rw-r--r--contrib/ncurses/form/fld_max.c77
-rw-r--r--contrib/ncurses/form/fld_move.c64
-rw-r--r--contrib/ncurses/form/fld_newftyp.c135
-rw-r--r--contrib/ncurses/form/fld_opts.c138
-rw-r--r--contrib/ncurses/form/fld_pad.c85
-rw-r--r--contrib/ncurses/form/fld_page.c82
-rw-r--r--contrib/ncurses/form/fld_stat.c79
-rw-r--r--contrib/ncurses/form/fld_type.c97
-rw-r--r--contrib/ncurses/form/fld_user.c72
-rw-r--r--contrib/ncurses/form/form.h403
-rw-r--r--contrib/ncurses/form/form.priv.h252
-rw-r--r--contrib/ncurses/form/frm_cursor.c70
-rw-r--r--contrib/ncurses/form/frm_data.c193
-rw-r--r--contrib/ncurses/form/frm_def.c409
-rw-r--r--contrib/ncurses/form/frm_driver.c4581
-rw-r--r--contrib/ncurses/form/frm_hook.c142
-rw-r--r--contrib/ncurses/form/frm_opts.c127
-rw-r--r--contrib/ncurses/form/frm_page.c106
-rw-r--r--contrib/ncurses/form/frm_post.c124
-rw-r--r--contrib/ncurses/form/frm_req_name.c170
-rw-r--r--contrib/ncurses/form/frm_scale.c66
-rw-r--r--contrib/ncurses/form/frm_sub.c77
-rw-r--r--contrib/ncurses/form/frm_user.c72
-rw-r--r--contrib/ncurses/form/frm_win.c77
-rw-r--r--contrib/ncurses/form/fty_alnum.c167
-rw-r--r--contrib/ncurses/form/fty_alpha.c167
-rw-r--r--contrib/ncurses/form/fty_enum.c338
-rw-r--r--contrib/ncurses/form/fty_int.c246
-rw-r--r--contrib/ncurses/form/fty_ipv4.c105
-rw-r--r--contrib/ncurses/form/fty_num.c290
-rw-r--r--contrib/ncurses/form/fty_regex.c306
-rw-r--r--contrib/ncurses/form/headers32
-rw-r--r--contrib/ncurses/form/llib-lform734
-rw-r--r--contrib/ncurses/form/llib-lformw740
-rw-r--r--contrib/ncurses/form/modules76
-rw-r--r--contrib/ncurses/include/Caps1264
-rw-r--r--contrib/ncurses/include/Caps.aix41255
-rw-r--r--contrib/ncurses/include/Caps.hpux111278
-rw-r--r--contrib/ncurses/include/Caps.keys1354
-rw-r--r--contrib/ncurses/include/Caps.osf1r51274
-rw-r--r--contrib/ncurses/include/Caps.uwin1090
-rwxr-xr-xcontrib/ncurses/include/MKhashsize.sh42
-rwxr-xr-xcontrib/ncurses/include/MKkey_defs.sh182
-rwxr-xr-xcontrib/ncurses/include/MKncurses_def.sh80
-rwxr-xr-xcontrib/ncurses/include/MKparametrized.sh62
-rw-r--r--contrib/ncurses/include/MKterm.h.awk.in318
-rw-r--r--contrib/ncurses/include/Makefile.in126
-rw-r--r--contrib/ncurses/include/capdefaults.c84
-rw-r--r--contrib/ncurses/include/curses.h.in1230
-rw-r--r--contrib/ncurses/include/curses.tail179
-rw-r--r--contrib/ncurses/include/curses.wide252
-rwxr-xr-xcontrib/ncurses/include/edit_cfg.sh67
-rw-r--r--contrib/ncurses/include/hashed_db.h67
-rw-r--r--contrib/ncurses/include/headers42
-rw-r--r--contrib/ncurses/include/nc_alloc.h104
-rw-r--r--contrib/ncurses/include/nc_panel.h66
-rw-r--r--contrib/ncurses/include/nc_tparm.h65
-rw-r--r--contrib/ncurses/include/ncurses_cfg.hin72
-rw-r--r--contrib/ncurses/include/ncurses_defs203
-rw-r--r--contrib/ncurses/include/ncurses_dll.h86
-rw-r--r--contrib/ncurses/include/term_entry.h168
-rw-r--r--contrib/ncurses/include/termcap.h.in75
-rw-r--r--contrib/ncurses/include/tic.h332
-rw-r--r--contrib/ncurses/include/unctrl.h.in63
-rwxr-xr-xcontrib/ncurses/install-sh294
-rwxr-xr-xcontrib/ncurses/man/MKterminfo.sh110
-rw-r--r--contrib/ncurses/man/Makefile.in80
-rw-r--r--contrib/ncurses/man/captoinfo.1m193
-rw-r--r--contrib/ncurses/man/clear.153
-rw-r--r--contrib/ncurses/man/curs_add_wch.3x135
-rw-r--r--contrib/ncurses/man/curs_add_wchstr.3x97
-rw-r--r--contrib/ncurses/man/curs_addch.3x181
-rw-r--r--contrib/ncurses/man/curs_addchstr.3x99
-rw-r--r--contrib/ncurses/man/curs_addstr.3x97
-rw-r--r--contrib/ncurses/man/curs_addwstr.3x94
-rw-r--r--contrib/ncurses/man/curs_attr.3x270
-rw-r--r--contrib/ncurses/man/curs_beep.3x63
-rw-r--r--contrib/ncurses/man/curs_bkgd.3x98
-rw-r--r--contrib/ncurses/man/curs_bkgrnd.3x106
-rw-r--r--contrib/ncurses/man/curs_border.3x155
-rw-r--r--contrib/ncurses/man/curs_border_set.3x207
-rw-r--r--contrib/ncurses/man/curs_clear.3x121
-rw-r--r--contrib/ncurses/man/curs_color.3x248
-rw-r--r--contrib/ncurses/man/curs_delch.3x70
-rw-r--r--contrib/ncurses/man/curs_deleteln.3x91
-rw-r--r--contrib/ncurses/man/curs_extend.3x85
-rw-r--r--contrib/ncurses/man/curs_get_wch.3x161
-rw-r--r--contrib/ncurses/man/curs_get_wstr.3x178
-rw-r--r--contrib/ncurses/man/curs_getcchar.3x144
-rw-r--r--contrib/ncurses/man/curs_getch.3x328
-rw-r--r--contrib/ncurses/man/curs_getstr.3x122
-rw-r--r--contrib/ncurses/man/curs_getyx.3x106
-rw-r--r--contrib/ncurses/man/curs_in_wch.3x68
-rw-r--r--contrib/ncurses/man/curs_in_wchstr.3x122
-rw-r--r--contrib/ncurses/man/curs_inch.3x77
-rw-r--r--contrib/ncurses/man/curs_inchstr.3x101
-rw-r--r--contrib/ncurses/man/curs_initscr.3x132
-rw-r--r--contrib/ncurses/man/curs_inopts.3x242
-rw-r--r--contrib/ncurses/man/curs_ins_wch.3x65
-rw-r--r--contrib/ncurses/man/curs_ins_wstr.3x108
-rw-r--r--contrib/ncurses/man/curs_insch.3x74
-rw-r--r--contrib/ncurses/man/curs_insstr.3x101
-rw-r--r--contrib/ncurses/man/curs_instr.3x89
-rw-r--r--contrib/ncurses/man/curs_inwstr.3x93
-rw-r--r--contrib/ncurses/man/curs_kernel.3x186
-rw-r--r--contrib/ncurses/man/curs_legacy.3x93
-rw-r--r--contrib/ncurses/man/curs_mouse.3x310
-rw-r--r--contrib/ncurses/man/curs_move.3x69
-rw-r--r--contrib/ncurses/man/curs_opaque.3x133
-rw-r--r--contrib/ncurses/man/curs_outopts.3x222
-rw-r--r--contrib/ncurses/man/curs_overlay.3x87
-rw-r--r--contrib/ncurses/man/curs_pad.3x162
-rw-r--r--contrib/ncurses/man/curs_print.3x74
-rw-r--r--contrib/ncurses/man/curs_printw.3x94
-rw-r--r--contrib/ncurses/man/curs_refresh.3x144
-rw-r--r--contrib/ncurses/man/curs_scanw.3x97
-rw-r--r--contrib/ncurses/man/curs_scr_dump.3x102
-rw-r--r--contrib/ncurses/man/curs_scroll.3x96
-rw-r--r--contrib/ncurses/man/curs_slk.3x205
-rw-r--r--contrib/ncurses/man/curs_termattrs.3x134
-rw-r--r--contrib/ncurses/man/curs_termcap.3x167
-rw-r--r--contrib/ncurses/man/curs_terminfo.3x336
-rw-r--r--contrib/ncurses/man/curs_threads.3x603
-rw-r--r--contrib/ncurses/man/curs_touch.3x116
-rw-r--r--contrib/ncurses/man/curs_trace.3x153
-rw-r--r--contrib/ncurses/man/curs_util.3x226
-rw-r--r--contrib/ncurses/man/curs_window.3x188
-rw-r--r--contrib/ncurses/man/default_colors.3x144
-rw-r--r--contrib/ncurses/man/define_key.3x65
-rw-r--r--contrib/ncurses/man/form.3x208
-rw-r--r--contrib/ncurses/man/form_cursor.3x75
-rw-r--r--contrib/ncurses/man/form_data.3x63
-rw-r--r--contrib/ncurses/man/form_driver.3x324
-rw-r--r--contrib/ncurses/man/form_field.3x98
-rw-r--r--contrib/ncurses/man/form_field_attributes.3x92
-rw-r--r--contrib/ncurses/man/form_field_buffer.3x112
-rw-r--r--contrib/ncurses/man/form_field_info.3x85
-rw-r--r--contrib/ncurses/man/form_field_just.3x78
-rw-r--r--contrib/ncurses/man/form_field_new.3x106
-rw-r--r--contrib/ncurses/man/form_field_opts.3x124
-rw-r--r--contrib/ncurses/man/form_field_userptr.3x69
-rw-r--r--contrib/ncurses/man/form_field_validation.3x144
-rw-r--r--contrib/ncurses/man/form_fieldtype.3x148
-rw-r--r--contrib/ncurses/man/form_hook.3x100
-rw-r--r--contrib/ncurses/man/form_new.3x89
-rw-r--r--contrib/ncurses/man/form_new_page.3x77
-rw-r--r--contrib/ncurses/man/form_opts.3x90
-rw-r--r--contrib/ncurses/man/form_page.3x96
-rw-r--r--contrib/ncurses/man/form_post.3x91
-rw-r--r--contrib/ncurses/man/form_requestname.3x70
-rw-r--r--contrib/ncurses/man/form_userptr.3x69
-rw-r--r--contrib/ncurses/man/form_win.3x95
-rw-r--r--contrib/ncurses/man/infocmp.1m437
-rw-r--r--contrib/ncurses/man/infotocap.1m77
-rw-r--r--contrib/ncurses/man/key_defined.3x60
-rw-r--r--contrib/ncurses/man/keybound.3x64
-rw-r--r--contrib/ncurses/man/keyok.3x63
-rw-r--r--contrib/ncurses/man/legacy_coding.3x82
-rwxr-xr-xcontrib/ncurses/man/make_sed.sh89
-rw-r--r--contrib/ncurses/man/man_db.renames176
-rw-r--r--contrib/ncurses/man/manlinks.sed102
-rw-r--r--contrib/ncurses/man/menu.3x193
-rw-r--r--contrib/ncurses/man/menu_attributes.3x100
-rw-r--r--contrib/ncurses/man/menu_cursor.3x73
-rw-r--r--contrib/ncurses/man/menu_driver.3x201
-rw-r--r--contrib/ncurses/man/menu_format.3x87
-rw-r--r--contrib/ncurses/man/menu_hook.3x101
-rw-r--r--contrib/ncurses/man/menu_items.3x93
-rw-r--r--contrib/ncurses/man/menu_mark.3x86
-rw-r--r--contrib/ncurses/man/menu_new.3x86
-rw-r--r--contrib/ncurses/man/menu_opts.3x104
-rw-r--r--contrib/ncurses/man/menu_pattern.3x91
-rw-r--r--contrib/ncurses/man/menu_post.3x91
-rw-r--r--contrib/ncurses/man/menu_requestname.3x71
-rw-r--r--contrib/ncurses/man/menu_spacing.3x84
-rw-r--r--contrib/ncurses/man/menu_userptr.3x69
-rw-r--r--contrib/ncurses/man/menu_win.3x95
-rw-r--r--contrib/ncurses/man/mitem_current.3x102
-rw-r--r--contrib/ncurses/man/mitem_name.3x65
-rw-r--r--contrib/ncurses/man/mitem_new.3x90
-rw-r--r--contrib/ncurses/man/mitem_opts.3x84
-rw-r--r--contrib/ncurses/man/mitem_userptr.3x70
-rw-r--r--contrib/ncurses/man/mitem_value.3x76
-rw-r--r--contrib/ncurses/man/mitem_visible.3x59
-rw-r--r--contrib/ncurses/man/ncurses.3x1141
-rw-r--r--contrib/ncurses/man/panel.3x190
-rw-r--r--contrib/ncurses/man/resizeterm.3x100
-rw-r--r--contrib/ncurses/man/term.5283
-rw-r--r--contrib/ncurses/man/term.7204
-rw-r--r--contrib/ncurses/man/terminfo.head107
-rw-r--r--contrib/ncurses/man/terminfo.tail1703
-rw-r--r--contrib/ncurses/man/tic.1m331
-rw-r--r--contrib/ncurses/man/toe.1m107
-rw-r--r--contrib/ncurses/man/tput.1325
-rw-r--r--contrib/ncurses/man/tset.1288
-rw-r--r--contrib/ncurses/man/wresize.3x64
-rw-r--r--contrib/ncurses/menu/Makefile.in167
-rw-r--r--contrib/ncurses/menu/READ.ME42
-rw-r--r--contrib/ncurses/menu/eti.h54
-rw-r--r--contrib/ncurses/menu/headers33
-rw-r--r--contrib/ncurses/menu/llib-lmenu545
-rw-r--r--contrib/ncurses/menu/llib-lmenuw547
-rw-r--r--contrib/ncurses/menu/m_attribs.c143
-rw-r--r--contrib/ncurses/menu/m_cursor.c112
-rw-r--r--contrib/ncurses/menu/m_driver.c555
-rw-r--r--contrib/ncurses/menu/m_format.c131
-rw-r--r--contrib/ncurses/menu/m_global.c596
-rw-r--r--contrib/ncurses/menu/m_hook.c151
-rw-r--r--contrib/ncurses/menu/m_item_cur.c113
-rw-r--r--contrib/ncurses/menu/m_item_nam.c72
-rw-r--r--contrib/ncurses/menu/m_item_new.c274
-rw-r--r--contrib/ncurses/menu/m_item_opt.c159
-rw-r--r--contrib/ncurses/menu/m_item_top.c107
-rw-r--r--contrib/ncurses/menu/m_item_use.c76
-rw-r--r--contrib/ncurses/menu/m_item_val.c104
-rw-r--r--contrib/ncurses/menu/m_item_vis.c68
-rw-r--r--contrib/ncurses/menu/m_items.c110
-rw-r--r--contrib/ncurses/menu/m_new.c114
-rw-r--r--contrib/ncurses/menu/m_opts.c183
-rw-r--r--contrib/ncurses/menu/m_pad.c95
-rw-r--r--contrib/ncurses/menu/m_pattern.c124
-rw-r--r--contrib/ncurses/menu/m_post.c377
-rw-r--r--contrib/ncurses/menu/m_req_name.c125
-rw-r--r--contrib/ncurses/menu/m_scale.c73
-rw-r--r--contrib/ncurses/menu/m_spacing.c108
-rw-r--r--contrib/ncurses/menu/m_sub.c86
-rw-r--r--contrib/ncurses/menu/m_trace.c77
-rw-r--r--contrib/ncurses/menu/m_userptr.c76
-rw-r--r--contrib/ncurses/menu/m_win.c86
-rw-r--r--contrib/ncurses/menu/menu.h256
-rw-r--r--contrib/ncurses/menu/menu.priv.h152
-rw-r--r--contrib/ncurses/menu/mf_common.h95
-rw-r--r--contrib/ncurses/menu/modules63
-rw-r--r--contrib/ncurses/misc/Makefile.in152
-rw-r--r--contrib/ncurses/misc/chkdef.cmd114
-rw-r--r--contrib/ncurses/misc/cleantic.cmd44
-rw-r--r--contrib/ncurses/misc/cmpdef.cmd134
-rwxr-xr-xcontrib/ncurses/misc/csort36
-rw-r--r--contrib/ncurses/misc/emx.src885
-rw-r--r--contrib/ncurses/misc/form.def101
-rw-r--r--contrib/ncurses/misc/form.ref106
-rwxr-xr-xcontrib/ncurses/misc/gen_edit.sh58
-rwxr-xr-xcontrib/ncurses/misc/jpf-indent119
-rw-r--r--contrib/ncurses/misc/makedef.cmd179
-rwxr-xr-xcontrib/ncurses/misc/makellib167
-rw-r--r--contrib/ncurses/misc/menu.def81
-rw-r--r--contrib/ncurses/misc/menu.ref73
-rwxr-xr-xcontrib/ncurses/misc/ncu-indent130
-rw-r--r--contrib/ncurses/misc/ncurses-config.in161
-rw-r--r--contrib/ncurses/misc/ncurses.def447
-rw-r--r--contrib/ncurses/misc/ncurses.ref572
-rw-r--r--contrib/ncurses/misc/panel.def20
-rw-r--r--contrib/ncurses/misc/panel.ref18
-rw-r--r--contrib/ncurses/misc/run_tic.in174
-rwxr-xr-xcontrib/ncurses/misc/shlib141
-rw-r--r--contrib/ncurses/misc/tabset/std1
-rw-r--r--contrib/ncurses/misc/tabset/stdcrt1
-rw-r--r--contrib/ncurses/misc/tabset/vt1003
-rw-r--r--contrib/ncurses/misc/tabset/vt3003
-rwxr-xr-xcontrib/ncurses/misc/tdlint113
-rw-r--r--contrib/ncurses/misc/terminfo.src21691
-rw-r--r--contrib/ncurses/mk-0th.awk109
-rw-r--r--contrib/ncurses/mk-1st.awk474
-rw-r--r--contrib/ncurses/mk-2nd.awk146
-rw-r--r--contrib/ncurses/mk-hdr.awk107
-rw-r--r--contrib/ncurses/mkdirs.sh51
-rw-r--r--contrib/ncurses/ncurses/Makefile.in284
-rw-r--r--contrib/ncurses/ncurses/README31
-rw-r--r--contrib/ncurses/ncurses/README.IZ95
-rw-r--r--contrib/ncurses/ncurses/SigAction.h109
-rw-r--r--contrib/ncurses/ncurses/base/MKkeyname.awk156
-rwxr-xr-xcontrib/ncurses/ncurses/base/MKlib_gen.sh426
-rw-r--r--contrib/ncurses/ncurses/base/MKunctrl.awk185
-rw-r--r--contrib/ncurses/ncurses/base/README35
-rw-r--r--contrib/ncurses/ncurses/base/define_key.c70
-rw-r--r--contrib/ncurses/ncurses/base/key_defined.c78
-rw-r--r--contrib/ncurses/ncurses/base/keybound.c51
-rw-r--r--contrib/ncurses/ncurses/base/keyok.c78
-rw-r--r--contrib/ncurses/ncurses/base/legacy_coding.c48
-rw-r--r--contrib/ncurses/ncurses/base/lib_addch.c545
-rw-r--r--contrib/ncurses/ncurses/base/lib_addstr.c245
-rw-r--r--contrib/ncurses/ncurses/base/lib_beep.c76
-rw-r--r--contrib/ncurses/ncurses/base/lib_bkgd.c156
-rw-r--r--contrib/ncurses/ncurses/base/lib_box.c128
-rw-r--r--contrib/ncurses/ncurses/base/lib_chgat.c68
-rw-r--r--contrib/ncurses/ncurses/base/lib_clear.c56
-rw-r--r--contrib/ncurses/ncurses/base/lib_clearok.c55
-rw-r--r--contrib/ncurses/ncurses/base/lib_clrbot.c76
-rw-r--r--contrib/ncurses/ncurses/base/lib_clreol.c91
-rw-r--r--contrib/ncurses/ncurses/base/lib_color.c593
-rw-r--r--contrib/ncurses/ncurses/base/lib_colorset.c60
-rw-r--r--contrib/ncurses/ncurses/base/lib_delch.c69
-rw-r--r--contrib/ncurses/ncurses/base/lib_delwin.c89
-rw-r--r--contrib/ncurses/ncurses/base/lib_dft_fgbg.c75
-rw-r--r--contrib/ncurses/ncurses/base/lib_echo.c61
-rw-r--r--contrib/ncurses/ncurses/base/lib_endwin.c60
-rw-r--r--contrib/ncurses/ncurses/base/lib_erase.c92
-rw-r--r--contrib/ncurses/ncurses/base/lib_flash.c73
-rw-r--r--contrib/ncurses/ncurses/base/lib_freeall.c146
-rw-r--r--contrib/ncurses/ncurses/base/lib_getch.c611
-rw-r--r--contrib/ncurses/ncurses/base/lib_getstr.c224
-rw-r--r--contrib/ncurses/ncurses/base/lib_hline.c80
-rw-r--r--contrib/ncurses/ncurses/base/lib_immedok.c54
-rw-r--r--contrib/ncurses/ncurses/base/lib_inchstr.c64
-rw-r--r--contrib/ncurses/ncurses/base/lib_initscr.c97
-rw-r--r--contrib/ncurses/ncurses/base/lib_insch.c155
-rw-r--r--contrib/ncurses/ncurses/base/lib_insdel.c63
-rw-r--r--contrib/ncurses/ncurses/base/lib_insnstr.c68
-rw-r--r--contrib/ncurses/ncurses/base/lib_instr.c112
-rw-r--r--contrib/ncurses/ncurses/base/lib_isendwin.c51
-rw-r--r--contrib/ncurses/ncurses/base/lib_leaveok.c55
-rw-r--r--contrib/ncurses/ncurses/base/lib_mouse.c1367
-rw-r--r--contrib/ncurses/ncurses/base/lib_move.c60
-rw-r--r--contrib/ncurses/ncurses/base/lib_mvwin.c114
-rw-r--r--contrib/ncurses/ncurses/base/lib_newterm.c217
-rw-r--r--contrib/ncurses/ncurses/base/lib_newwin.c322
-rw-r--r--contrib/ncurses/ncurses/base/lib_nl.c79
-rw-r--r--contrib/ncurses/ncurses/base/lib_overlay.c211
-rw-r--r--contrib/ncurses/ncurses/base/lib_pad.c322
-rw-r--r--contrib/ncurses/ncurses/base/lib_printw.c138
-rw-r--r--contrib/ncurses/ncurses/base/lib_redrawln.c84
-rw-r--r--contrib/ncurses/ncurses/base/lib_refresh.c288
-rw-r--r--contrib/ncurses/ncurses/base/lib_restart.c99
-rw-r--r--contrib/ncurses/ncurses/base/lib_scanw.c106
-rw-r--r--contrib/ncurses/ncurses/base/lib_screen.c214
-rw-r--r--contrib/ncurses/ncurses/base/lib_scroll.c150
-rw-r--r--contrib/ncurses/ncurses/base/lib_scrollok.c55
-rw-r--r--contrib/ncurses/ncurses/base/lib_scrreg.c60
-rw-r--r--contrib/ncurses/ncurses/base/lib_set_term.c655
-rw-r--r--contrib/ncurses/ncurses/base/lib_slk.c219
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkatr_set.c59
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkatrof.c58
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkatron.c58
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkatrset.c53
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkattr.c56
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkclear.c66
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkcolor.c56
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkinit.c55
-rw-r--r--contrib/ncurses/ncurses/base/lib_slklab.c51
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkrefr.c122
-rw-r--r--contrib/ncurses/ncurses/base/lib_slkset.c149
-rw-r--r--contrib/ncurses/ncurses/base/lib_slktouch.c53
-rw-r--r--contrib/ncurses/ncurses/base/lib_touch.c91
-rw-r--r--contrib/ncurses/ncurses/base/lib_ungetch.c90
-rw-r--r--contrib/ncurses/ncurses/base/lib_vline.c79
-rw-r--r--contrib/ncurses/ncurses/base/lib_wattroff.c64
-rw-r--r--contrib/ncurses/ncurses/base/lib_wattron.c64
-rw-r--r--contrib/ncurses/ncurses/base/lib_winch.c54
-rw-r--r--contrib/ncurses/ncurses/base/lib_window.c250
-rw-r--r--contrib/ncurses/ncurses/base/memmove.c69
-rw-r--r--contrib/ncurses/ncurses/base/nc_panel.c41
-rw-r--r--contrib/ncurses/ncurses/base/resizeterm.c455
-rw-r--r--contrib/ncurses/ncurses/base/safe_sprintf.c264
-rw-r--r--contrib/ncurses/ncurses/base/sigaction.c99
-rw-r--r--contrib/ncurses/ncurses/base/tries.c143
-rw-r--r--contrib/ncurses/ncurses/base/use_window.c78
-rw-r--r--contrib/ncurses/ncurses/base/version.c42
-rw-r--r--contrib/ncurses/ncurses/base/vsscanf.c356
-rw-r--r--contrib/ncurses/ncurses/base/wresize.c246
-rw-r--r--contrib/ncurses/ncurses/curses.priv.h1666
-rw-r--r--contrib/ncurses/ncurses/fifo_defs.h59
-rw-r--r--contrib/ncurses/ncurses/llib-lncurses3359
-rw-r--r--contrib/ncurses/ncurses/llib-lncursest3493
-rw-r--r--contrib/ncurses/ncurses/llib-lncursesw4138
-rw-r--r--contrib/ncurses/ncurses/modules232
-rw-r--r--contrib/ncurses/ncurses/tinfo/MKcaptab.awk94
-rw-r--r--contrib/ncurses/ncurses/tinfo/MKcaptab.sh149
-rw-r--r--contrib/ncurses/ncurses/tinfo/MKcodes.awk161
-rwxr-xr-xcontrib/ncurses/ncurses/tinfo/MKfallback.sh129
-rwxr-xr-xcontrib/ncurses/ncurses/tinfo/MKkeys_list.sh62
-rw-r--r--contrib/ncurses/ncurses/tinfo/MKnames.awk183
-rw-r--r--contrib/ncurses/ncurses/tinfo/README36
-rw-r--r--contrib/ncurses/ncurses/tinfo/access.c176
-rw-r--r--contrib/ncurses/ncurses/tinfo/add_tries.c120
-rw-r--r--contrib/ncurses/ncurses/tinfo/alloc_entry.c289
-rw-r--r--contrib/ncurses/ncurses/tinfo/alloc_ttype.c495
-rw-r--r--contrib/ncurses/ncurses/tinfo/captoinfo.c847
-rw-r--r--contrib/ncurses/ncurses/tinfo/comp_error.c153
-rw-r--r--contrib/ncurses/ncurses/tinfo/comp_expand.c192
-rw-r--r--contrib/ncurses/ncurses/tinfo/comp_hash.c366
-rw-r--r--contrib/ncurses/ncurses/tinfo/comp_parse.c490
-rw-r--r--contrib/ncurses/ncurses/tinfo/comp_scan.c915
-rw-r--r--contrib/ncurses/ncurses/tinfo/db_iterator.c225
-rw-r--r--contrib/ncurses/ncurses/tinfo/doalloc.c75
-rw-r--r--contrib/ncurses/ncurses/tinfo/entries.c144
-rw-r--r--contrib/ncurses/ncurses/tinfo/free_ttype.c77
-rw-r--r--contrib/ncurses/ncurses/tinfo/getenv_num.c56
-rw-r--r--contrib/ncurses/ncurses/tinfo/hashed_db.c260
-rw-r--r--contrib/ncurses/ncurses/tinfo/home_terminfo.c69
-rw-r--r--contrib/ncurses/ncurses/tinfo/init_keytry.c110
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_acs.c193
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_baudrate.c235
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_cur_term.c76
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_data.c294
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_has_cap.c65
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_kernel.c154
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_longname.c57
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_napms.c74
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_options.c270
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_print.c92
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_raw.c296
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_setup.c618
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_termcap.c290
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_termname.c44
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_tgoto.c203
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_ti.c103
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_tparm.c791
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_tputs.c258
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_ttyflags.c210
-rw-r--r--contrib/ncurses/ncurses/tinfo/make_keys.c142
-rw-r--r--contrib/ncurses/ncurses/tinfo/name_match.c108
-rw-r--r--contrib/ncurses/ncurses/tinfo/parse_entry.c991
-rw-r--r--contrib/ncurses/ncurses/tinfo/read_entry.c544
-rw-r--r--contrib/ncurses/ncurses/tinfo/read_termcap.c1174
-rw-r--r--contrib/ncurses/ncurses/tinfo/setbuf.c150
-rw-r--r--contrib/ncurses/ncurses/tinfo/strings.c142
-rw-r--r--contrib/ncurses/ncurses/tinfo/trim_sgr0.c326
-rw-r--r--contrib/ncurses/ncurses/tinfo/use_screen.c60
-rw-r--r--contrib/ncurses/ncurses/tinfo/write_entry.c773
-rw-r--r--contrib/ncurses/ncurses/trace/README33
-rw-r--r--contrib/ncurses/ncurses/trace/lib_trace.c328
-rw-r--r--contrib/ncurses/ncurses/trace/lib_traceatr.c344
-rw-r--r--contrib/ncurses/ncurses/trace/lib_tracebits.c271
-rw-r--r--contrib/ncurses/ncurses/trace/lib_tracechr.c74
-rw-r--r--contrib/ncurses/ncurses/trace/lib_tracedmp.c184
-rw-r--r--contrib/ncurses/ncurses/trace/lib_tracemse.c119
-rw-r--r--contrib/ncurses/ncurses/trace/trace_buf.c105
-rw-r--r--contrib/ncurses/ncurses/trace/trace_tries.c78
-rw-r--r--contrib/ncurses/ncurses/trace/trace_xnames.c75
-rw-r--r--contrib/ncurses/ncurses/trace/varargs.c184
-rw-r--r--contrib/ncurses/ncurses/trace/visbuf.c321
-rwxr-xr-xcontrib/ncurses/ncurses/tty/MKexpanded.sh99
-rw-r--r--contrib/ncurses/ncurses/tty/hardscroll.c325
-rw-r--r--contrib/ncurses/ncurses/tty/hashmap.c549
-rw-r--r--contrib/ncurses/ncurses/tty/lib_mvcur.c1245
-rw-r--r--contrib/ncurses/ncurses/tty/lib_tstp.c389
-rw-r--r--contrib/ncurses/ncurses/tty/lib_twait.c444
-rw-r--r--contrib/ncurses/ncurses/tty/lib_vidattr.c338
-rw-r--r--contrib/ncurses/ncurses/tty/tty_display.h140
-rw-r--r--contrib/ncurses/ncurses/tty/tty_input.h61
-rw-r--r--contrib/ncurses/ncurses/tty/tty_update.c1972
-rw-r--r--contrib/ncurses/ncurses/widechar/charable.c80
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_add_wch.c113
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_box_set.c113
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_cchar.c129
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_erasewchar.c77
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_get_wch.c119
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_get_wstr.c231
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_hline_set.c79
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_in_wch.c62
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c76
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_ins_wch.c144
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_inwstr.c100
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_key_name.c62
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c57
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_slk_wset.c72
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_unget_wch.c103
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_vid_attr.c275
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_vline_set.c78
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_wacs.c117
-rw-r--r--contrib/ncurses/ncurses/widechar/lib_wunctrl.c55
-rw-r--r--contrib/ncurses/panel/Makefile.in159
-rw-r--r--contrib/ncurses/panel/headers32
-rw-r--r--contrib/ncurses/panel/llib-lpanel182
-rw-r--r--contrib/ncurses/panel/llib-lpanelw182
-rw-r--r--contrib/ncurses/panel/modules51
-rw-r--r--contrib/ncurses/panel/p_above.c52
-rw-r--r--contrib/ncurses/panel/p_below.c54
-rw-r--r--contrib/ncurses/panel/p_bottom.c72
-rw-r--r--contrib/ncurses/panel/p_delete.c57
-rw-r--r--contrib/ncurses/panel/p_hidden.c48
-rw-r--r--contrib/ncurses/panel/p_hide.c58
-rw-r--r--contrib/ncurses/panel/p_move.c56
-rw-r--r--contrib/ncurses/panel/p_new.c108
-rw-r--r--contrib/ncurses/panel/p_replace.c58
-rw-r--r--contrib/ncurses/panel/p_show.c69
-rw-r--r--contrib/ncurses/panel/p_top.c46
-rw-r--r--contrib/ncurses/panel/p_update.c63
-rw-r--r--contrib/ncurses/panel/p_user.c56
-rw-r--r--contrib/ncurses/panel/p_win.c46
-rw-r--r--contrib/ncurses/panel/panel.c157
-rw-r--r--contrib/ncurses/panel/panel.h77
-rw-r--r--contrib/ncurses/panel/panel.priv.h191
-rwxr-xr-xcontrib/ncurses/progs/MKtermsort.sh164
-rw-r--r--contrib/ncurses/progs/Makefile.in297
-rwxr-xr-xcontrib/ncurses/progs/capconvert256
-rw-r--r--contrib/ncurses/progs/clear.c59
-rwxr-xr-xcontrib/ncurses/progs/clear.sh29
-rw-r--r--contrib/ncurses/progs/dump_entry.c1264
-rw-r--r--contrib/ncurses/progs/dump_entry.h80
-rw-r--r--contrib/ncurses/progs/infocmp.c1652
-rw-r--r--contrib/ncurses/progs/modules43
-rw-r--r--contrib/ncurses/progs/progs.priv.h191
-rw-r--r--contrib/ncurses/progs/tic.c1513
-rw-r--r--contrib/ncurses/progs/toe.c501
-rw-r--r--contrib/ncurses/progs/tput.c438
-rw-r--r--contrib/ncurses/progs/tset.c1305
-rwxr-xr-xcontrib/ncurses/tar-copy.sh77
535 files changed, 0 insertions, 193451 deletions
diff --git a/contrib/ncurses/ANNOUNCE b/contrib/ncurses/ANNOUNCE
deleted file mode 100644
index bbeeb8922d47..000000000000
--- a/contrib/ncurses/ANNOUNCE
+++ /dev/null
@@ -1,463 +0,0 @@
- Announcing ncurses 5.6
-
- 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 encouraged the keepers of Unix
- releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
-
- The ncurses code was developed under GNU/Linux. It has been in use for
- some time with OpenBSD as the system curses library, and on FreeBSD
- 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/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
- through 5.5; very few applications will require recompilation,
- depending on the platform. These are the highlights from the
- change-log since ncurses 5.5 release.
-
- Interface changes:
- * generate linkable stubs for some macros:
- getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
- getpary, getpary,
- and (for libncursesw)
- wgetbkgrnd
-
- New features and improvements:
- * library
- + support hashed databases for the terminal descriptions. This
- uses the Berkeley database, has been tested for several
- versions on different platforms.
- + add use_legacy_coding() function to support lynx's
- font-switching feature.
- + add extension nofilter(), to cancel a prior filter() call.
- + add/install a package config script, e.g., ncurses5-config or
- ncursesw5-config, according to configuration options.
- + provide ifdef for NCURSES_NOMACROS which suppresses most
- macro definitions from curses.h, i.e., where a macro is
- defined to override a function to improve performance.
- + make ifdef's consistent in curses.h for the extended colors
- so the header file can be used for the normal curses library.
- The header file installed for extended colors is a variation
- of the wide-character configuration.
- + improve tgetstr() by making the return value point into the
- user's buffer, if provided.
- + add ifdef's allowing ncurses to be built with tparm() using
- either varargs (the existing status), or using a
- fixed-parameter list (to match X/Open).
- + widen the test for xterm kmous a little to allow for other
- strings than "\E[M", e.g., for xterm-sco functionality in
- xterm.
- + modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs.
- + move prototypes for wide-character trace functions from
- curses.tail to curses.wide to avoid accidental reference to
- those if _XOPEN_SOURCE_EXTENDED is defined without ensuring
- that <wchar.h> is included.
- + change the way shared libraries (other than libtool) are
- installed. Rather than copying the build-tree's libraries,
- link the shared objects into the install directory. This
- makes the --with-rpath option work except with $(DESTDIR).
- + several improvements for rendering in hpterm. These are only
- available if the library is configured using
- --enable-xmc-glitch.
- + Add NCURSES_NO_HARD_TABS and NCURSES_NO_MAGIC_COOKIE
- environment variables to allow runtime suppression of the
- related hard-tabs and xmc-glitch features.
- * programs:
- + add new test programs: chgat.c, demo_altkeys.c, echochar.c,
- foldkeys.c, movewindow.c, redraw.c, (noting that existing
- test programs also were modified to test additional
- features).
- + modify tack to test extended capability function-key strings.
- + modify toe to access termcap data, e.g., via cgetent()
- functions, or as a text file if those are not available.
- + improve infocmp/tic -f option formatting.
- + add toe -a option, to show all databases. This uses new
- private interfaces in the ncurses library for iterating
- through the list of databases.
- + modify MKfallback.sh to use tic -x when constructing fallback
- tables to allow extended capabilities to be retrieved from a
- fallback entry.
- * terminal database
- + add terminfo entries for xfce terminal (xfce) and multi gnome
- terminal (mgt)
- + add nsterm-16color entry
- + updated mlterm terminfo entry
- + add kon, kon2 and jfbterm terminfo entry
- + remove invis capability from klone+sgr, mainly used by linux
- entry, since it does not really do this
- + add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
- + add shifted up/down arrow codes to xterm-new as kind/kri
- strings
- + add hpterm-color terminfo entry
- + add 256color variants of terminfo entries for programs which
- are reported to implement this feature
- + correct order of use-clauses in rxvt-basic entry which made
- codes for f1-f4 vt100-style rather than vt220-style.
-
- Major bug fixes:
- * correct a typo in configure --with-bool option for the case where
- --without-cxx is used.
- * move assignment from environment variable ESCDELAY from initscr()
- down to newterm() so the environment variable affects timeouts for
- terminals opened with newterm() as well.
- * modify werase to clear multicolumn characters that extend into a
- derived window.
- * modify wchgat() to mark updated cells as changed so a refresh will
- repaint those cells.
- * correct logic in wadd_wch() and wecho_wch(), which did not guard
- against passing the multi-column attribute into a call on
- waddch(), e.g., using data returned by win_wch()
- * fix redrawing of windows other than stdscr using wredrawln() by
- touching the corresponding rows in curscr.
- * reduce memory leaks in repeated calls to tgetent() by remembering
- the last TERMINAL* value allocated to hold the corresponding data
- and freeing that if the tgetent() result buffer is the same as the
- previous call.
- * modify read_termtype() so the term_names data is always allocated
- as part of the str_table, a better fix for a memory leak.
- * fix wins_nwstr(), which did not handle single-column non-8bit
- codes.
- * modify wbkgrnd() to avoid clearing the A_CHARTEXT attribute bits
- since those record the state of multicolumn characters.
- * improve SIGWINCH handling by postponing its effect during
- newterm(), etc., when allocating screens.
- * remove 970913 feature for copying subwindows as they are moved in
- mvwin().
- * add checks in waddchnstr() and wadd_wchnstr() to stop copying when
- a null character is found.
- * add some checks to ensure current position is within scrolling
- region before scrolling on a new line.
- * add a workaround to ACS mapping to allow applications such as
- test/blue.c to use the "PC ROM" characters by masking them with
- A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
- of legacy coding.
-
- Portability:
- * configure script:
- + new options:
-
- --with-hashed-db
- Use Berkeley hashed database for storing terminfo
- data rather than storing each compiled entry in a
- separate binary file within a directory tree.
-
- --without-dlsym
- Do not use dlsym() to load GPM dynamically.
-
- --with-valgrind
- Simplify building for testing with valgrind.
-
- --enable-wgetch-events
- Compile with experimental wgetch-events code.
-
- --enable-signed-char
- Store booleans in "signed char" rather than "char".
-
- + improved options:
-
- --disable-largefile
- make the option work both ways.
-
- --with-gpm
- The option now accepts a parameter, i.e., the name
- of the dynamic GPM library to load via dlopen()
-
- --disable-symlinks
- The option now allows one to disable symlink() in
- tic even when link() does not work.
-
- * other configure/build issues:
- + remove special case for Darwin in CF_XOPEN_SOURCE configure
- macro.
- + add configure check to ensure that SIGWINCH is defined on
- platforms such as OS X which exclude that when _XOPEN_SOURCE,
- etc., are defined
- + use ld's -search_paths_first option on Darwin to work around
- odd search rules on that platform.
- + improve ifdef's for _POSIX_VDISABLE in tset to work with Mac
- OS X.
- + modify configure script to ensure that if the C compiler is
- used rather than the loader in making shared libraries, the
- $(CFLAGS) variable is also used.
- + use ${CC} rather than ${LD} in shared library rules for
- IRIX64, Solaris to help ensure that initialization sections
- are provided for extra linkage requirements, e.g., of C++
- applications.
- + improve some shared-library configure scripting for Linux,
- FreeBSD and NetBSD to make --with-shlib-version work.
- + split up dependency of names.c and codes.c in
- ncurses/Makefile to work with parallel make.
- + modify MKlib_gen.sh to change preprocessor-expanded _Bool
- back to bool.
- + modify progs/Makefile.in to make tput init work properly with
- cygwin, i.e., do not pass a .exe in the reference string used
- in check_aliases.
- * library:
- + ignore wide-acs line-drawing characters that wcwidth() claims
- are not one-column. This is a workaround for Solaris' broken
- locale support.
- + reduce name-pollution in term.h by removing #define's for
- HAVE_xxx symbols.
- + fix #ifdef in c++/internal.h for QNX 6.1
- * test programs:
- + modify test/configure script to allow building test programs
- with PDCurses/X11.
- + modified test programs to allow some to work with NetBSD
- curses. Several do not because NetBSD curses implements a
- subset of X/Open curses, and also lacks much of SVr4
- additions. But it is enough for comparison.
- + improved test/configure to build test/ncurses on HPUX 11
- using the vendor curses.
- + change configure script to produce test/Makefile from data
- file.
-
- 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, and most EXTENDED features). It includes 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 FreeBSD
- 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 modern 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/products/CDK/
-
- 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]http://www.ibiblio.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/
-
- pinfo
- Lynx-like info browser.
- [12]http://dione.ids.pl/~pborys/software/pinfo/
-
- tin
- newsreader, supporting color, MIME [13]http://www.tin.org/
-
- vh-1.6
- Volks-Hypertext browser for the Jargon File
- [14]http://www.debian.org/Packages/unstable/text/vh.html
-
- as well as some that use ncurses for the terminfo support alone:
-
- minicom
- terminal emulator
- [15]http://alioth.debian.org/projects/minicom/
-
- 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
-
- Zeyd Ben-Halim started it from a previous package pcurses, written by
- Pavel Curtis. Eric S. Raymond continued development. Juergen Pfeifer
- wrote most of the form and menu libraries. Ongoing work is being done
- by [17]Thomas Dickey. Thomas Dickey acts as the maintainer for the
- Free Software Foundation, which holds the copyright on ncurses.
- Contact the current maintainers at [18]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 [19]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 provides a newer version of the terminfo-format
- terminal description file once maintained by [20]Eric Raymond . Unlike
- the older version, the termcap and terminfo data are provided in the
- same file, and provides several user-definable extensions beyond the
- X/Open specification.
-
- You can find lots of information on terminal-related topics not
- covered in the terminfo file at [21]Richard Shuford's archive .
-
-References
-
- 1. ftp://ftp.gnu.org/gnu/ncurses/
- 2. ftp://invisible-island.net/ncurses/
- 3. http://invisible-island.net/cdk/
- 4. http://www.vexus.ca/products/CDK/
- 5. http://invisible-island.net/ded/
- 6. http://invisible-island.net/dialog/
- 7. http://lynx.isc.org/release/
- 8. http://www.ibiblio.org/mc/
- 9. http://www.mutt.org/
- 10. http://www.ncftp.com/
- 11. http://www.bostic.com/vi/
- 12. http://dione.ids.pl/~pborys/software/pinfo/
- 13. http://www.tin.org/
- 14. http://www.debian.org/Packages/unstable/text/vh.html
- 15. http://alioth.debian.org/projects/minicom/
- 16. http://invisible-island.net/vile/
- 17. mailto:dickey@invisible-island.net
- 18. mailto:bug-ncurses@gnu.org
- 19. ftp://invisible-island.net/ncurses/
- 20. http://www.catb.org/~esr/terminfo/
- 21. http://www.cs.utk.edu/~shuford/terminal_index.html
diff --git a/contrib/ncurses/AUTHORS b/contrib/ncurses/AUTHORS
deleted file mode 100644
index 57904c404537..000000000000
--- a/contrib/ncurses/AUTHORS
+++ /dev/null
@@ -1,38 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: AUTHORS,v 1.2 2006/10/28 21:44:52 tom Exp $
--------------------------------------------------------------------------------
-These are the principal authors/contributors of ncurses since 1.9.9e,
-in decreasing order of their contribution:
-
-TD Thomas E. Dickey
-JPF Juergen Pfeifer
-ESR Eric S Raymond
-AVL Alexander V Lukyanov
-PB Philippe Blain
-SV Sven Verdoolaege
diff --git a/contrib/ncurses/INSTALL b/contrib/ncurses/INSTALL
deleted file mode 100644
index 7917e299abae..000000000000
--- a/contrib/ncurses/INSTALL
+++ /dev/null
@@ -1,1619 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.124 2008/03/29 18:07:32 tom Exp $
----------------------------------------------------------------------
- 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 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 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 normally in subdirectories of /usr/local, except
- for systems where ncurses is normally installed as a system library, e.g.,
- Linux, the various BSD systems and Cygwin. Use --prefix=/usr to replace
- your default curses distribution.
-
- The package gets installed beneath the --prefix directory as follows:
-
- 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 that the configure script attempts to locate previous installation of
- ncurses, and will set the default prefix according to where it finds the
- ncurses headers.
-
- Do not use commands such as
-
- make install prefix=XXX
-
- to change the prefix after configuration, since the prefix value is used
- for some absolute pathnames such as TERMINFO. Instead do this
-
- make install DESTDIR=XXX
-
- See also the discussion of --with-install-prefix.
-
-2. Type `./configure' in the top-level directory of the distribution to
- configure ncurses for your operating system and create the Makefiles.
- 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 configure using the --with-pthread option, a "t" is appended to
- the library names (e.g., libncursest.a, libncursestw.a).
-
- 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).
-
- If you run the test programs WITHOUT installing terminfo, ncurses may
- read the termcap file and cache that in $HOME/.terminfo, which will
- thereafter be used instead of the terminfo database. See the comments
- on "--enable-getcap-cache", to see why this is a Bad Thing.
-
- 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-big-strings
- Disable compile-time optimization of predefined tables which puts
- all of their strings into a very long string, to reduce relocation
- overhead.
-
- --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-home-terminfo
- The $HOME/.terminfo directory is normally added to ncurses' search
- list for reading/writing terminfo entries, since that directory is
- more likely writable than the system terminfo database. Use this
- option to disable the feature altogether.
-
- --disable-largefile
- Disable compiler flags needed to use large-file interfaces.
-
- --disable-leaks
- For testing, compile-in code that frees memory that normally would not
- be freed, to simplify analysis of memory-leaks.
-
- Any implementation of curses must not free the memory associated with
- a screen, since (even after calling endwin()), it must be available
- for use in the next call to refresh(). There are also chunks of
- memory held for performance reasons. That makes it hard to analyze
- curses applications for memory leaks. To work around this, build
- a debugging version of the ncurses library which frees those chunks
- which it can, and provides the _nc_free_and_exit() function to free
- the remainder on exit. The ncurses utility and test programs use this
- feature, e.g., via the ExitProgram() macro.
-
- --disable-lp64
- The header files will ignore use of the _LP64 symbol to make chtype
- and mmask_t types 32 bits (they may be long on 64-bit hosts, for
- compatibility with older releases).
-
- NOTE: this is potentially an ABI change, depending on existing
- packages. The default for this option is "disabled" for ncurses
- ABI 5, and "enabled" for ABI 6.
-
- --disable-macros
- For testing, use functions rather than macros. The program will run
- more slowly, but it is simpler to debug. This defines NCURSES_NOMACROS
- at build time. 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-relink
- If --enable-rpath is given, the generated makefiles normally will
- rebuild the libraries during install. Use this option to simply
- copy whatever the linked produced.
-
- This option is ignored if --enable-rpath is not given.
-
- --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.
-
- --disable-tparm-varargs
- Portable programs should call tparm() using the fixed-length parameter
- list documented in X/Open. ncurses provides varargs support for this
- function. Use --disable-tparm-varargs to disable this support.
-
- --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-ext-colors
- Extend the cchar_t structure to allow more than 16 colors to be
- encoded. This applies only to the wide-character (--enable-widec)
- configuration.
-
- NOTE: using this option will make libraries which are not binary-
- compatible with libncursesw 5.4. None of the interfaces change, but
- applications which have an array of cchar_t's must be recompiled.
-
- --enable-ext-mouse
- Modify the encoding of mouse state to make room for a 5th mouse button.
- That allows one to use ncurses with a wheel mouse with xterm or
- similar X terminal emulators.
-
- NOTE: using this option will make libraries which are not binary-
- compatible with libncursesw 5.4. None of the interfaces change, but
- applications which have mouse mask mmask_t's must be recompiled.
-
- --enable-getcap
- Use the 4.4BSD getcap code if available, or a bundled version of it to
- fetch termcap entries. Entries read in this way cannot use (make
- cross-references to) the terminfo tree, but it is faster than reading
- /etc/termcap.
-
- If configured for one of the *BSD systems, this automatically uses
- the hashed database system produced using cap_mkdb or similar tools.
- In that case, there is no advantage in using the --enable-getcap-cache
- option.
-
- See also the --with-hashed-db option.
-
- --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-mixed-case
- Controls whether the filesystem on which the terminfo database resides
- supports mixed-case filenames (normal for UNIX, but not on other
- systems). If you do not specify this option, the configure script
- checks the current filesystem.
-
- --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-reentrant
- Compile experimental configuration which improves reentrant use of the
- library by reducing global and static variables. This option is also
- set if --with-pthread is used.
-
- --enable-rpath
- Use rpath option when generating shared libraries, and (with some
- restrictions) when linking the corresponding programs. This originally
- (in 1997) applied mainly to systems using the GNU linker (read the
- manpage).
-
- More recently it is useful for systems that require special treatment
- shared libraries in "unusual" locations. The "system" libraries reside
- in directories which are on the loader's default search-path. While
- you may be able to use workarounds such as the $LD_LIBRARY_PATH
- environment variable, they do not work with setuid applications since
- the LD_LIBRARY_PATH variable would be unset in that situation.
-
- This option does not apply to --with-libtool, since libtool makes
- extra assumptions about rpath.
-
- --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-signed-char
- The term.h header declares a Booleans[] array typed "char". But it
- stores signed values there and "char" is not necessarily signed.
- Some packagers choose to alter the type of Booleans[] though this
- is not strictly compatible. This option allows one to implement this
- alteration without patching the source code.
-
- --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-wgetch-events
- Compile with experimental wgetch-events code. See ncurses/README.IZ
-
- --enable-widec
- Compile with wide-character code. This makes a different version of
- the libraries (e.g., libncursesw.so), which stores characters as
- wide-characters,
-
- NOTE: applications compiled with this configuration are not compatible
- with those built for 8-bit characters. You cannot simply make a
- 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-abi-version=NUM
- Override the ABI version, which is used in shared library filenames.
- Normally this is the same as the release version; some ports have
- special requirements for compatibility.
-
- --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 utilities 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 preprocessor-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-chtype=TYPE
- Override type of chtype, which stores the video attributes and (if
- --enable-widec is not given) a character. Prior to ncurses 5.5, this
- was always unsigned long, but with ncurses 5.5, it may be unsigned.
- Use this option if you need to preserve compatibility with 64-bit
- executables.
-
- --with-database=XXX
- Specify the terminfo source file to install. Usually you will wish
- to install ncurses' default (misc/terminfo.src). Certain systems
- 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.
- This also sets the --disable-leaks option.
-
- --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-dmalloc
- For testing, compile and link with Gray Watson's dmalloc library.
- This also sets the --disable-leaks option.
-
- --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. Prior to ncurses 5.5, this introduced a dependency on
- the GPM library.
-
- Currently ncurses uses the dlsym() function to bind to the library at
- runtime, so it is only necessary that the library be present when
- ncurses is built, to obtain the filename (or soname) used in the
- corresponding dlopen() call. If you give a value for this option,
- e.g.,
-
- --with-gpm=$HOME/tmp/test-gpm.so
-
- that overrides the configure check for the soname.
-
- See also --without-dlsym
-
- --with-hashed-db[=XXX]
- Use a hashed database for storing terminfo data rather than storing
- each compiled entry in a separate binary file within a directory
- tree.
-
- In particular, this uses the Berkeley database 1.8.5 interface, as
- provided by that and its successors db 2, 3, and 4. The actual
- interface is slightly different in the successor versions of the
- Berkeley database. The database should have been configured using
- "--enable-compat185".
-
- If you use this option for configuring ncurses, tic will only be able
- to write entries in the hashed database. infocmp can still read
- entries from a directory tree as well as reading entries from the
- hashed database. To do this, infocmp determines whether the $TERMINFO
- variable points to a directory or a file, and reads the directory-tree
- or hashed database respectively.
-
- You cannot have a directory containing both hashed-database and
- filesystem-based terminfo entries.
-
- Use the parameter value to give the install-prefix used for the
- datbase, e.g.,
- --with-hashed-db=/usr/local/BigBase
- to find the corresponding include- and lib-directories under the
- given directory.
-
- See also the --enable-getcap option.
-
- --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. The
- makefile variable DESTDIR is set by this option. It is also possible
- to use
- make install DESTDIR=XXX
- since the makefiles pass that variable to subordinate makes.
-
- NOTE: a few systems build shared libraries with fixed pathnames; this
- option probably will not work for those configurations.
-
- --with-libtool[=XXX]
- Generate libraries with libtool. If this option is selected, then it
- overrides all other library model specifications. Note that libtool
- must already be installed, uses makefile rules dependent on GNU make,
- and does not promise to follow the version numbering convention of
- other shared libraries on your system. However, if the --with-shared
- option does not succeed, you may get better results with this option.
-
- If a parameter value is given, it must be the full pathname of the
- particular version of libtool, e.g.,
- /usr/bin/libtool-1.2.3
-
- It is possible to rebuild the configure script to use the automake
- macros for libtool, e.g., AC_PROG_LIBTOOL. See the comments in
- aclocal.m4 for CF_PROG_LIBTOOL, and ensure that you build configure
- using the appropriate patch for autoconf from
- http://invisible-island.net/autoconf/
-
- --with-manpage-aliases
- Tell the configure script you wish to create entries in the
- man-directory for aliases to manpages which list them, e.g., the
- functions in the panel manpage. This is the default. You can disable
- it if your man program does this. You can also disable
- --with-manpage-symlinks to install files containing a ".so" command
- rather than symbolic links.
-
- --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-mmask-t=TYPE
- Override type of mmask_t, which stores the mouse mask. Prior to
- ncurses 5.5, this was always unsigned long, but with ncurses 5.5, it
- may be unsigned. Use this option if you need to preserve compatibility
- with 64-bit executables.
-
- --with-ospeed=TYPE
- Override type of ospeed variable, which is part of the termcap
- compatibility interface. In termcap, this is a 'short', which works
- for a wide range of baudrates because ospeed is not the actual speed
- but the encoded value, e.g., B9600 would be a small number such as 13.
- 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).
-
- Note: on Linux, the configure script will attempt to use the GPM
- library via the dlsym() function call. Use --without-dlsym to disable
- this feature, or --without-gpm, depending on whether you wish to use
- GPM.
-
- --with-profile
- Generate profile-libraries These are named by adding "_p" to the root,
- e.g., libncurses_p.a
-
- --with-pthread
- Link with POSIX threads, set --enable-reentrant. The use_window() and
- use_screen() functions will use mutex's, allowing rudimentary support
- for multithreaded applications.
-
- --with-rcs-ids
- Compile-in RCS identifiers. Most of the C files have an identifier.
-
- --with-rel-version=NUM
- Override the release version, which may be used in shared library
- filenames. This consists of a major and minor version number separated
- by ".". Normally the major version number is the same as the ABI
- version; some ports have special requirements for compatibility.
-
- --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.
-
- NOTE: For some configurations, e.g., installing a new version of
- ncurses shared libraries on a machine which already has ncurses
- shared libraries, you may encounter problems with the linker.
- For example, it may prevent you from running the build tree's
- copy of tic (for installing the terminfo database) because it
- loads the system's copy of the ncurses shared libraries. In that
- case, using the misc/shlib script may be helpful, since it sets
- $LD_LIBRARY_PATH to point to the build tree, e.g.,
- ./misc/shlib make install
-
- --with-shlib-version=XXX
- Specify whether to use the release or ABI version for shared libraries.
- This is normally chosen automatically based on the type of system
- which you are building on. We use it for testing the configure script.
-
- --with-sysmouse
- use FreeBSD sysmouse interface provide mouse support on the console.
-
- --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[=XXX]
- When building the ncurses library, organize this as two parts: the
- curses library (libncurses) and the low-level terminfo library
- (libtinfo). This is done to accommodate applications that use only
- the latter. The terminfo library is about half the size of the total.
-
- If an option value is given, that overrides the name of the terminfo
- library. For instance, if the wide-character version is built, the
- terminfo library would be named libtinfow. But the libtinfow interface
- is upward compatible from libtinfo, so it would be possible to overlay
- libtinfo.so with a "wide" version of libtinfow.so by renaming it with
- this option.
-
- --with-termpath=XXX
- Specify a search-list of termcap files which will be compiled into the
- ncurses library (default: /etc/termcap:/usr/share/misc/termcap)
-
- --with-ticlib[=XXX]
- When building the ncurses library, build a separate library for
- the modules that are used only by the utility programs. Normally
- those would be bundled with the termlib or ncurses libraries.
-
- If an option value is given, that overrides the name of the tic
- library. As in termlib, there is no ABI difference between the
- "wide" libticw.so and libtic.so
-
- --with-trace
- Configure the trace() function as part of the all models of the ncurses
- library. Normally it is part of the debug (libncurses_g) library only.
-
- --with-valgrind
- For testing, compile with debug option.
- This also sets the --disable-leaks option.
-
- --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-develop
- Disable development options. This does not include those that change
- the interface, such as --enable-widec.
-
- --without-dlsym
- Do not use dlsym() to load GPM dynamically.
-
- --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".
-
- --without-xterm-new
- Tell the configure script to use "xterm-old" for the entry used in
- the terminfo database. This will work with variations such as
- X11R5 and X11R6 xterm.
-
-
-COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
---------------------------------------------
-
- 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.6 (December 17, 2006)
- Interface changes:
-
- + generate linkable stubs for some macros:
-
- getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
- getpary, getpary,
-
- and (for libncursesw)
-
- wgetbkgrnd
-
- Added extensions:
- nofilter()
- use_legacy_coding()
-
- Added internal functions:
- _nc_first_db
- _nc_get_source
- _nc_handle_sigwinch
- _nc_is_abs_path
- _nc_is_dir_path
- _nc_is_file_path
- _nc_keep_tic_dir
- _nc_keep_tic_dir
- _nc_last_db
- _nc_next_db
- _nc_read_termtype
- _nc_tic_dir
-
- Also (if using the hashed database configuration):
-
- _nc_db_close
- _nc_db_first
- _nc_db_get
- _nc_db_have_data
- _nc_db_have_index
- _nc_db_next
- _nc_db_open
- _nc_db_put
-
- otherwise
-
- _nc_hashed_db
-
- Removed internal functions:
- none
-
- Modified internal functions:
- _nc_add_to_try
- _nc_do_color
- _nc_expand_try
- _nc_remove_key
- _nc_setupscreen
-
- 5.5 (October 10, 2005)
- Interface changes:
-
- + terminfo installs "xterm-new" as "xterm" entry rather than
- "xterm-old" (aka xterm-r6).
-
- + terminfo data is installed using the tic -x option (few systems
- still use ncurses 4.2).
-
- + modify C++ binding to work with newer C++ compilers by providing
- initializers and using modern casts. Old-style header names are
- still used in this release to allow compiling with not-so-old
- compilers.
-
- + form and menu libraries now work with wide-character data.
- Applications which bypassed the form library and manipulated the
- FIELD.buf data directly will not work properly with libformw, since
- that no longer points to an array of char. The set_field_buffer()
- and field_buffer() functions translate to/from the actual field
- data.
-
- + change SP->_current_attr to a pointer, adjust ifdef's to ensure that
- libtinfo.so and libtinfow.so have the same ABI. The reason for this
- is that the corresponding data which belongs to the upper-level
- ncurses library has a different size in each model.
-
- + winnstr() now returns multibyte character strings for the
- wide-character configuration.
-
- + assume_default_colors() no longer requires that use_default_colors()
- be called first.
-
- + data_ahead() now works with wide-characters.
-
- + slk_set() and slk_wset() now accept and store multibyte or
- multicolumn characters.
-
- + start_color() now returns OK if colors have already been started.
- start_color() also returns ERR if it cannot allocate memory.
-
- + pair_content() now returns -1 for consistency with init_pair() if it
- corresponds to the default-color.
-
- + unctrl() now returns null if its parameter does not correspond
- to an unsigned char.
-
- Added extensions:
- Experimental mouse version 2 supports wheel mice with buttons
- 4 and 5. This requires ABI 6 because it modifies the encoding
- of mouse events.
-
- Experimental extended colors allows encoding of 256 foreground
- and background colors, e.g., with the xterm-256color or
- xterm-88color terminfo entries. This requires ABI 6 because
- it changes the size of cchar_t.
-
- Added internal functions:
- _nc_check_termtype2
- _nc_resolve_uses2
- _nc_retrace_cptr
- _nc_retrace_cvoid_ptr
- _nc_retrace_void_ptr
- _nc_setup_term
-
- Removed internal functions:
- none
-
- Modified internal functions:
- _nc_insert_ch
- _nc_save_str
- _nc_trans_string
-
- 5.4 (February 8, 2004)
- Interface changes:
-
- + add the remaining functions for X/Open curses wide-character support.
- These are only available if the library is configured using the
- --enable-widec option.
- pecho_wchar()
- slk_wset()
-
- + write getyx() and related 2-return macros in terms of getcury(),
- getcurx(), etc.
-
- + simplify ifdef for bool declaration in curses.h
-
- + modify ifdef's in curses.h that disabled use of __attribute__() for
- g++, since recent versions implement the cases which ncurses uses.
-
- + change some interfaces to use const:
- define_key()
- mvprintw()
- mvwprintw()
- printw()
- vw_printw()
- winsnstr()
- wprintw()
-
- Added extensions:
- key_defined()
-
- Added internal functions:
- _nc_get_locale()
- _nc_insert_ch()
- _nc_is_charable() wide
- _nc_locale_breaks_acs()
- _nc_pathlast()
- _nc_to_char() wide
- _nc_to_widechar() wide
- _nc_tparm_analyze()
- _nc_trace_bufcat() debug
- _nc_unicode_locale()
-
- Removed internal functions:
- _nc_outstr()
- _nc_sigaction()
-
- Modified internal functions:
- _nc_remove_string()
- _nc_retrace_chtype()
-
- 5.3 (October 12, 2002)
- 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_reset_colors()
- _nc_retrace_bool() debug
- _nc_retrace_unsigned() debug
- _nc_rootname()
- _nc_trace_ttymode() debug
- _nc_varargs() debug
- _nc_visbufn() 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:
-------------------------------
-
- Configuration and Installation:
-
- On platforms where ncurses is assumed to be installed in /usr/lib,
- the configure script uses "/usr" as a default:
-
- Linux, FreeBSD, NetBSD, OpenBSD, Cygwin
-
- For other platforms, the default is "/usr/local". See the discussion
- of the "--disable-overwrite" option.
-
- The location of the terminfo is set indirectly by the "--datadir"
- configure option, e.g., /usr/share/terminfo, given a datadir of
- /usr/share. You may want to override this if you are installing
- ncurses libraries in nonstandard locations, but wish to share the
- terminfo database.
-
- Normally the ncurses library is configured in a pure-terminfo mode;
- that is, with the --disable-termcap option. This makes 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 speeds up termcap-based
- startups, at the expense of not allowing personal termcap entries to
- reference the terminfo tree. See comments in
- ncurses/tinfo/read_termcap.c for further 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 systems there has been a practice of designating the system
- console driver type as `console'. Please do not do this! 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 a modern xterm based on XFree86 (i.e., xterm-new). The
- earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided
- as well. See the --without-xterm-new configure script option if you
- are unable to update your system.
-
-
-CONFIGURING FALLBACK ENTRIES:
-----------------------------
-
- 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. This must be done on a machine which
- has ncurses' infocmp and terminfo database installed.
-
- These entries are checked by setupterm() only when the conventional
- fetches from the terminfo tree and the termcap fallback (if configured)
- 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
- ncurses/tinfo/MKfallback.sh. A configure script option
- --with-fallbacks does this (it accepts a comma-separated list of the
- names you wish, and does not require a rebuild).
-
- If you wanted (say) to have linux, vt100, and xterm fallbacks, you
- would use the commands
-
- cd ncurses;
- tinfo/MKfallback.sh linux vt100 xterm >fallback.c
-
- Then just rebuild and reinstall the library as you would normally.
- You can restore the default empty fallback list with
-
- tinfo/MKfallback.sh >fallback.c
-
- The overhead for an empty fallback list is one trivial stub function.
- Any non-empty fallback list is const-ed and therefore lives in sharable
- 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 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 into the
- libgpm.so file, producing symbol conflicts with ncurses (specifically
- the wgetch function). This was originally the BSD curses, but
- generally whatever curses library exists on the system.
-
- You may be able to work around this problem by linking as follows:
-
- cc -o foo foo.o -lncurses -lgpm -lncurses
-
- but the linker may not cooperate, producing mysterious errors.
- See the FAQ, as well as the discussion under the --with-gpm option:
-
- http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
-
-BUILDING NCURSES WITH A CROSS-COMPILER
- Ncurses can be built with a cross-compiler. Some parts must be built
- with the host's compiler since they are used for building programs
- (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables
- that are compiled into the ncurses library. The essential thing to do
- is set the BUILD_CC environment variable to your host's compiler, and
- run the configure script configuring for the cross-compiler.
-
- The configure options --with-build-cc, etc., are provided to make this
- simpler. Since make_hash and make_keys use only ANSI C features, it
- is normally not necessary to provide the other options such as
- --with-build-libs, but they are provided for completeness.
-
- Note that all of the generated source-files which are part of ncurses
- will be made if you use
-
- 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.
-
- When ncurses has been successfully cross-compiled, you may want to use
- "make install" (with a suitable target directory) to construct an
- install tree. Note that in this case (as with the --with-fallbacks
- option), ncurses uses the development platform's tic to do the
- "make install.data" portion.
-
-BUGS:
- Send any feedback to the ncurses mailing list at
- bug-ncurses@gnu.org. To subscribe send mail to
- 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.
-
--- vile:txtmode
diff --git a/contrib/ncurses/MANIFEST b/contrib/ncurses/MANIFEST
deleted file mode 100644
index 62f052ff1801..000000000000
--- a/contrib/ncurses/MANIFEST
+++ /dev/null
@@ -1,1024 +0,0 @@
-./ANNOUNCE
-./AUTHORS
-./Ada95/Makefile.in
-./Ada95/README
-./Ada95/TODO
-./Ada95/gen/Makefile.in
-./Ada95/gen/adacurses-config.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.adb.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.ads
-./INSTALL
-./MANIFEST
-./Makefile.in
-./Makefile.os2
-./NEWS
-./README
-./README.emx
-./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/NCURSES-Programming-HOWTO.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/index.html
-./doc/html/man/infocmp.1m.html
-./doc/html/man/infotocap.1m.html
-./doc/html/man/key_defined.3x.html
-./doc/html/man/keybound.3x.html
-./doc/html/man/keyok.3x.html
-./doc/html/man/legacy_coding.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/f_trace.c
-./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/hashed_db.h
-./include/headers
-./include/nc_alloc.h
-./include/nc_panel.h
-./include/nc_tparm.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_legacy.3x
-./man/curs_mouse.3x
-./man/curs_move.3x
-./man/curs_opaque.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_threads.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/key_defined.3x
-./man/keybound.3x
-./man/keyok.3x
-./man/legacy_coding.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_trace.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/csort
-./misc/emx.src
-./misc/form.def
-./misc/form.ref
-./misc/gen_edit.sh
-./misc/jpf-indent
-./misc/makedef.cmd
-./misc/makellib
-./misc/menu.def
-./misc/menu.ref
-./misc/ncu-indent
-./misc/ncurses-config.in
-./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
-./mk-hdr.awk
-./mkdirs.sh
-./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/key_defined.c
-./ncurses/base/keybound.c
-./ncurses/base/keyok.c
-./ncurses/base/legacy_coding.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_insnstr.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/use_window.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-lncursest
-./ncurses/llib-lncursesw
-./ncurses/modules
-./ncurses/tinfo/MKcaptab.awk
-./ncurses/tinfo/MKcaptab.sh
-./ncurses/tinfo/MKcodes.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/db_iterator.c
-./ncurses/tinfo/doalloc.c
-./ncurses/tinfo/entries.c
-./ncurses/tinfo/free_ttype.c
-./ncurses/tinfo/getenv_num.c
-./ncurses/tinfo/hashed_db.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/trim_sgr0.c
-./ncurses/tinfo/use_screen.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/charable.c
-./ncurses/widechar/lib_add_wch.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_wch.c
-./ncurses/widechar/lib_inwstr.c
-./ncurses/widechar/lib_key_name.c
-./ncurses/widechar/lib_pecho_wchar.c
-./ncurses/widechar/lib_slk_wset.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
-./tar-copy.sh
-./test/Makefile.in
-./test/README
-./test/aclocal.m4
-./test/background.c
-./test/blue.c
-./test/bs.6
-./test/bs.c
-./test/bulgarian-utf8.txt
-./test/cardfile.c
-./test/cardfile.dat
-./test/chgat.c
-./test/color_set.c
-./test/configure
-./test/configure.in
-./test/demo_altkeys.c
-./test/demo_defkey.c
-./test/demo_forms.c
-./test/demo_keyok.c
-./test/demo_menus.c
-./test/demo_panels.c
-./test/demo_termcap.c
-./test/ditto.c
-./test/dots.c
-./test/dots_mvcur.c
-./test/echochar.c
-./test/edit_field.c
-./test/edit_field.h
-./test/filter.c
-./test/firework.c
-./test/firstlast.c
-./test/foldkeys.c
-./test/gdc.6
-./test/gdc.c
-./test/hanoi.c
-./test/hashtest.c
-./test/inch_wide.c
-./test/inchs.c
-./test/ins_wide.c
-./test/inserts.c
-./test/key_names.c
-./test/keynames.c
-./test/knight.c
-./test/linux-color.dat
-./test/listused.sh
-./test/lrtest.c
-./test/mk-test.awk
-./test/modules
-./test/movewindow.c
-./test/ncurses.c
-./test/ncurses_tst.hin
-./test/newdemo.c
-./test/programs
-./test/railroad.c
-./test/rain.c
-./test/redraw.c
-./test/savescreen.c
-./test/savescreen.sh
-./test/tclock.c
-./test/test.priv.h
-./test/test_arrays.c
-./test/test_get_wstr.c
-./test/test_getstr.c
-./test/test_instr.c
-./test/test_inwstr.c
-./test/test_opaque.c
-./test/testaddch.c
-./test/testcurs.c
-./test/testscanw.c
-./test/tracemunch
-./test/view.c
-./test/widechars-utf8.txt
-./test/worm.c
-./test/xmas.c
-./test/xterm-16color.dat
-./test/xterm-88color.dat
diff --git a/contrib/ncurses/Makefile.in b/contrib/ncurses/Makefile.in
deleted file mode 100644
index cb8cd422cc49..000000000000
--- a/contrib/ncurses/Makefile.in
+++ /dev/null
@@ -1,97 +0,0 @@
-# $Id: Makefile.in,v 1.24 2005/01/29 19:30:06 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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 ' extended funcs: '`test @NCURSES_EXT_FUNCS@ != 0 && echo yes || echo no`
- @ echo ' xterm terminfo: '@WHICH_XTERM@
- @ echo ''
- @ echo ' bin directory: '$(bindir)
- @ echo ' lib directory: '$(libdir)
- @ echo ' include directory: '$(includedir)
- @ 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 \
-tags \
-uninstall \
-install ::
diff --git a/contrib/ncurses/Makefile.os2 b/contrib/ncurses/Makefile.os2
deleted file mode 100644
index 1244455dfb9c..000000000000
--- a/contrib/ncurses/Makefile.os2
+++ /dev/null
@@ -1,259 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-################################################################################
-# $Id: Makefile.os2,v 1.11 2006/04/22 21:46:17 tom Exp $
-#
-# Wrapper Makefile for ncurses library under OS/2.
-# 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/contrib/ncurses/NEWS b/contrib/ncurses/NEWS
deleted file mode 100644
index c5126da03699..000000000000
--- a/contrib/ncurses/NEWS
+++ /dev/null
@@ -1,8571 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: NEWS,v 1.1233 2008/05/03 23:14:39 tom Exp $
--------------------------------------------------------------------------------
-
-This is a log of changes that ncurses has gone through since Zeyd started
-working with Pavel Curtis' original work, pcurses, in 1992.
-
-Changes through 1.9.9e are recorded by Zeyd M Ben-Halim.
-Changes since 1.9.9e are recorded by Thomas E Dickey.
-
-Contributors include those who have provided patches (even small ones), as well
-as those who provide useful information (bug reports, analyses). Changes with
-no cited author are the work of Thomas E Dickey (TD).
-
-A few contributors are given in this file by their initials.
-They each account for one percent or more of the changes since 1.9.9e.
-See the AUTHORS file for the corresponding full names.
-
-Changes through 1.9.9e did not credit all contributions;
-it is not possible to add this information.
-
-20080503
- + modify screen.* terminfo entries using new screen+fkeys to fix
- overridden keys in screen.rxvt (Debian #478094) -TD
- + modify internal interfaces to reduce wgetch()'s dependency on the
- global SP.
- + simplify some loops with macros each_screen(), each_window() and
- each_ripoff().
-
-20080426
- + continue modifying test/ditto.c toward making it demonstrate
- multithreaded use_screen(), using fifos to pass data between screens.
- + fix typo in form.3x (report by Mike Gran).
-
-20080419
- + add screen.rxvt terminfo entry -TD
- + modify tic -f option to format spaces as \s to prevent them from
- being lost when that is read back in unformatted strings.
- + improve test/ditto.c, using a "talk"-style layout.
-
-20080412
- + change test/ditto.c to use openpty() and xterm.
- + add locks for copywin(), dupwin(), overlap(), overlay() on their
- window parameters.
- + add locks for initscr() and newterm() on updates to the SCREEN
- pointer.
- + finish table in curs_thread.3x manpage.
-
-20080405
- + begin table in curs_thread.3x manpage describing the scope of data
- used by each function (or symbol) for threading analysis.
- + add null-pointer checks to setsyx() and getsyx() (prompted by
- discussion by Martin v. Lowis and Jeroen Ruigrok van der Werven on
- python-dev2 mailing list).
-
-20080329
- + add null-pointer checks in set_term() and delscreen().
- + move _nc_windows into _nc_globals, since windows can be pads, which
- are not associated with a particular screen.
- + change use_screen() to pass the SCREEN* parameter rather than
- stdscr to the callback function.
- + force libtool to use tag for 'CC' in case it does not detect this,
- e.g., on aix when using CC=powerpc-ibm-aix5.3.0.0-gcc
- (report/patch by Michael Haubenwallner).
- + override OBJEXT to "lo" when building with libtool, to work on
- platforms such as AIX where libtool may use a different suffix for
- the object files than ".o" (report/patch by Michael Haubenwallner).
- + add configure --with-pthread option, for building with the POSIX
- thread library.
-
-20080322
- + fill in extended-color pair two more places in wbkgrndset() and
- waddch_nosync() (prompted by Sedeno's patch).
- + fill in extended-color pair in _nc_build_wch() to make colors work
- for wide-characters using extended-colors (patch by Alejandro R
- Sedeno).
- + add x/X toggles to ncurses.c C color test to test/demo
- wide-characters with extended-colors.
- + add a/A toggles to ncurses.c c/C color tests.
- + modify test/ditto.c to use use_screen().
- + finish modifying test/rain.c to demonstrate threads.
-
-20080308
- + start modifying test/rain.c for threading demo.
- + modify test/ncurses.c to make 'f' test accept the f/F/b/F/</> toggles
- that the 'F' accepts.
- + modify test/worm.c to show trail in reverse-video when other threads
- are working concurrently.
- + fix a deadlock from improper nesting of mutexes for windowlist and
- window.
-
-20080301
- + fixes from 20080223 resolved issue with mutexes; change to use
- recursive mutexes to fix memory leak in delwin() as called from
- _nc_free_and_exit().
-
-20080223
- + fix a size-difference in _nc_globals which caused hanging of mutex
- lock/unlock when termlib was built separately.
-
-20080216
- + avoid using nanosleep() in threaded configuration since that often
- is implemented to suspend the entire process.
-
-20080209
- + update test programs to build/work with various UNIX curses for
- comparisons. This was to reinvestigate statement in X/Open curses
- that insnstr and winsnstr perform wrapping. None of the Unix-branded
- implementations do this, as noted in manpage (cf: 20040228).
-
-20080203
- + modify _nc_setupscreen() to set the legacy-coding value the same
- for both narrow/wide models. It had been set only for wide model,
- but is needed to make unctrl() work with locale in the narrow model.
- + improve waddch() and winsch() handling of EILSEQ from mbrtowc() by
- using unctrl() to display illegal bytes rather than trying to append
- further bytes to make up a valid sequence (reported by Andrey A
- Chernov).
- + modify unctrl() to check codes in 128-255 range versus isprint().
- If they are not printable, and locale was set, use a "M-" or "~"
- sequence.
-
-20080126
- + improve threading in test/worm.c (wrap refresh calls, and KEY_RESIZE
- handling). Now it hangs in napms(), no matter whether nanosleep()
- or poll() or select() are used on Linux.
-
-20080119
- + fixes to build with --disable-ext-funcs
- + add manpage for use_window and use_screen.
- + add set_tabsize() and set_escdelay() functions.
-
-20080112
- + remove recursive-mutex definitions, finish threading demo for worm.c
- + remove a redundant adjustment of lines in resizeterm.c's
- adjust_window() which caused occasional misadjustment of stdscr when
- softkeys were used.
-
-20080105
- + several improvements to terminfo entries based on xterm #230 -TD
- + modify MKlib_gen.sh to handle keyname/key_name prototypes, so the
- "link_test" builds properly.
- + fix for toe command-line options -u/-U to ensure filename is given.
- + fix allocation-size for command-line parsing in infocmp from 20070728
- (report by Miroslav Lichvar)
- + improve resizeterm() by moving ripped-off lines, and repainting the
- soft-keys (report by Katarina Machalkova)
- + add clarification in wclear's manpage noting that the screen will be
- cleared even if a subwindow is cleared (prompted by Christer Enfors
- question).
- + change test/ncurses.c soft-key tests to work with KEY_RESIZE.
-
-20071222
- + continue implementing support for threading demo by adding mutex
- for delwin().
-
-20071215
- + add several functions to C++ binding which wrap C functions that
- pass a WINDOW* parameter (request by Chris Lee).
-
-20071201
- + add note about configure options needed for Berkeley database to the
- INSTALL file.
- + improve checks for version of Berkeley database libraries.
- + amend fix for rpath to not modify LDFLAGS if the platform has no
- applicable transformation (report by Christian Ebert, cf: 20071124).
-
-20071124
- + modify configure option --with-hashed-db to accept a parameter which
- is the install-prefix of a given Berkeley Database (prompted by
- pierre4d2 comments).
- + rewrite wrapper for wcrtomb(), making it work on Solaris. This is
- used in the form library to determine the length of the buffer needed
- by field_buffer (report by Alfred Fung).
- + remove unneeded window-parameter from C++ binding for wresize (report
- by Chris Lee).
-
-20071117
- + modify the support for filesystems which do not support mixed-case to
- generate 2-character (hexadecimal) codes for the lower-level of the
- filesystem terminfo database (request by Michail Vidiassov).
- + add configure option --enable-mixed-case, to allow overriding the
- configure script's check if the filesystem supports mixed-case
- filenames.
- + add wresize() to C++ binding (request by Chris Lee).
- + define NCURSES_EXT_FUNCS and NCURSES_EXT_COLORS in curses.h to make
- it simpler to tell if the extended functions and/or colors are
- declared.
-
-20071103
- + update memory-leak checks for changes to names.c and codes.c
- + correct acsc strings in h19, z100 (patch by Benjamin C W Sittler).
-
-20071020
- + continue implementing support for threading demo by adding mutex
- for use_window().
- + add mrxvt terminfo entry, add/fix xterm building blocks for modified
- cursor keys -TD
- + compile with FreeBSD "contemporary" TTY interface (patch by
- Rong-En Fan).
-
-20071013
- + modify makefile rules to allow clear, tput and tset to be built
- without libtic. The other programs (infocmp, tic and toe) rely on
- that library.
- + add/modify null-pointer checks in several functions for SP and/or
- the WINDOW* parameter (report by Thorben Krueger).
- + fixes for field_buffer() in formw library (see Redhat Bugzilla
- #310071, patches by Miroslav Lichvar).
- + improve performance of NCURSES_CHAR_EQ code (patch by Miroslav
- Lichvar).
- + update/improve mlterm and rxvt terminfo entries, e.g., for
- the modified cursor- and keypad-keys -TD
-
-20071006
- + add code to curses.priv.h ifdef'd with NCURSES_CHAR_EQ, which
- changes the CharEq() macro to an inline function to allow comparing
- cchar_t struct's without comparing gaps in a possibly unpacked
- memory layout (report by Miroslav Lichvar).
-
-20070929
- + add new functions to lib_trace.c to setup mutex's for the _tracef()
- calls within the ncurses library.
- + for the reentrant model, move _nc_tputs_trace and _nc_outchars into
- the SCREEN.
- + start modifying test/worm.c to provide threading demo (incomplete).
- + separated ifdef's for some BSD-related symbols in tset.c, to make
- it compile on LynxOS (report by Greg Gemmer).
-20070915
- + modify Ada95/gen/Makefile to use shlib script, to simplify building
- shared-library configuration on platforms lacking rpath support.
- + build-fix for Ada95/src/Makefile to reflect changed dependency for
- the terminal-interface-curses-aux.adb file which is now generated.
- + restructuring test/worm.c, for use_window() example.
-
-20070908
- + add use_window() and use_screen() functions, to develop into support
- for threaded library (incomplete).
- + fix typos in man/curs_opaque.3x which kept the install script from
- creating symbolic links to two aliases created in 20070818 (report by
- Rong-En Fan).
-
-20070901
- + remove a spurious newline from output of html.m4, which caused links
- for Ada95 html to be incorrect for the files generated using m4.
- + start investigating mutex's for SCREEN manipulation (incomplete).
- + minor cleanup of codes.c/names.c for --enable-const
- + expand/revise "Routine and Argument Names" section of ncurses manpage
- to address report by David Givens in newsgroup discussion.
- + fix interaction between --without-progs/--with-termcap configure
- options (report by Michail Vidiassov).
- + fix typo in "--disable-relink" option (report by Michail Vidiassov).
-
-20070825
- + fix a sign-extension bug in infocmp's repair_acsc() function
- (cf: 971004).
- + fix old configure script bug which prevented "--disable-warnings"
- option from working (patch by Mike Frysinger).
-
-20070818
- + add 9term terminal description (request by Juhapekka Tolvanen) -TD
- + modify comp_hash.c's string output to avoid misinterpreting a null
- "\0" followed by a digit.
- + modify MKnames.awk and MKcodes.awk to support big-strings.
- This only applies to the cases (broken linker, reentrant) where
- the corresponding arrays are accessed via wrapper functions.
- + split MKnames.awk into two scripts, eliminating the shell redirection
- which complicated the make process and also the bogus timestamp file
- which was introduced to fix "make -j".
- + add test/test_opaque.c, test/test_arrays.c
- + add wgetscrreg() and wgetparent() for applications that may need it
- when NCURSES_OPAQUE is defined (prompted by Bryan Christ).
-
-20070812
- + amend treatment of infocmp "-r" option to retain the 1023-byte limit
- unless "-T" is given (cf: 981017).
- + modify comp_captab.c generation to use big-strings.
- + make _nc_capalias_table and _nc_infoalias_table private accessed via
- _nc_get_alias_table() since the tables are used only within the tic
- library.
- + modify configure script to skip Intel compiler in CF_C_INLINE.
- + make _nc_info_hash_table and _nc_cap_hash_table private accessed via
- _nc_get_hash_table() since the tables are used only within the tic
- library.
-
-20070728
- + make _nc_capalias_table and _nc_infoalias_table private, accessed via
- _nc_get_alias_table() since they are used only by parse_entry.c
- + make _nc_key_names private since it is used only by lib_keyname.c
- + add --disable-big-strings configure option to control whether
- unctrl.c is generated using the big-string optimization - which may
- use strings longer than supported by a given compiler.
- + reduce relocation tables for tic, infocmp by changing type of
- internal hash tables to short, and make those private symbols.
- + eliminate large fixed arrays from progs/infocmp.c
-
-20070721
- + change winnstr() to stop at the end of the line (cf: 970315).
- + add test/test_get_wstr.c
- + add test/test_getstr.c
- + add test/test_inwstr.c
- + add test/test_instr.c
-
-20070716
- + restore a call to obtain screen-size in _nc_setupterm(), which
- is used in tput and other non-screen applications via setupterm()
- (Debian #433357, reported by Florent Bayle, Christian Ohm,
- cf: 20070310).
-
-20070714
- + add test/savescreen.c test-program
- + add check to trace-file open, if the given name is a directory, add
- ".log" to the name and try again.
- + add konsole-256color entry -TD
- + add extra gcc warning options from xterm.
- + minor fixes for ncurses/hashmap test-program.
- + modify configure script to quiet c++ build with libtool when the
- --disable-echo option is used.
- + modify configure script to disable ada95 if libtool is selected,
- writing a warning message (addresses FreeBSD ports/114493).
- + update config.guess, config.sub
-
-20070707
- + add continuous-move "M" to demo_panels to help test refresh changes.
- + improve fix for refresh of window on top of multi-column characters,
- taking into account some split characters on left/right window
- boundaries.
-
-20070630
- + add "widec" row to _tracedump() output to help diagnose remaining
- problems with multi-column characters.
- + partial fix for refresh of window on top of multi-column characters
- which are partly overwritten (report by Sadrul H Chowdhury).
- + ignore A_CHARTEXT bits in vidattr() and vid_attr(), in case
- multi-column extension bits are passed there.
- + add setlocale() call to demo_panels.c, needed for wide-characters.
- + add some output flags to _nc_trace_ttymode to help diagnose a bug
- report by Larry Virden, i.e., ONLCR, OCRNL, ONOCR and ONLRET,
-
-20070623
- + add test/demo_panels.c
- + implement opaque version of setsyx() and getsyx().
-
-20070612
- + corrected xterm+pcf2 terminfo modifiers for F1-F4, to match xterm
- #226 -TD
- + split-out key_name() from MKkeyname.awk since it now depends upon
- wunctrl() which is not in libtinfo (report by Rong-En Fan).
-
-20070609
- + add test/key_name.c
- + add stdscr cases to test/inchs.c and test_inch_wide.c
- + update test/configure
- + correct formatting of DEL (0x7f) in _nc_vischar().
- + null-terminate result of wunctrl().
- + add null-pointer check in key_name() (report by Andreas Krennmair,
- cf: 20020901).
-
-20070602
- + adapt mouse-handling code from menu library in form-library
- (discussion with Clive Nicolson).
- + add a modification of test/dots.c, i.e., test/dots_mvcur.c to
- illustrate how to use mvcur().
- + modify wide-character flavor of SetAttr() to preserve the
- WidecExt() value stored in the .attr field, e.g., in case it
- is overwritten by chgat (report by Aleksi Torhamo).
- + correct buffer-size for _nc_viswbuf2n() (report by Aleksi Torhamo).
- + build-fixes for Solaris 2.6 and 2.7 (patch by Peter O'Gorman).
-
-20070526
- + modify keyname() to use "^X" form only if meta() has been called, or
- if keyname() is called without initializing curses, e.g., via
- initscr() or newterm() (prompted by LinuxBase #1604).
- + document some portability issues in man/curs_util.3x
- + add a shadow copy of TTY buffer to _nc_prescreen to fix applications
- broken by moving that data into SCREEN (cf: 20061230).
-
-20070512
- + add 'O' (wide-character panel test) in ncurses.c to demonstrate a
- problem reported by Sadrul H Chowdhury with repainting parts of
- a fullwidth cell.
- + modify slk_init() so that if there are preceding calls to
- ripoffline(), those affect the available lines for soft-keys (adapted
- from patch by Clive Nicolson).
- + document some portability issues in man/curs_getyx.3x
-
-20070505
- + fix a bug in Ada95/samples/ncurses which caused a variable to
- become uninitialized in the "b" test.
- + fix Ada95/gen/Makefile.in adahtml rule to account for recent
- movement of files, fix a few incorrect manpage references in the
- generated html.
- + add Ada95 binding to _nc_freeall() as Curses_Free_All to help with
- memory-checking.
- + correct some functions in Ada95 binding which were using return value
- from C where none was returned: idcok(), immedok() and wtimeout().
- + amend recent changes for Ada95 binding to make it build with
- Cygwin's linker, e.g., with configure options
- --enable-broken-linker --with-ticlib
-
-20070428
- + add a configure check for gcc's options for inlining, use that to
- quiet a warning message where gcc's default behavior changed from
- 3.x to 4.x.
- + improve warning message when checking if GPM is linked to curses
- library by not warning if its use of "wgetch" is via a weak symbol.
- + add loader options when building with static libraries to ensure that
- an installed shared library for ncurses does not conflict. This is
- reported as problem with Tru64, but could affect other platforms
- (report Martin Mokrejs, analysis by Tim Mooney).
- + fix build on cygwin after recent ticlib/termlib changes, i.e.,
- + adjust TINFO_SUFFIX value to work with cygwin's dll naming
- + revert a change from 20070303 which commented out dependency of
- SHLIB_LIST in form/menu/panel/c++ libraries.
- + fix initialization of ripoff stack pointer (cf: 20070421).
-
-20070421
- + move most static variables into structures _nc_globals and
- _nc_prescreen, to simplify storage.
- + add/use configure script macro CF_SIG_ATOMIC_T, use the corresponding
- type for data manipulated by signal handlers (prompted by comments
- in mailing.openbsd.bugs newsgroup).
- + modify CF_WITH_LIBTOOL to allow one to pass options such as -static
- to the libtool create- and link-operations.
-
-20070414
- + fix whitespace in curs_opaque.3x which caused a spurious ';' in
- the installed aliases (report by Peter Santoro).
- + fix configure script to not try to generate adacurses-config when
- Ada95 tree is not built.
-
-20070407
- + add man/curs_legacy.3x, man/curs_opaque.3x
- + fix acs_map binding for Ada95 when --enable-reentrant is used.
- + add adacurses-config to the Ada95 install, based on version from
- FreeBSD port, in turn by Juergen Pfeifer in 2000 (prompted by
- comment on comp.lang.ada newsgroup).
- + fix includes in c++ binding to build with Intel compiler
- (cf: 20061209).
- + update install rule in Ada95 to use mkdirs.sh
- > other fixes prompted by inspection for Coverity report:
- + modify ifdef's for c++ binding to use try/catch/throw statements
- + add a null-pointer check in tack/ansi.c request_cfss()
- + fix a memory leak in ncurses/base/wresize.c
- + corrected check for valid memu/meml capabilities in
- progs/dump_entry.c when handling V_HPUX case.
- > fixes based on Coverity report:
- + remove dead code in test/bs.c
- + remove dead code in test/demo_defkey.c
- + remove an unused assignment in progs/infocmp.c
- + fix a limit check in tack/ansi.c tools_charset()
- + fix tack/ansi.c tools_status() to perform the VT320/VT420
- tests in request_cfss(). The function had exited too soon.
- + fix a memory leak in tic.c's make_namelist()
- + fix a couple of places in tack/output.c which did not check for EOF.
- + fix a loop-condition in test/bs.c
- + add index checks in lib_color.c for color palettes
- + add index checks in progs/dump_entry.c for version_filter() handling
- of V_BSD case.
- + fix a possible null-pointer dereference in copywin()
- + fix a possible null-pointer dereference in waddchnstr()
- + add a null-pointer check in _nc_expand_try()
- + add a null-pointer check in tic.c's make_namelist()
- + add a null-pointer check in _nc_expand_try()
- + add null-pointer checks in test/cardfile.c
- + fix a double-free in ncurses/tinfo/trim_sgr0.c
- + fix a double-free in ncurses/base/wresize.c
- + add try/catch block to c++/cursesmain.cc
-
-20070331
- + modify Ada95 binding to build with --enable-reentrant by wrapping
- global variables (bug: acs_map does not yet work).
- + modify Ada95 binding to use the new access-functions, allowing it
- to build/run when NCURSES_OPAQUE is set.
- + add access-functions and macros to return properties of the WINDOW
- structure, e.g., when NCURSES_OPAQUE is set.
- + improved install-sh's quoting.
- + use mkdirs.sh rather than mkinstalldirs, e.g., to use fixes from
- other programs.
-
-20070324
- + eliminate part of the direct use of WINDOW data from Ada95 interface.
- + fix substitutions for termlib filename to make configure option
- --enable-reentrant work with --with-termlib.
- + change a constructor for NCursesWindow to allow compiling with
- NCURSES_OPAQUE set, since we cannot pass a reference to
- an opaque pointer.
-
-20070317
- + ignore --with-chtype=unsigned since unsigned is always added to
- the type in curses.h; do the same for --with-mmask-t.
- + change warning regarding --enable-ext-colors and wide-character
- in the configure script to an error.
- + tweak error message in CF_WITH_LIBTOOL to distinguish other programs
- such as Darwin's libtool program (report by Michail Vidiassov)
- + modify edit_man.sh to allow for multiple substitutions per line.
- + set locale in misc/ncurses-config.in since it uses a range
- + change permissions libncurses++.a install (report by Michail
- Vidiassov).
- + corrected length of temporary buffer in wide-character version
- of set_field_buffer() (related to report by Bryan Christ).
-
-20070311
- + fix mk-1st.awk script install_shlib() function, broken in 20070224
- changes for cygwin (report by Michail Vidiassov).
-
-20070310
- + increase size of array in _nc_visbuf2n() to make "tic -v" work
- properly in its similar_sgr() function (report/analysis by Peter
- Santoro).
- + add --enable-reentrant configure option for ongoing changes to
- implement a reentrant version of ncurses:
- + libraries are suffixed with "t"
- + wrap several global variables (curscr, newscr, stdscr, ttytype,
- COLORS, COLOR_PAIRS, COLS, ESCDELAY, LINES and TABSIZE) as
- functions returning values stored in SCREEN or cur_term.
- + move some initialization (LINES, COLS) from lib_setup.c,
- i.e., setupterm() to _nc_setupscreen(), i.e., newterm().
-
-20070303
- + regenerated html documentation.
- + add NCURSES_OPAQUE symbol to curses.h, will use to make structs
- opaque in selected configurations.
- + move the chunk in lib_acs.c which resets acs capabilities when
- running on a terminal whose locale interferes with those into
- _nc_setupscreen(), so the libtinfo/libtinfow files can be made
- identical (requested by Miroslav Lichvar).
- + do not use configure variable SHLIB_LIBS for building libraries
- outside the ncurses directory, since that symbol is customized
- only for that directory, and using it introduces an unneeded
- dependency on libdl (requested by Miroslav Lichvar).
- + modify mk-1st.awk so the generated makefile rules for linking or
- installing shared libraries do not first remove the library, in
- case it is in use, e.g., libncurses.so by /bin/sh (report by Jeff
- Chua).
- + revised section "Using NCURSES under XTERM" in ncurses-intro.html
- (prompted by newsgroup comment by Nick Guenther).
-
-20070224
- + change internal return codes of _nc_wgetch() to check for cases
- where KEY_CODE_YES should be returned, e.g., if a KEY_RESIZE was
- ungetch'd, and read by wget_wch().
- + fix static-library build broken in 20070217 changes to remove "-ldl"
- (report by Miroslav Lichvar).
- + change makefile/scripts for cygwin to allow building termlib.
- + use Form_Hook in manpages to match form.h
- + use Menu_Hook in manpages, as well as a few places in menu.h
- + correct form- and menu-manpages to use specific Field_Options,
- Menu_Options and Item_Options types.
- + correct prototype for _tracechar() in manpage (cf: 20011229).
- + correct prototype for wunctrl() in manpage.
-
-20070217
- + fixes for $(TICS_LIST) in ncurses/Makefile (report by Miroslav
- Lichvar).
- + modify relinking of shared libraries to apply only when rpath is
- enabled, and add --disable-relink option which can be used to
- disable the feature altogether (reports by Michail Vidiassov,
- Adam J Richter).
- + fix --with-termlib option for wide-character configuration, stripping
- the "w" suffix in one place (report by Miroslav Lichvar).
- + remove "-ldl" from some library lists to reduce dependencies in
- programs (report by Miroslav Lichvar).
- + correct description of --enable-signed-char in configure --help
- (report by Michail Vidiassov).
- + add pattern for GNU/kFreeBSD configuration to CF_XOPEN_SOURCE,
- which matches an earlier change to CF_SHARED_OPTS, from xterm #224
- fixes.
- + remove "${DESTDIR}" from -install_name option used for linking
- shared libraries on Darwin (report by Michail Vidiassov).
-
-20070210
- + add test/inchs.c, test_inch_wide.c, to test win_wchnstr().
- + remove libdl from library list for termlib (report by Miroslav
- Lichvar).
- + fix configure.in to allow --without-progs --with-termlib (patch by
- Miroslav Lichvar).
- + modify win_wchnstr() to ensure that only a base cell is returned
- for each multi-column character (prompted by report by Wei Kong
- regarding change in mvwin_wch() cf: 20041023).
-
-20070203
- + modify fix_wchnstr() in form library to strip attributes (and color)
- from the cchar_t array (field cells) read from a field's window.
- Otherwise, when copying the field cells back to the window, the
- associated color overrides the field's background color (report by
- Ricardo Cantu).
- + improve tracing for form library, showing created forms, fields, etc.
- + ignore --enable-rpath configure option if --with-shared was omitted.
- + add _nc_leaks_tinfo(), _nc_free_tic(), _nc_free_tinfo() entrypoints
- to allow leak-checking when both tic- and tinfo-libraries are built.
- + drop CF_CPP_VSCAN_FUNC macro from configure script, since C++ binding
- no longer relies on it.
- + disallow combining configure script options --with-ticlib and
- --enable-termcap (report by Rong-En Fan).
- + remove tack from ncurses tree.
-
-20070128
- + fix typo in configure script that broke --with-termlib option
- (report by Rong-En Fan).
-
-20070127
- + improve fix for FreeBSD gnu/98975, to allow for null pointer passed
- to tgetent() (report by Rong-en Fan).
- + update tack/HISTORY and tack/README to tell how to build it after
- it is removed from the ncurses tree.
- + fix configure check for libtool's version to trim blank lines
- (report by sci-fi@hush.ai).
- + review/eliminate other original-file artifacts in cursesw.cc, making
- its license consistent with ncurses.
- + use ncurses vw_scanw() rather than reading into a fixed buffer in
- the c++ binding for scanw() methods (prompted by report by Nuno Dias).
- + eliminate fixed-buffer vsprintf() calls in c++ binding.
-
-20070120
- + add _nc_leaks_tic() to separate leak-checking of tic library from
- term/ncurses libraries, and thereby eliminate a library dependency.
- + fix test/mk-test.awk to ignore blank lines.
- + correct paths in include/headers, for --srcdir (patch by Miroslav
- Lichvar).
-
-20070113
- + add a break-statement in misc/shlib to ensure that it exits on the
- _first_ matched directory (report by Paul Novak).
- + add tack/configure, which can be used to build tack outside the
- ncurses build-tree.
- + add --with-ticlib option, to build/install the tic-support functions
- in a separate library (suggested by Miroslav Lichvar).
-
-20070106
- + change MKunctrl.awk to reduce relocation table for unctrl.o
- + change MKkeyname.awk to reduce relocation table for keyname.o
- (patch by Miroslav Lichvar).
-
-20061230
- + modify configure check for libtool's version to trim blank lines
- (report by sci-fi@hush.ai).
- + modify some modules to allow them to be reentrant if _REENTRANT is
- defined: lib_baudrate.c, resizeterm.c (local data only)
- + eliminate static data from some modules: add_tries.c, hardscroll.c,
- lib_ttyflags.c, lib_twait.c
- + improve manpage install to add aliases for the transformed program
- names, e.g., from --program-prefix.
- + used linklint to verify links in the HTML documentation, made fixes
- to manpages as needed.
- + fix a typo in curs_mouse.3x (report by William McBrine).
- + fix install-rule for ncurses5-config to make the bin-directory.
-
-20061223
- + modify configure script to omit the tic (terminfo compiler) support
- from ncurses library if --without-progs option is given.
- + modify install rule for ncurses5-config to do this via "install.libs"
- + modify shared-library rules to allow FreeBSD 3.x to use rpath.
- + update config.guess, config.sub
-
-20061217 5.6 release for upload to ftp.gnu.org
-
-20061217
- + add ifdef's for <wctype.h> for HPUX, which has the corresponding
- definitions in <wchar.h>.
- + revert the va_copy() change from 20061202, since it was neither
- correct nor portable.
- + add $(LOCAL_LIBS) definition to progs/Makefile.in, needed for
- rpath on Solaris.
- + ignore wide-acs line-drawing characters that wcwidth() claims are
- not one-column. This is a workaround for Solaris' broken locale
- support.
-
-20061216
- + modify configure --with-gpm option to allow it to accept a parameter,
- i.e., the name of the dynamic GPM library to load via dlopen()
- (requested by Bryan Henderson).
- + add configure option --with-valgrind, changes from vile.
- + modify configure script AC_TRY_RUN and AC_TRY_LINK checks to use
- 'return' in preference to 'exit()'.
-
-20061209
- + change default for --with-develop back to "no".
- + add XTABS to tracing of TTY bits.
- + updated autoconf patch to ifdef-out the misfeature which declares
- exit() for configure tests. This fixes a redefinition warning on
- Solaris.
- + use ${CC} rather than ${LD} in shared library rules for IRIX64,
- Solaris to help ensure that initialization sections are provided for
- extra linkage requirements, e.g., of C++ applications (prompted by
- comment by Casper Dik in newsgroup).
- + rename "$target" in CF_MAN_PAGES to make it easier to distinguish
- from the autoconf predefined symbol. There was no conflict,
- since "$target" was used only in the generated edit_man.sh file,
- but SuSE's rpm package contains a patch.
-
-20061202
- + update man/term.5 to reflect extended terminfo support and hashed
- database configuration.
- + updates for test/configure script.
- + adapted from SuSE rpm package:
- + remove long-obsolete workaround for broken-linker which declared
- cur_term in tic.c
- + improve error recovery in PUTC() macro when wcrtomb() does not
- return usable results for an 8-bit character.
- + patches from rpm package (SuSE):
- + use va_copy() in extra varargs manipulation for tracing version
- of printw, etc.
- + use a va_list rather than a null in _nc_freeall()'s call to
- _nc_printf_string().
- + add some see-also references in manpages to show related
- wide-character functions (suggested by Claus Fischer).
-
-20061125
- + add a check in lib_color.c to ensure caller does not increase COLORS
- above max_colors, which is used as an array index (discussion with
- Simon Sasburg).
- + add ifdef's allowing ncurses to be built with tparm() using either
- varargs (the existing status), or using a fixed-parameter list (to
- match X/Open).
-
-20061104
- + fix redrawing of windows other than stdscr using wredrawln() by
- touching the corresponding rows in curscr (discussion with Dan
- Gookin).
- + add test/redraw.c
- + add test/echochar.c
- + review/cleanup manpage descriptions of error-returns for form- and
- menu-libraries (prompted by FreeBSD docs/46196).
-
-20061028
- + add AUTHORS file -TD
- + omit the -D options from output of the new config script --cflags
- option (suggested by Ralf S Engelschall).
- + make NCURSES_INLINE unconditionally defined in curses.h
-
-20061021
- + revert change to accommodate bash 3.2, since that breaks other
- platforms, e.g., Solaris.
- + minor fixes to NEWS file to simplify scripting to obtain list of
- contributors.
- + improve some shared-library configure scripting for Linux, FreeBSD
- and NetBSD to make "--with-shlib-version" work.
- + change configure-script rules for FreeBSD shared libraries to allow
- for rpath support in versions past 3.
- + use $(DESTDIR) in makefile rules for installing/uninstalling the
- package config script (reports/patches by Christian Wiese,
- Ralf S Engelschall).
- + fix a warning in the configure script for NetBSD 2.0, working around
- spurious blanks embedded in its ${MAKEFLAGS} symbol.
- + change test/Makefile to simplify installing test programs in a
- different directory when --enable-rpath is used.
-
-20061014
- + work around bug in bash 3.2 by adding extra quotes (Jim Gifford).
- + add/install a package config script, e.g., "ncurses5-config" or
- "ncursesw5-config", according to configuration options.
-
-20061007
- + add several GNU Screen terminfo variations with 16- and 256-colors,
- and status line (Alain Bench).
- + change the way shared libraries (other than libtool) are installed.
- Rather than copying the build-tree's libraries, link the shared
- objects into the install directory. This makes the --with-rpath
- option work except with $(DESTDIR) (cf: 20000930).
-
-20060930
- + fix ifdef in c++/internal.h for QNX 6.1
- + test-compiled with (old) egcs-1.1.2, modified configure script to
- not unset the $CXX and related variables which would prevent this.
- + fix a few terminfo.src typos exposed by improvments to "-f" option.
- + improve infocmp/tic "-f" option formatting.
-
-20060923
- + make --disable-largefile option work (report by Thomas M Ott).
- + updated html documentation.
- + add ka2, kb1, kb3, kc2 to vt220-keypad as an extension -TD
- + minor improvements to rxvt+pcfkeys -TD
-
-20060916
- + move static data from lib_mouse.c into SCREEN struct.
- + improve ifdef's for _POSIX_VDISABLE in tset to work with Mac OS X
- (report by Michail Vidiassov).
- + modify CF_PATH_SYNTAX to ensure it uses the result from --prefix
- option (from lynx changes) -TD
- + adapt AC_PROG_EGREP check, noting that this is likely to be another
- place aggravated by POSIXLY_CORRECT.
- + modify configure check for awk to ensure that it is found (prompted
- by report by Christopher Parker).
- + update config.sub
-
-20060909
- + add kon, kon2 and jfbterm terminfo entry (request by Till Maas) -TD
- + remove invis capability from klone+sgr, mainly used by linux entry,
- since it does not really do this -TD
-
-20060903
- + correct logic in wadd_wch() and wecho_wch(), which did not guard
- against passing the multi-column attribute into a call on waddch(),
- e.g., using data returned by win_wch() (cf: 20041023)
- (report by Sadrul H Chowdhury).
-
-20060902
- + fix kterm's acsc string -TD
- + fix for change to tic/infocmp in 20060819 to ensure no blank is
- embedded into a termcap description.
- + workaround for 20050806 ifdef's change to allow visbuf.c to compile
- when using --with-termlib --with-trace options.
- + improve tgetstr() by making the return value point into the user's
- buffer, if provided (patch by Miroslav Lichvar (see Redhat Bugzilla
- #202480)).
- + correct libraries needed for foldkeys (report by Stanislav Ievlev)
-
-20060826
- + add terminfo entries for xfce terminal (xfce) and multi gnome
- terminal (mgt) -TD
- + add test/foldkeys.c
-
-20060819
- + modify tic and infocmp to avoid writing trailing blanks on terminfo
- source output (Debian #378783).
- + modify configure script to ensure that if the C compiler is used
- rather than the loader in making shared libraries, the $(CFLAGS)
- variable is also used (Redhat Bugzilla #199369).
- + port hashed-db code to db2 and db3.
- + fix a bug in tgetent() from 20060625 and 20060715 changes
- (patch/analysis by Miroslav Lichvar (see Redhat Bugzilla #202480)).
-
-20060805
- + updated xterm function-keys terminfo to match xterm #216 -TD
- + add configure --with-hashed-db option (tested only with FreeBSD 6.0,
- e.g., the db 1.8.5 interface).
-
-20060729
- + modify toe to access termcap data, e.g., via cgetent() functions,
- or as a text file if those are not available.
- + use _nc_basename() in tset to improve $SHELL check for csh/sh.
- + modify _nc_read_entry() and _nc_read_termcap_entry() so infocmp,
- can access termcap data when the terminfo database is disabled.
-
-20060722
- + widen the test for xterm kmous a little to allow for other strings
- than \E[M, e.g., for xterm-sco functionality in xterm.
- + update xterm-related terminfo entries to match xterm patch #216 -TD
- + update config.guess, config.sub
-
-20060715
- + fix for install-rule in Ada95 to add terminal_interface.ads
- and terminal_interface.ali (anonymous posting in comp.lang.ada).
- + correction to manpage for getcchar() (report by William McBrine).
- + add test/chgat.c
- + modify wchgat() to mark updated cells as changed so a refresh will
- repaint those cells (comments by Sadrul H Chowdhury and William
- McBrine).
- + split up dependency of names.c and codes.c in ncurses/Makefile to
- work with parallel make (report/analysis by Joseph S Myers).
- + suppress a warning message (which is ignored) for systems without
- an ldconfig program (patch by Justin Hibbits).
- + modify configure script --disable-symlinks option to allow one to
- disable symlink() in tic even when link() does not work (report by
- Nigel Horne).
- + modify MKfallback.sh to use tic -x when constructing fallback tables
- to allow extended capabilities to be retrieved from a fallback entry.
- + improve leak-checking logic in tgetent() from 20060625 to ensure that
- it does not free the current screen (report by Miroslav Lichvar).
-
-20060708
- + add a check for _POSIX_VDISABLE in tset (NetBSD #33916).
- + correct _nc_free_entries() and related functions used for memory leak
- checking of tic.
-
-20060701
- + revert a minor change for magic-cookie support from 20060513, which
- caused unexpected reset of attributes, e.g., when resizing test/view
- in color mode.
- + note in clear manpage that the program ignores command-line
- parameters (prompted by Debian #371855).
- + fixes to make lib_gen.c build properly with changes to the configure
- --disable-macros option and NCURSES_NOMACROS (cf: 20060527)
- + update/correct several terminfo entries -TD
- + add some notes regarding copyright to terminfo.src -TD
-
-20060625
- + fixes to build Ada95 binding with gnat-4.1.0
- + modify read_termtype() so the term_names data is always allocated as
- part of the str_table, a better fix for a memory leak (cf: 20030809).
- + reduce memory leaks in repeated calls to tgetent() by remembering the
- last TERMINAL* value allocated to hold the corresponding data and
- freeing that if the tgetent() result buffer is the same as the
- previous call (report by "Matt" for FreeBSD gnu/98975).
- + modify tack to test extended capability function-key strings.
- + improved gnome terminfo entry (GenToo #122566).
- + improved xterm-256color terminfo entry (patch by Alain Bench).
-
-20060617
- + fix two small memory leaks related to repeated tgetent() calls
- with TERM=screen (report by "Matt" for FreeBSD gnu/98975).
- + add --enable-signed-char to simplify Debian package.
- + reduce name-pollution in term.h by removing #define's for HAVE_xxx
- symbols.
- + correct typo in curs_terminfo.3x (Debian #369168).
-
-20060603
- + enable the mouse in test/movewindow.c
- + improve a limit-check in frm_def.c (John Heasley).
- + minor copyright fixes.
- + change configure script to produce test/Makefile from data file.
-
-20060527
- + add a configure option --enable-wgetch-events to enable
- NCURSES_WGETCH_EVENTS, and correct the associated loop-logic in
- lib_twait.c (report by Bernd Jendrissek).
- + remove include/nomacros.h from build, since the ifdef for
- NCURSES_NOMACROS makes that obsolete.
- + add entrypoints for some functions which were only provided as macros
- to make NCURSES_NOMACROS ifdef work properly: getcurx(), getcury(),
- getbegx(), getbegy(), getmaxx(), getmaxy(), getparx() and getpary(),
- wgetbkgrnd().
- + provide ifdef for NCURSES_NOMACROS which suppresses most macro
- definitions from curses.h, i.e., where a macro is defined to override
- a function to improve performance. Allowing a developer to suppress
- these definitions can simplify some application (discussion with
- Stanislav Ievlev).
- + improve description of memu/meml in terminfo manpage.
-
-20060520
- + if msgr is false, reset video attributes when doing an automargin
- wrap to the next line. This makes the ncurses 'k' test work properly
- for hpterm.
- + correct caching of keyname(), which was using only half of its table.
- + minor fixes to memory-leak checking.
- + make SCREEN._acs_map and SCREEN._screen_acs_map pointers rather than
- arrays, making ACS_LEN less visible to applications (suggested by
- Stanislav Ievlev).
- + move chunk in SCREEN ifdef'd for USE_WIDEC_SUPPORT to the end, so
- _screen_acs_map will have the same offset in both ncurses/ncursesw,
- making the corresponding tinfo/tinfow libraries binary-compatible
- (cf: 20041016, report by Stanislav Ievlev).
-
-20060513
- + improve debug-tracing for EmitRange().
- + change default for --with-develop to "yes". Add NCURSES_NO_HARD_TABS
- and NCURSES_NO_MAGIC_COOKIE environment variables to allow runtime
- suppression of the related hard-tabs and xmc-glitch features.
- + add ncurses version number to top-level manpages, e.g., ncurses, tic,
- infocmp, terminfo as well as form, menu, panel.
- + update config.guess, config.sub
- + modify ncurses.c to work around a bug in NetBSD 3.0 curses
- (field_buffer returning null for a valid field). The 'r' test
- appears to not work with that configuration since the new_fieldtype()
- function is broken in that implementation.
-
-20060506
- + add hpterm-color terminfo entry -TD
- + fixes to compile test-programs with HPUX 11.23
-
-20060422
- + add copyright notices to files other than those that are generated,
- data or adapted from pdcurses (reports by William McBrine, David
- Taylor).
- + improve rendering on hpterm by not resetting attributes at the end
- of doupdate() if the terminal has the magic-cookie feature (report
- by Bernd Rieke).
- + add 256color variants of terminfo entries for programs which are
- reported to implement this feature -TD
-
-20060416
- + fix typo in change to NewChar() macro from 20060311 changes, which
- broke tab-expansion (report by Frederic L W Meunier).
-
-20060415
- + document -U option of tic and infocmp.
- + modify tic/infocmp to suppress smacs/rmacs when acsc is suppressed
- due to size limit, e.g., converting to termcap format. Also
- suppress them if the output format does not contain acsc and it
- was not VT100-like, i.e., a one-one mapping (Novell #163715).
- + add configure check to ensure that SIGWINCH is defined on platforms
- such as OS X which exclude that when _XOPEN_SOURCE, etc., are
- defined (report by Nicholas Cole)
-
-20060408
- + modify write_object() to not write coincidental extensions of an
- entry made due to it being referenced in a use= clause (report by
- Alain Bench).
- + another fix for infocmp -i option, which did not ensure that some
- escape sequences had comparable prefixes (report by Alain Bench).
-
-20060401
- + improve discussion of init/reset in terminfo and tput manpages
- (report by Alain Bench).
- + use is3 string for a fallback of rs3 in the reset program; it was
- using is2 (report by Alain Bench).
- + correct logic for infocmp -i option, which did not account for
- multiple digits in a parameter (cf: 20040828) (report by Alain
- Bench).
- + move _nc_handle_sigwinch() to lib_setup.c to make --with-termlib
- option work after 20060114 changes (report by Arkadiusz Miskiewicz).
- + add copyright notices to test-programs as needed (report by William
- McBrine).
-
-20060318
- + modify ncurses.c 'F' test to combine the wide-characters with color
- and/or video attributes.
- + modify test/ncurses to use CTL/Q or ESC consistently for exiting
- a test-screen (some commands used 'x' or 'q').
-
-20060312
- + fix an off-by-one in the scrolling-region change (cf_ 20060311).
-
-20060311
- + add checks in waddchnstr() and wadd_wchnstr() to stop copying when
- a null character is found (report by Igor Bogomazov).
- + modify progs/Makefile.in to make "tput init" work properly with
- cygwin, i.e., do not pass a ".exe" in the reference string used
- in check_aliases (report by Samuel Thibault).
- + add some checks to ensure current position is within scrolling
- region before scrolling on a new line (report by Dan Gookin).
- + change some NewChar() usage to static variables to work around
- stack garbage introduced when cchar_t is not packed (Redhat #182024).
-
-20060225
- + workarounds to build test/movewindow with PDcurses 2.7.
- + fix for nsterm-16color entry (patch by Alain Bench).
- + correct a typo in infocmp manpage (Debian #354281).
-
-20060218
- + add nsterm-16color entry -TD
- + updated mlterm terminfo entry -TD
- + remove 970913 feature for copying subwindows as they are moved in
- mvwin() (discussion with Bryan Christ).
- + modify test/demo_menus.c to demonstrate moving a menu (both the
- window and subwindow) using shifted cursor-keys.
- + start implementing recursive mvwin() in movewindow.c (incomplete).
- + add a fallback definition for GCC_PRINTFLIKE() in test.priv.h,
- for movewindow.c (report by William McBrine).
- + add help-message to test/movewindow.c
-
-20060211
- + add test/movewindow.c, to test mvderwin().
- + fix ncurses soft-key test so color changes are shown immediately
- rather than delayed.
- + modify ncurses soft-key test to hide the keys when exiting the test
- screen.
- + fixes to build test programs with PDCurses 2.7, e.g., its headers
- rely on autoconf symbols, and it declares stubs for nonfunctional
- terminfo and termcap entrypoints.
-
-20060204
- + improved test/configure to build test/ncurses on HPUX 11 using the
- vendor curses.
- + documented ALTERNATE CONFIGURATIONS in the ncurses manpage, for the
- benefit of developers who do not read INSTALL.
-
-20060128
- + correct form library Window_To_Buffer() change (cf: 20040516), which
- should ignore the video attributes (report by Ricardo Cantu).
-
-20060121
- + minor fixes to xmc-glitch experimental code:
- + suppress line-drawing
- + implement max_attributes
- tested with xterm.
- + minor fixes for the database iterator.
- + fix some buffer limits in c++ demo (comment by Falk Hueffner in
- Debian #348117).
-
-20060114
- + add toe -a option, to show all databases. This uses new private
- interfaces in the ncurses library for iterating through the list of
- databases.
- + fix toe from 20000909 changes which made it not look at
- $HOME/.terminfo
- + make toe's -v option parameter optional as per manpage.
- + improve SIGWINCH handling by postponing its effect during newterm(),
- etc., when allocating screens.
-
-20060111
- + modify wgetnstr() to return KEY_RESIZE if a sigwinch occurs. Use
- this in test/filter.c
- + fix an error in filter() modification which caused some applications
- to fail.
-
-20060107
- + check if filter() was called when getting the screensize. Keep it
- at 1 if so (based on Redhat #174498).
- + add extension nofilter().
- + refined the workaround for ACS mapping.
- + make ifdef's consistent in curses.h for the extended colors so the
- header file can be used for the normal curses library. The header
- file installed for extended colors is a variation of the
- wide-character configuration (report by Frederic L W Meunier).
-
-20051231
- + add a workaround to ACS mapping to allow applications such as
- test/blue.c to use the "PC ROM" characters by masking them with
- A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
- of legacy coding (report by Michael Deutschmann).
- + add a null-pointer check in the wide-character version of
- calculate_actual_width() (report by Victor Julien).
- + improve test/ncurses 'd' (color-edit) test by allowing the RGB
- values to be set independently (patch by William McBrine).
- + modify test/configure script to allow building test programs with
- PDCurses/X11.
- + modified test programs to allow some to work with NetBSD curses.
- Several do not because NetBSD curses implements a subset of X/Open
- curses, and also lacks much of SVr4 additions. But it's enough for
- comparison.
- + update config.guess and config.sub
-
-20051224
- + use BSD-specific fix for return-value from cgetent() from CVS where
- an unknown terminal type would be reportd as "database not found".
- + make tgetent() return code more readable using new symbols
- TGETENT_YES, etc.
- + remove references to non-existent "tctest" program.
- + remove TESTPROGS from progs/Makefile.in (it was referring to code
- that was never built in that directory).
- + typos in curs_addchstr.3x, some doc files (noticed in OpenBSD CVS).
-
-20051217
- + add use_legacy_coding() function to support lynx's font-switching
- feature.
- + fix formatting in curs_termcap.3x (report by Mike Frysinger).
- + modify MKlib_gen.sh to change preprocessor-expanded _Bool back to
- bool.
-
-20051210
- + extend test/ncurses.c 's' (overlay window) test to exercise overlay(),
- overwrite() and copywin() with different combinations of colors and
- attributes (including background color) to make it easy to see the
- effect of the different functions.
- + corrections to menu/m_global.c for wide-characters (report by
- Victor Julien).
-
-20051203
- + add configure option --without-dlsym, allowing developers to
- configure GPM support without using dlsym() (discussion with Michael
- Setzer).
- + fix wins_nwstr(), which did not handle single-column non-8bit codes
- (Debian #341661).
-
-20051126
- + move prototypes for wide-character trace functions from curses.tail
- to curses.wide to avoid accidental reference to those if
- _XOPEN_SOURCE_EXTENDED is defined without ensuring that <wchar.h> is
- included.
- + add/use NCURSES_INLINE definition.
- + change some internal functions to use int/unsigned rather than the
- short equivalents.
-
-20051119
- + remove a redundant check in lib_color.c (Debian #335655).
- + use ld's -search_paths_first option on Darwin to work around odd
- search rules on that platform (report by Christian Gennerat, analysis
- by Andrea Govoni).
- + remove special case for Darwin in CF_XOPEN_SOURCE configure macro.
- + ignore EINTR in tcgetattr/tcsetattr calls (Debian #339518).
- + fix several bugs in test/bs.c (patch by Stephen Lindholm).
-
-20051112
- + other minor fixes to cygwin based on tack -TD
- + correct smacs in cygwin (Debian #338234, report by Baurzhan
- Ismagulov, who noted that it was fixed in Cygwin).
-
-20051029
- + add shifted up/down arrow codes to xterm-new as kind/kri strings -TD
- + modify wbkgrnd() to avoid clearing the A_CHARTEXT attribute bits
- since those record the state of multicolumn characters (Debian
- #316663).
- + modify werase to clear multicolumn characters that extend into
- a derived window (Debian #316663).
-
-20051022
- + move assignment from environment variable ESCDELAY from initscr()
- down to newterm() so the environment variable affects timeouts for
- terminals opened with newterm() as well.
- + fix a memory leak in keyname().
- + add test/demo_altkeys.c
- + modify test/demo_defkey.c to exit from loop via 'q' to allow
- leak-checking, as well as fix a buffer size in winnstr() call.
-
-20051015
- + correct order of use-clauses in rxvt-basic entry which made codes for
- f1-f4 vt100-style rather than vt220-style (report by Gabor Z Papp).
- + suppress configure check for gnatmake if Ada95/Makefile.in is not
- found.
- + correct a typo in configure --with-bool option for the case where
- --without-cxx is used (report by Daniel Jacobowitz).
- + add a note to INSTALL's discussion of --with-normal, pointing out
- that one may wish to use --without-gpm to ensure a completely
- static link (prompted by report by Felix von Leitner).
-
-20051010 5.5 release for upload to ftp.gnu.org
-
-20051008
- + document in demo_forms.c some portability issues.
-
-20051001
- + document side-effect of werase() which sets the cursor position.
- + save/restore the current position in form field editing to make
- overlay mode work.
-
-20050924
- + correct header dependencies in progs, allowing parallel make (report
- by Daniel Jacobowitz).
- + modify CF_BUILD_CC to ensure that pre-setting $BUILD_CC overrides
- the configure check for --with-build-cc (report by Daniel Jacobowitz).
- + modify CF_CFG_DEFAULTS to not use /usr as the default prefix for
- NetBSD.
- + update config.guess and config.sub from
- http://subversions.gnu.org/cgi-bin/viewcvs/config/config/
-
-20050917
- + modify sed expression which computes path for /usr/lib/terminfo
- symbolic link in install to ensure that it does not change unexpected
- levels of the path (Gentoo #42336).
- + modify default for --disable-lp64 configure option to reduce impact
- on existing 64-bit builds. Enabling the _LP64 option may change the
- size of chtype and mmask_t. However, for ABI 6, it is enabled by
- default (report by Mike Frysinger).
- + add configure script check for --enable-ext-mouse, bump ABI to 6 by
- default if it is used.
- + improve configure script logic for bumping ABI to omit this if the
- --with-abi-version option was used.
- + update address for Free Software Foundation in tack's source.
- + correct wins_wch(), which was not marking the filler-cells of
- multi-column characters (cf: 20041023).
-
-20050910
- + modify mouse initialization to ensure that Gpm_Open() is called only
- once. Otherwise GPM gets confused in its initialization of signal
- handlers (Debian #326709).
-
-20050903
- + modify logic for backspacing in a multiline form field to ensure that
- it works even when the preceding line is full (report by Frank van
- Vugt).
- + remove comment about BUGS section of ncurses manpage (Debian #325481)
-
-20050827
- + document some workarounds for shared and libtool library
- configurations in INSTALL (see --with-shared and --with-libtool).
- + modify CF_GCC_VERSION and CF_GXX_VERSION macros to accommodate
- cross-compilers which emit the platform name in their version
- message, e.g.,
- arm-sa1100-linux-gnu-g++ (GCC) 4.0.1
- (report by Frank van Vugt).
-
-20050820
- + start updating documentation for upcoming 5.5 release.
- + fix to make libtool and libtinfo work together again (cf: 20050122).
- + fixes to allow building traces into libtinfo
- + add debug trace to tic that shows if/how ncurses will write to the
- lower corner of a terminal's screen.
- + update llib-l* files.
-
-20050813
- + modify initializers in c++ binding to build with old versions of g++.
- + improve special case for 20050115 repainting fix, ensuring that if
- the first changed cell is not a character that the range to be
- repainted is adjusted to start at a character's beginning (Debian
- #316663).
-
-20050806
- + fixes to build on QNX 6.1
- + improve configure script checks for Intel 9.0 compiler.
- + remove #include's for libc.h (obsolete).
- + adjust ifdef's in curses.priv.h so that when cross-compiling to
- produce comp_hash and make_keys, no dependency on wchar.h is needed.
- That simplifies the build-cppflags (report by Frank van Vugt).
- + move modules related to key-binding into libtinfo to fix linkage
- problem caused by 20050430 changes to MKkeyname.sh (report by
- Konstantin Andreev).
-
-20050723
- + updates/fixes for configure script macros from vile -TD
- + make prism9's sgr string agree with the rest of the terminfo -TD
- + make vt220's sgr0 string consistent with sgr string, do this for
- several related cases -TD
- + improve translation to termcap by filtering the 'me' (sgr0) strings
- as in the runtime call to tgetent() (prompted by a discussion with
- Thomas Klausner).
- + improve tic check for sgr0 versus sgr(0), to help ensure that sgr0
- resets line-drawing.
-
-20050716
- + fix special cases for trimming sgr0 for hurd and vt220 (Debian
- #318621).
- + split-out _nc_trim_sgr0() from modifications made to tgetent(), to
- allow it to be used by tic to provide information about the runtime
- changes that would be made to sgr0 for termcap applications.
- + modify make_sed.sh to make the group-name in the NAME section of
- form/menu library manpage agree with the TITLE string when renaming
- is done for Debian (Debian #78866).
-
-20050702
- + modify parameter type in c++ binding for insch() and mvwinsch() to
- be consistent with underlying ncurses library (was char, is chtype).
- + modify treatment of Intel compiler to allow _GNU_SOURCE to be defined
- on Linux.
- + improve configure check for nanosleep(), checking that it works since
- some older systems such as AIX 4.3 have a nonworking version.
-
-20050625
- + update config.guess and config.sub from
- http://subversions.gnu.org/cgi-bin/viewcvs/config/config/
- + modify misc/shlib to work in test-directory.
- + suppress $suffix in misc/run_tic.sh when cross-compiling. This
- allows cross-compiles to use the host's tic program to handle the
- "make install.data" step.
- + improve description of $LINES and $COLUMNS variables in manpages
- (prompted by report by Dave Ulrick).
- + improve description of cross-compiling in INSTALL
- + add NCURSES-Programming-HOWTO.html by Pradeep Padala
- (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
- + modify configure script to obtain soname for GPM library (discussion
- with Daniel Jacobowitz).
- + modify configure script so that --with-chtype option will still
- compute the unsigned literals suffix for constants in curses.h
- (report by Daniel Jacobowitz:
- + patches from Daniel Jacobowitz:
- + the man_db.renames entry for tack.1 was backwards.
- + tack.1 had some 1m's that should have been 1M's.
- + the section for curs_inwstr.3 was wrong.
-
-20050619
- + correction to --with-chtype option (report by Daniel Jacobowitz).
-
-20050618
- + move build-time edit_man.sh and edit_man.sed scripts to top directory
- to simplify reusing them for renaming tack's manpage (prompted by a
- review of Debian package).
- + revert minor optimization from 20041030 (Debian #313609).
- + libtool-specific fixes, tested with libtool 1.4.3, 1.5.0, 1.5.6,
- 1.5.10 and 1.5.18 (all work except as noted previously for the c++
- install using libtool 1.5.0):
- + modify the clean-rule in c++/Makefile.in to work with IRIX64 make
- program.
- + use $(LIBTOOL_UNINSTALL) symbol, overlooked in 20030830
- + add configure options --with-chtype and --with-mmask-t, to allow
- overriding of the non-LP64 model's use of the corresponding types.
- + revise test for size of chtype (and mmask_t), which always returned
- "long" due to an uninitialized variable (report by Daniel Jacobowitz).
-
-20050611
- + change _tracef's that used "%p" format for va_list values to ignore
- that, since on some platforms those are not pointers.
- + fixes for long-formats in printf's due to largefile support.
-
-20050604
- + fixes for termcap support:
- + reset pointer to _nc_curr_token.tk_name when the input stream is
- closed, which could point to free memory (cf: 20030215).
- + delink TERMTYPE data which is used by the termcap reader, so that
- extended names data will be freed consistently.
- + free pointer to TERMTYPE data in _nc_free_termtype() rather than
- its callers.
- + add some entrypoints for freeing permanently allocated data via
- _nc_freeall() when NO_LEAKS is defined.
- + amend 20041030 change to _nc_do_color to ensure that optimization is
- applied only when the terminal supports back_color_erase (bce).
-
-20050528
- + add sun-color terminfo entry -TD
- + correct a missing assignment in c++ binding's method
- NCursesPanel::UserPointer() from 20050409 changes.
- + improve configure check for large-files, adding check for dirent64
- from vile -TD
- + minor change to configure script to improve linker options for the
- Ada95 tree.
-
-20050515
- + document error conditions for ncurses library functions (report by
- Stanislav Ievlev).
- + regenerated html documentation for ada binding.
- see ftp://invisible-island.net/ncurses/patches/gnathtml
-
-20050507
- + regenerated html documentation for manpages.
- + add $(BUILD_EXEEXT) suffix to invocation of make_keys in
- ncurses/Makefile (Gentoo #89772).
- + modify c++/demo.cc to build with g++ -fno-implicit-templates option
- (patch by Mike Frysinger).
- + modify tic to filter out long extended names when translating to
- termcap format. Only two characters are permissible for termcap
- capability names.
-
-20050430
- + modify terminfo entries xterm-new and rxvt to add strings for
- shift-, control-cursor keys.
- + workaround to allow c++ binding to compile with g++ 2.95.3, which
- has a broken implementation of static_cast<> (patch by Jeff Chua).
- + modify initialization of key lookup table so that if an extended
- capability (tic -x) string is defined, and its name begins with 'k',
- it will automatically be treated as a key.
- + modify test/keynames.c to allow for the possibility of extended
- key names, e.g., via define_key(), or via "tic -x".
- + add test/demo_termcap.c to show the contents of given entry via the
- termcap interface.
-
-20050423
- + minor fixes for vt100/vt52 entries -TD
- + add configure option --enable-largefile
- + corrected libraries used to build Ada95/gen/gen, found in testing
- gcc 4.0.0.
-
-20050416
- + update config.guess, config.sub
- + modify configure script check for _XOPEN_SOURCE, disable that on
- Darwin whose header files have problems (patch by Chris Zubrzycki).
- + modify form library Is_Printable_String() to use iswprint() rather
- than wcwidth() for determining if a character is printable. The
- latter caused it to reject menu items containing non-spacing
- characters.
- + modify ncurses test program's F-test to handle non-spacing characters
- by combining them with a reverse-video blank.
- + review/fix several gcc -Wconversion warnings.
-
-20050409
- + correct an off-by-one error in m_driver() for mouse-clicks used to
- position the mouse to a particular item.
- + implement test/demo_menus.c
- + add some checks in lib_mouse to ensure SP is set.
- + modify C++ binding to make 20050403 changes work with the configure
- --enable-const option.
-
-20050403
- + modify start_color() to return ERR if it cannot allocate memory.
- + address g++ compiler warnings in C++ binding by adding explicit
- member initialization, assignment operators and copy constructors.
- Most of the changes simply preserve the existing semantics of the
- binding, which can leak memory, etc., but by making these features
- visible, it provides a framework for improving the binding.
- + improve C++ binding using static_cast, etc.
- + modify configure script --enable-warnings to add options to g++ to
- correspond to the gcc --enable-warnings.
- + modify C++ binding to use some C internal functions to make it
- compile properly on Solaris (and other platforms).
-
-20050327
- + amend change from 20050320 to limit it to configurations with a
- valid locale.
- + fix a bug introduced in 20050320 which broke the translation of
- nonprinting characters to uparrow form (report by Takahashi Tamotsu).
-
-20050326
- + add ifdef's for _LP64 in curses.h to avoid using wasteful 64-bits for
- chtype and mmask_t, but add configure option --disable-lp64 in case
- anyone used that configuration.
- + update misc/shlib script to account for Mac OS X (report by Michail
- Vidiassov).
- + correct comparison for wrapping multibyte characters in
- waddch_literal() (report by Takahashi Tamotsu).
-
-20050320
- + add -c and -w options to tset to allow user to suppress ncurses'
- resizing of the terminal emulator window in the special case where it
- is not able to detect the true size (report by Win Delvaux, Debian
- #300419).
- + modify waddch_nosync() to account for locale zn_CH.GBK, which uses
- codes 128-159 as part of multibyte characters (report by Wang
- WenRui, Debian #300512).
-
-20050319
- + modify ncurses.c 'd' test to make it work with 88-color
- configuration, i.e., by implementing scrolling.
- + improve scrolling in ncurses.c 'c' and 'C' tests, e.g., for 88-color
- configuration.
-
-20050312
- + change tracemunch to use strict checking.
- + modify ncurses.c 'p' test to test line-drawing within a pad.
- + implement environment variable NCURSES_NO_UTF8_ACS to support
- miscellaneous terminal emulators which ignore alternate character
- set escape sequences when in UTF-8 mode.
-
-20050305
- + change NCursesWindow::err_handler() to a virtual function (request by
- Steve Beal).
- + modify fty_int.c and fty_num.c to handle wide characters (report by
- Wolfgang Gutjahr).
- + adapt fix for fty_alpha.c to fty_alnum.c, which also handled normal
- and wide characters inconsistently (report by Wolfgang Gutjahr).
- + update llib-* files to reflect internal interface additions/changes.
-
-20050226
- + improve test/configure script, adding tests for _XOPEN_SOURCE, etc.,
- from lynx.
- + add aixterm-16color terminfo entry -TD
- + modified xterm-new terminfo entry to work with tgetent() changes -TD
- + extended changes in tgetent() from 20040710 to allow the substring of
- sgr0 which matches rmacs to be at the beginning of the sgr0 string
- (request by Thomas Wolff). Wolff says the visual effect in
- combination with pre-20040710 ncurses is improved.
- + fix off-by-one in winnstr() call which caused form field validation
- of multibyte characters to ignore the last character in a field.
- + correct logic in winsch() for inserting multibyte strings; the code
- would clear cells after the insertion rather than push them to the
- right (cf: 20040228).
- + fix an inconsistency in Check_Alpha_Field() between normal and wide
- character logic (report by Wolfgang Gutjahr).
-
-20050219
- + fix a bug in editing wide-characters in form library: deleting a
- nonwide character modified the previous wide-character.
- + update manpage to describe NCURSES_MOUSE_VERSION 2.
- + correct manpage description of mouseinterval() (Debian #280687).
- + add a note to default_colors.3x explaining why this extension was
- added (Debian #295083).
- + add traces to panel library.
-
-20050212
- + improve editing of wide-characters in form library: left/right
- cursor movement, and single-character deletions work properly.
- + disable GPM mouse support when $TERM happens to be prefixed with
- "xterm". Gpm_Open() would otherwise assert that it can deal with
- mouse events in this case.
- + modify GPM mouse support so it closes the server connection when
- the caller disables the mouse (report by Stanislav Ievlev).
-
-20050205
- + add traces for callback functions in form library.
- + add experimental configure option --enable-ext-mouse, which defines
- NCURSES_MOUSE_VERSION 2, and modifies the encoding of mouse events to
- support wheel mice, which may transmit buttons 4 and 5. This works
- with xterm and similar X terminal emulators (prompted by question by
- Andreas Henningsson, this is also related to Debian #230990).
- + improve configure macros CF_XOPEN_SOURCE and CF_POSIX_C_SOURCE to
- avoid redefinition warnings on cygwin.
-
-20050129
- + merge remaining development changes for extended colors (mostly
- complete, does not appear to break other configurations).
- + add xterm-88color.dat (part of extended colors testing).
- + improve _tracedump() handling of color pairs past 96.
- + modify return-value from start_color() to return OK if colors have
- already been started.
- + modify curs_color.3x list error conditions for init_pair(),
- pair_content() and color_content().
- + modify pair_content() to return -1 for consistency with init_pair()
- if it corresponds to the default-color.
- + change internal representation of default-color to allow application
- to use color number 255. This does not affect the total number of
- color pairs which are allowed.
- + add a top-level tags rule.
-
-20050122
- + add a null-pointer check in wgetch() in case it is called without
- first calling initscr().
- + add some null-pointer checks for SP, which is not set by libtinfo.
- + modify misc/shlib to ensure that absolute pathnames are used.
- + modify test/Makefile.in, etc., to link test programs only against the
- libraries needed, e.g., omit form/menu/panel library for the ones
- that are curses-specific.
- + change SP->_current_attr to a pointer, adjust ifdef's to ensure that
- libtinfo.so and libtinfow.so have the same ABI. The reason for this
- is that the corresponding data which belongs to the upper-level
- ncurses library has a different size in each model (report by
- Stanislav Ievlev).
-
-20050115
- + minor fixes to allow test-compiles with g++.
- + correct column value shown in tic's warnings, which did not account
- for leading whitespace.
- + add a check in _nc_trans_string() for improperly ended strings, i.e.,
- where a following line begins in column 1.
- + modify _nc_save_str() to return a null pointer on buffer overflow.
- + improve repainting while scrolling wide-character data (Eungkyu Song).
-
-20050108
- + merge some development changes to extend color capabilities.
-
-20050101
- + merge some development changes to extend color capabilities.
- + fix manpage typo (FreeBSD report docs/75544).
- + update config.guess, config.sub
- > patches for configure script (Albert Chin-A-Young):
- + improved fix to make mbstate_t recognized on HPUX 11i (cf:
- 20030705), making vsscanf() prototype visible on IRIX64. Tested for
- on HP-UX 11i, Solaris 7, 8, 9, AIX 4.3.3, 5.2, Tru64 UNIX 4.0D, 5.1,
- IRIX64 6.5, Redhat Linux 7.1, 9, and RHEL 2.1, 3.0.
- + print the result of the --disable-home-terminfo option.
- + use -rpath when compiling with SGI C compiler.
-
-20041225
- + add trace calls to remaining public functions in form and menu
- libraries.
- + fix check for numeric digits in test/ncurses.c 'b' and 'B' tests.
- + fix typo in test/ncurses.c 'c' test from 20041218.
-
-20041218
- + revise test/ncurses.c 'c' color test to improve use for xterm-88color
- and xterm-256color, added 'C' test using the wide-character color_set
- and attr_set functions.
-
-20041211
- + modify configure script to work with Intel compiler.
- + fix an limit-check in wadd_wchnstr() which caused labels in the
- forms-demo to be one character short.
- + fix typo in curs_addchstr.3x (Jared Yanovich).
- + add trace calls to most functions in form and menu libraries.
- + update working-position for adding wide-characters when window is
- scrolled (prompted by related report by Eungkyu Song).
-
-20041204
- + replace some references on Linux to wcrtomb() which use it to obtain
- the length of a multibyte string with _nc_wcrtomb, since wcrtomb() is
- broken in glibc (see Debian #284260).
- + corrected length-computation in wide-character support for
- field_buffer().
- + some fixes to frm_driver.c to allow it to accept multibyte input.
- + modify configure script to work with Intel 8.0 compiler.
-
-20041127
- + amend change to setupterm() in 20030405 which would reuse the value
- of cur_term if the same output was selected. This now reuses it only
- when setupterm() is called from tgetent(), which has no notion of
- separate SCREENs. Note that tgetent() must be called after initscr()
- or newterm() to use this feature (Redhat Bugzilla #140326).
- + add a check in CF_BUILD_CC macro to ensure that developer has given
- the --with-build-cc option when cross-compiling (report by Alexandre
- Campo).
- + improved configure script checks for _XOPEN_SOURCE and
- _POSIX_C_SOURCE (fix for IRIX 5.3 from Georg Schwarz, _POSIX_C_SOURCE
- updates from lynx).
- + cosmetic fix to test/gdc.c to recolor the bottom edge of the box
- for consistency (comment by Dan Nelson).
-
-20041120
- + update wsvt25 terminfo entry -TD
- + modify test/ins_wide.c to test all flavors of ins_wstr().
- + ignore filler-cells in wadd_wchnstr() when adding a cchar_t array
- which consists of multi-column characters, since this function
- constructs them (cf: 20041023).
- + modify winnstr() to return multibyte character strings for the
- wide-character configuration.
-
-20041106
- + fixes to make slk_set() and slk_wset() accept and store multibyte
- or multicolumn characters.
-
-20041030
- + improve color optimization a little by making _nc_do_color() check
- if the old/new pairs are equivalent to the default pair 0.
- + modify assume_default_colors() to not require that
- use_default_colors() be called first.
-
-20041023
- + modify term_attrs() to use termattrs(), add the extended attributes
- such as enter_horizontal_hl_mode for WA_HORIZONTAL to term_attrs().
- + add logic in waddch_literal() to clear orphaned cells when one
- multi-column character partly overwrites another.
- + improved logic for clearing cells when a multi-column character
- must be wrapped to a new line.
- + revise storage of cells for multi-column characters to correct a
- problem with repainting. In the old scheme, it was possible for
- doupdate() to decide that only part of a multi-column character
- should be repainted since the filler cells stored only an attribute
- to denote them as fillers, rather than the character value and the
- attribute.
-
-20041016
- + minor fixes for traces.
- + add SP->_screen_acs_map[], used to ensure that mapping of missing
- line-drawing characters is handled properly. For example, ACS_DARROW
- is absent from xterm-new, and it was coincidentally displayed the
- same as ACS_BTEE.
-
-20041009
- + amend 20021221 workaround for broken acs to reset the sgr, rmacs
- and smacs strings as well. Also modify the check for screen's
- limitations in that area to allow the multi-character shift-in
- and shift-out which seem to work.
- + change GPM initialization, using dl library to load it dynamically
- at runtime (Debian #110586).
-
-20041002
- + correct logic for color pair in setcchar() and getcchar() (patch by
- Marcin 'Qrczak' Kowalczyk).
- + add t/T commands to ncurses b/B tests to allow a different color to
- be tested for the attrset part of the test than is used in the
- background color.
-
-20040925
- + fix to make setcchar() to work when its wchar_t* parameter is
- pointing to a string which contains more data than can be converted.
- + modify wget_wstr() and example in ncurses.c to work if wchar_t and
- wint_t are different sizes (report by Marcin 'Qrczak' Kowalczyk).
-
-20040918
- + remove check in wget_wch() added to fix an infinite loop, appears to
- have been working around a transitory glibc bug, and interferes
- with normal operation (report by Marcin 'Qrczak' Kowalczyk).
- + correct wadd_wch() and wecho_wch(), which did not pass the rendition
- information (report by Marcin 'Qrczak' Kowalczyk).
- + fix aclocal.m4 so that the wide-character version of ncurses gets
- compiled as libncursesw.5.dylib, instead of libncurses.5w.dylib
- (adapted from patch by James J Ramsey).
- + change configure script for --with-caps option to indicate that it
- is no longer experimental.
- + change configure script to reflect the fact that --enable-widec has
- not been "experimental" since 5.3 (report by Bruno Lustosa).
-
-20040911
- + add 'B' test to ncurses.c, to exercise some wide-character functions.
-
-20040828
- + modify infocmp -i option to match 8-bit controls against its table
- entries, e.g., so it can analyze the xterm-8bit entry.
- + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin).
- + correct translation of "%%" in terminfo format to termcap, e.g.,
- using "tic -C" (Redhat Bugzilla #130921).
- + modified configure script CF_XOPEN_SOURCE macro to ensure that if
- it defines _POSIX_C_SOURCE, that it defines it to a specific value
- (comp.os.stratus newsgroup comment).
-
-20040821
- + fixes to build with Ada95 binding with gnat 3.4 (all warnings are
- fatal, and gnat does not follow the guidelines for pragmas).
- However that did find a coding error in Assume_Default_Colors().
- + modify several terminfo entries to ensure xterm mouse and cursor
- visibility are reset in rs2 string: hurd, putty, gnome,
- konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The
- xterm entries are left alone - old ones for compatibility, and the
- new ones do not require this change. -TD
-
-20040814
- + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators
- and window managers (Debian #265631).
- > terminfo updates -TD
- + remove dch/dch1 from rxvt because they are implemented inconsistently
- with the common usage of bce/ech
- + remove khome from vt220 (vt220's have no home key)
- + add rxvt+pcfkeys
-
-20040807
- + modify test/ncurses.c 'b' test, adding v/V toggles to cycle through
- combinations of video attributes so that for instance bold and
- underline can be tested. This made the legend too crowded, added
- a help window as well.
- + modify test/ncurses.c 'b' test to cycle through default colors if
- the -d option is set.
- + update putty terminfo entry (Robert de Bath).
-
-20040731
- + modify test/cardfile.c to allow it to read more data than can be
- displayed.
- + correct logic in resizeterm.c which kept it from processing all
- levels of window hierarchy (reports by Folkert van Heusden,
- Chris Share).
-
-20040724
- + modify "tic -cv" to ignore delays when comparing strings. Also
- modify it to ignore a canceled sgr string, e.g., for terminals which
- cannot properly combine attributes in one control sequence.
- + corrections for gnome and konsole entries (Redhat Bugzilla #122815,
- patch by Hans de Goede)
- > terminfo updates -TD
- + make ncsa-m rmacs/smacs consistent with sgr
- + add sgr, rc/sc and ech to syscons entries
- + add function-keys to decansi
- + add sgr to mterm-ansi
- + add sgr, civis, cnorm to emu
- + correct/simplify cup in addrinfo
-
-20040717
- > terminfo updates -TD
- + add xterm-pc-fkeys
- + review/update gnome and gnome-rh90 entries (prompted by Redhat
- Bugzilla #122815).
- + review/update konsole entries
- + add sgr, correct sgr0 for kterm and mlterm
- + correct tsl string in kterm
-
-20040711
- + add configure option --without-xterm-new
-
-20040710
- + add check in wget_wch() for printable bytes that are not part of a
- multibyte character.
- + modify wadd_wchnstr() to render text using window's background
- attributes.
- + improve tic's check to compare sgr and sgr0.
- + fix c++ directory's .cc.i rule.
- + modify logic in tgetent() which adjusts the termcap "me" string
- to work with ISO-2022 string used in xterm-new (cf: 20010908).
- + modify tic's check for conflicting function keys to omit that if
- converting termcap to termcap format.
- + add -U option to tic and infocmp.
- + add rmam/smam to linux terminfo entry (Trevor Van Bremen)
- > terminfo updates -TD
- + minor fixes for emu
- + add emu-220
- + change wyse acsc strings to use 'i' map rather than 'I'
- + fixes for avatar0
- + fixes for vp3a+
-
-20040703
- + use tic -x to install terminfo database -TD
- + add -x to infocmp's usage message.
- + correct field used for comparing O_ROWMAJOR in set_menu_format()
- (report/patch by Tony Li).
- + fix a missing nul check in set_field_buffer() from 20040508 changes.
- > terminfo updates -TD
- + make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
- xterm-basic -TD
- + align with xterm patch #192's use of xterm-new -TD
- + update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
- + make xterm-new the default "xterm" entry -TD
-
-20040626
- + correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
- cross-compiling from a separate directory tree (report/patch by
- Dan Engel).
- + modify is_term_resized() to ensure that window sizes are nonzero,
- as documented in the manpage (report by Ian Collier).
- + modify CF_XOPEN_SOURCE configure macro to make Hurd port build
- (Debian #249214, report/patch by Jeff Bailey).
- + configure-script mods from xterm, e.g., updates to CF_ADD_CFLAGS
- + update config.guess, config.sub
- > terminfo updates -TD
- + add mlterm
- + add xterm-xf86-v44
- + modify xterm-new aka xterm-xfree86 to accommodate luit, which
- relies on G1 being used via an ISO-2022 escape sequence (report by
- Juliusz Chroboczek)
- + add 'hurd' entry
-
-20040619
- + reconsidered winsnstr(), decided after comparing other
- implementations that wrapping is an X/Open documentation error.
- + modify test/inserts.c to test all flavors of insstr().
-
-20040605
- + add setlocale() calls to a few test programs which may require it:
- demo_forms.c, filter.c, ins_wide.c, inserts.c
- + correct a few misspelled function names in ncurses-intro.html (report
- by Tony Li).
- + correct internal name of key_defined() manpage, which conflicted with
- define_key().
-
-20040529
- + correct size of internal pad used for holding wide-character
- field_buffer() results.
- + modify data_ahead() to work with wide-characters.
-
-20040522
- + improve description of terminfo if-then-else expressions (suggested
- by Arne Thomassen).
- + improve test/ncurses.c 'd' test, allow it to use external file for
- initial palette (added xterm-16color.dat and linux-color.dat), and
- reset colors to the initial palette when starting/ending the test.
- + change limit-check in init_color() to allow r/g/b component to
- reach 1000 (cf: 20020928).
-
-20040516
- + modify form library to use cchar_t's rather than char's in the
- wide-character configuration for storing data for field buffers.
- + correct logic of win_wchnstr(), which did not work for more than
- one cell.
-
-20040508
- + replace memset/memcpy usage in form library with for-loops to
- simplify changing the datatype of FIELD.buf, part of wide-character
- changes.
- + fix some inconsistent use of #if/#ifdef (report by Alain Guibert).
-
-20040501
- + modify menu library to account for actual number of columns used by
- multibyte character strings, in the wide-character configuration
- (adapted from patch by Philipp Tomsich).
- + add "-x" option to infocmp like tic's "-x", for use in "-F"
- comparisons. This modifies infocmp to only report extended
- capabilities if the -x option is given, making this more consistent
- with tic. Some scripts may break, since infocmp previous gave this
- information without an option.
- + modify termcap-parsing to retain 2-character aliases at the beginning
- of an entry if the "-x" option is used in tic.
-
-20040424
- + minor compiler-warning and test-program fixes.
-
-20040417
- + modify tic's missing-sgr warning to apply to terminfo only.
- + free some memory leaks in tic.
- + remove check in post_menu() that prevented menus from extending
- beyond the screen (request by Max J. Werner).
- + remove check in newwin() that prevents allocating windows
- that extend beyond the screen. Solaris curses does this.
- + add ifdef in test/color_set.c to allow it to compile with older
- curses.
- + add napms() calls to test/dots.c to make it not be a CPU hog.
-
-20040403
- + modify unctrl() to return null if its parameter does not correspond
- to an unsigned char.
- + add some limit-checks to guard isprint(), etc., from being used on
- values that do not fit into an unsigned char (report by Sami Farin).
-
-20040328
- + fix a typo in the _nc_get_locale() change.
-
-20040327
- + modify _nc_get_locale() to use setlocale() to query the program's
- current locale rather than using getenv(). This fixes a case in tin
- which relies on legacy treatment of 8-bit characters when the locale
- is not initialized (reported by Urs Jansen).
- + add sgr string to screen's and rxvt's terminfo entries -TD.
- + add a check in tic for terminfo entries having an sgr0 but no sgr
- string. This confuses Tru64 and HPUX curses when combined with
- color, e.g., making them leave line-drawing characters in odd places.
- + correct casts used in ABSENT_BOOLEAN, CANCELLED_BOOLEAN, matches the
- original definitions used in Debian package to fix PowerPC bug before
- 20030802 (Debian #237629).
-
-20040320
- + modify PutAttrChar() and PUTC() macro to improve use of
- A_ALTCHARSET attribute to prevent line-drawing characters from
- being lost in situations where the locale would otherwise treat the
- raw data as nonprintable (Debian #227879).
-
-20040313
- + fix a redefinition of CTRL() macro in test/view.c for AIX 5.2 (report
- by Jim Idle).
- + remove ".PP" after ".SH NAME" in a few manpages; this confuses
- some apropos script (Debian #237831).
-
-20040306
- + modify ncurses.c 'r' test so editing commands, like inserted text,
- set the field background, and the state of insert/overlay editing
- mode is shown in that test.
- + change syntax of dummy targets in Ada95 makefiles to work with pmake.
- + correct logic in test/ncurses.c 'b' for noncolor terminals which
- did not recognize a quit-command (cf: 20030419).
-
-20040228
- + modify _nc_insert_ch() to allow for its input to be part of a
- multibyte string.
- + split out lib_insnstr.c, to prepare to rewrite it. X/Open states
- that this function performs wrapping, unlike all of the other
- insert-functions. Currently it does not wrap.
- + check for nl_langinfo(CODESET), use it if available (report by
- Stanislav Ievlev).
- + split-out CF_BUILD_CC macro, actually did this for lynx first.
- + fixes for configure script CF_WITH_DBMALLOC and CF_WITH_DMALLOC,
- which happened to work with bash, but not with Bourne shell (report
- by Marco d'Itri via tin-dev).
-
-20040221
- + some changes to adapt the form library to wide characters, incomplete
- (request by Mike Aubury).
- + add symbol to curses.h which can be used to suppress include of
- stdbool.h, e.g.,
- #define NCURSES_ENABLE_STDBOOL_H 0
- #include <curses.h>
- (discussion on XFree86 mailing list).
-
-20040214
- + modify configure --with-termlib option to accept a value which sets
- the name of the terminfo library. This would allow a packager to
- build libtinfow.so renamed to coincide with libtinfo.so (discussion
- with Stanislav Ievlev).
- + improve documentation of --with-install-prefix, --prefix and
- $(DESTDIR) in INSTALL (prompted by discussion with Paul Lew).
- + add configure check if the compiler can use -c -o options to rename
- its output file, use that to omit the 'cd' command which was used to
- ensure object files are created in a separate staging directory
- (prompted by comments by Johnny Wezel, Martin Mokrejs).
-
-20040208 5.4 release for upload to ftp.gnu.org
- + update TO-DO.
-
-20040207 pre-release
- + minor fixes to _nc_tparm_analyze(), i.e., do not count %i as a param,
- and do not count %d if it follows a %p.
- + correct an inconsistency between handling of codes in the 128-255
- range, e.g., as illustrated by test/ncurses.c f/F tests. In POSIX
- locale, the latter did not show printable results, while the former
- did.
- + modify MKlib_gen.sh to compensate for broken C preprocessor on Mac
- OS X, which alters "%%" to "% % " (report by Robert Simms, fix
- verified by Scott Corscadden).
-
-20040131 pre-release
- + modify SCREEN struct to align it between normal/wide curses flavors
- to simplify future changes to build a single version of libtinfo
- (patch by Stanislav Ievlev).
- + document handling of carriage return by addch() in manpage.
- + document special features of unctrl() in manpage.
- + documented interface changes in INSTALL.
- + corrected control-char test in lib_addch.c to account for locale
- (Debian #230335, cf: 971206).
- + updated test/configure.in to use AC_EXEEXT and AC_OBJEXT.
- + fixes to compile Ada95 binding with Debian gnat 3.15p-4 package.
- + minor configure-script fixes for older ports, e.g., BeOS R4.5.
-
-20040125 pre-release
- + amend change to PutAttrChar() from 20030614 which computed the number
- of cells for a possibly multi-cell character. The 20030614 change
- forced the cell to a blank if the result from wcwidth() was not
- greater than zero. However, wcwidth() called for parameters in the
- range 128-255 can give this return value. The logic now simply
- ensures that the number of cells is greater than zero without
- modifying the displayed value.
-
-20040124 pre-release
- + looked good for 5.4 release for upload to ftp.gnu.org (but see above)
- + modify configure script check for ranlib to use AC_CHECK_TOOL, since
- that works better for cross-compiling.
-
-20040117 pre-release
- + modify lib_get_wch.c to prefer mblen/mbtowc over mbrlen/mbrtowc to
- work around core dump in Solaris 8's locale support, e.g., for
- zh_CN.GB18030 (report by Saravanan Bellan).
- + add includes for <stdarg.h> and <stdio.h> in configure script macro
- to make <wchar.h> check work with Tru64 4.0d.
- + add terminfo entry for U/Win -TD
- + add terminfo entries for SFU aka Interix aka OpenNT (Federico
- Bianchi).
- + modify tput's error messages to prefix them with the program name
- (report by Vincent Lefevre, patch by Daniel Jacobowitz (see Debian
- #227586)).
- + correct a place in tack where exit_standout_mode was used instead of
- exit_attribute_mode (patch by Jochen Voss (see Debian #224443)).
- + modify c++/cursesf.h to use const in the Enumeration_Field method.
- + remove an ambiguous (actually redundant) method from c++/cursesf.h
- + make $HOME/.terminfo update optional (suggested by Stanislav Ievlev).
- + improve sed script which extracts libtool's version in the
- CF_WITH_LIBTOOL macro.
- + add ifdef'd call to AC_PROG_LIBTOOL to CF_WITH_LIBTOOL macro (to
- simplify local patch for Albert Chin-A-Young)..
- + add $(CXXFLAGS) to link command in c++/Makefile.in (adapted from
- patch by Albert Chin-A-Young)..
- + fix a missing substitution in configure.in for "$target" needed for
- HPUX .so/.sl case.
- + resync CF_XOPEN_SOURCE configure macro with lynx; fixes IRIX64 and
- NetBSD 1.6 conflicts with _XOPEN_SOURCE.
- + make check for stdbool.h more specific, to ensure that including it
- will actually define/declare bool for the configured compiler.
- + rewrite ifdef's in curses.h relating NCURSES_BOOL and bool. The
- intention of that is to #define NCURSES_BOOL as bool when the
- compiler declares bool, and to #define bool as NCURSES_BOOL when it
- does not (reported by Jim Gifford, Sam Varshavchik, cf: 20031213).
-
-20040110 pre-release
- + change minor version to 4, i.e., ncurses 5.4
- + revised/improved terminfo entries for tvi912b, tvi920b (Benjamin C W
- Sittler).
- + simplified ncurses/base/version.c by defining the result from the
- configure script rather than using sprintf (suggested by Stanislav
- Ievlev).
- + remove obsolete casts from c++/cursesw.h (reported by Stanislav
- Ievlev).
- + modify configure script so that when configuring for termlib, programs
- such as tic are not linked with the upper-level ncurses library
- (suggested by Stanislav Ievlev).
- + move version.c from ncurses/base to ncurses/tinfo to allow linking
- of tic, etc., using libtinfo (suggested by Stanislav Ievlev).
-
-20040103
- + adjust -D's to build ncursesw on OpenBSD.
- + modify CF_PROG_EXT to make OS/2 build with EXEEXT.
- + add pecho_wchar().
- + remove <wctype.h> include from lib_slk_wset.c which is not needed (or
- available) on older platforms.
-
-20031227
- + add -D's to build ncursew on FreeBSD 5.1.
- + modify shared library configuration for FreeBSD 4.x/5.x to add the
- soname information (request by Marc Glisse).
- + modify _nc_read_tic_entry() to not use MAX_ALIAS, but PATH_MAX only
- for limiting the length of a filename in the terminfo database.
- + modify termname() to return the terminal name used by setupterm()
- rather than $TERM, without truncating to 14 characters as documented
- by X/Open (report by Stanislav Ievlev, cf: 970719).
- + re-add definition for _BSD_TYPES, lost in merge (cf: 20031206).
-
-20031220
- + add configure option --with-manpage-format=catonly to address
- behavior of BSDI, allow install of man+cat files on NetBSD, whose
- behavior has diverged by requiring both to be present.
- + remove leading blanks from comment-lines in manlinks.sed script to
- work with Tru64 4.0d.
- + add screen.linux terminfo entry (discussion on mutt-users mailing
- list).
-
-20031213
- + add a check for tic to flag missing backslashes for termcap
- continuation lines. ncurses reads the whole entry, but termcap
- applications do not.
- + add configure option "--with-manpage-aliases" extending
- "--with-manpage-aliases" to provide the option of generating ".so"
- files rather than symbolic links for manpage aliases.
- + add bool definition in include/curses.h.in for configurations with no
- usable C++ compiler (cf: 20030607).
- + fix pathname of SigAction.h for building with --srcdir (reported by
- Mike Castle).
-
-20031206
- + folded ncurses/base/sigaction.c into includes of ncurses/SigAction.h,
- since that header is used only within ncurses/tty/lib_tstp.c, for
- non-POSIX systems (discussion with Stanislav Ievlev).
- + remove obsolete _nc_outstr() function (report by Stanislav Ievlev
- <inger@altlinux.org>).
- + add test/background.c and test/color_set.c
- + modify color_set() function to work with color pair 0 (report by
- George Andreou <gbandreo@tem.uoc.gr>).
- + add configure option --with-trace, since defining TRACE seems too
- awkward for some cases.
- + remove a call to _nc_free_termtype() from read_termtype(), since the
- corresponding buffer contents were already zeroed by a memset (cf:
- 20000101).
- + improve configure check for _XOPEN_SOURCE and related definitions,
- adding special cases for Solaris' __EXTENSIONS__ and FreeBSD's
- __BSD_TYPES (reports by Marc Glisse <marc.glisse@normalesup.org>).
- + small fixes to compile on Solaris and IRIX64 using cc.
- + correct typo in check for pre-POSIX sort options in MKkey_defs.sh
- (cf: 20031101).
-
-20031129
- + modify _nc_gettime() to avoid a problem with arithmetic on unsigned
- values (Philippe Blain).
- + improve the nanosleep() logic in napms() by checking for EINTR and
- restarting (Philippe Blain).
- + correct expression for "%D" in lib_tgoto.c (Juha Jarvi
- <mooz@welho.com>).
-
-20031122
- + add linux-vt terminfo entry (Andrey V Lukyanov <land@long.yar.ru>).
- + allow "\|" escape in terminfo; tic should not warn about this.
- + save the full pathname of the trace-file the first time it is opened,
- to avoid creating it in different directories if the application
- opens and closes it while changing its working directory.
- + modify configure script to provide a non-empty default for
- $BROKEN_LINKER
-
-20031108
- + add DJGPP to special case of DOS-style drive letters potentially
- appearing in TERMCAP environment variable.
- + fix some spelling in comments (reports by Jason McIntyre, Jonathon
- Gray).
- + update config.guess, config.sub
-
-20031101
- + fix a memory leak in error-return from setupterm() (report by
- Stanislav Ievlev <inger@altlinux.org>).
- + use EXEEXT and OBJEXT consistently in makefiles.
- + amend fixes for cross-compiling to use separate executable-suffix
- BUILD_EXEEXT (cf: 20031018).
- + modify MKkey_defs.sh to check for sort utility that does not
- recognize key options, e.g., busybox (report by Peter S Mazinger
- <ps.m@gmx.net>).
- + fix potential out-of-bounds indexing in _nc_infotocap() (found by
- David Krause using some of the new malloc debugging features
- under OpenBSD, patch by Ted Unangst).
- + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a
- ".so" suffix (patch by Jonathan Ward <Jonathan.Ward@hp.com>).
-
-20031025
- + update terminfo for xterm-xfree86 -TD
- + add check for multiple "tc=" clauses in a termcap to tic.
- + check for missing op/oc in tic.
- + correct _nc_resolve_uses() and _nc_merge_entry() to allow infocmp and
- tic to show cancelled capabilities. These functions were ignoring
- the state of the target entry, which should be untouched if cancelled.
- + correct comment in tack/output.c (Debian #215806).
- + add some null-pointer checks to lib_options.c (report by Michael
- Bienia).
- + regenerated html documentation.
- + correction to tar-copy.sh, remove a trap command that resulted in
- leaving temporary files (cf: 20030510).
- + remove contact/maintainer addresses for Juergen Pfeifer (his request).
-
-20031018
- + updated test/configure to reflect changes for libtool (cf: 20030830).
- + fix several places in tack/pad.c which tested and used the parameter-
- and parameterless strings inconsistently, i.e., in pad_rin(),
- pad_il(), pad_indn() and pad_dl() (Debian #215805).
- + minor fixes for configure script and makefiles to cleanup executables
- generated when cross-compiling for DJGPP.
- + modify infocmp to omit check for $TERM for operations that do not
- require it, e.g., "infocmp -e" used to build fallback list (report by
- Koblinger Egmont).
-
-20031004
- + add terminfo entries for DJGPP.
- + updated note about maintainer in ncurses-intro.html
-
-20030927
- + update terminfo entries for gnome terminal.
- + modify tack to reset colors after each color test, correct a place
- where exit_standout_mode was used instead of exit_attribute_mode.
- + improve tack's bce test by making it set colors other than black
- on white.
- + plug a potential recursion between napms() and _nc_timed_wait()
- (report by Philippe Blain).
-
-20030920
- + add --with-rel-version option to allow workaround to allow making
- libtool on Darwin generate the "same" library names as with the
- --with-shared option. The Darwin ld program does not work well
- with a zero as the minor-version value (request by Chris Zubrzycki).
- + modify CF_MIXEDCASE_FILENAMES macro to work with cross-compiling.
- + modify tack to allow it to run from fallback terminfo data.
- > patch by Philippe Blain:
- + improve PutRange() by adjusting call to EmitRange() and corresponding
- return-value to not emit unchanged characters on the end of the
- range.
- + improve a check for changed-attribute by exiting a loop when the
- change is found.
- + improve logic in TransformLine(), eliminating a duplicated comparison
- in the clr_bol logic.
-
-20030913
- > patch by Philippe Blain:
- + in ncurses/tty/lib_mvcur.c,
- move the label 'nonlocal' just before the second gettimeofday() to
- be able to compute the diff time when 'goto nonlocal' used.
- Rename 'msec' to 'microsec' in the debug-message.
- + in ncurses/tty/lib_mvcur.c,
- Use _nc_outch() in carriage return/newline movement instead of
- putchar() which goes to stdout. Move test for xold>0 out of loop.
- + in ncurses/tinfo/setbuf.c,
- Set the flag SP->_buffered at the end of operations when all has been
- successful (typeMalloc can fail).
- + simplify NC_BUFFERED macro by moving check inside _nc_setbuf().
-
-20030906
- + modify configure script to avoid using "head -1", which does not
- work if POSIXLY_CORRECT (sic) is set.
- + modify run_tic.in to avoid using wrong shared libraries when
- cross-compiling (Dan Kegel).
-
-20030830
- + alter configure script help message to make it clearer that
- --with-build-cc does not specify a cross-compiler (suggested by Dan
- Kegel <dank@kegel.com>).
- + modify configure script to accommodate libtool 1.5, as well as add an
- parameter to the "--with-libtool" option which can specify the
- pathname of libtool (report by Chris Zubrzycki). We note that
- libtool 1.5 has more than one bug in its C++ support, so it is not
- able to install libncurses++, for instance, if $DESTDIR or the option
- --with-install-prefix is used.
-
-20030823
- > patch by Philippe Blain:
- + move assignments to SP->_cursrow, SP->_curscol into online_mvcur().
- + make baudrate computation in delay_output() consistent with the
- assumption in _nc_mvcur_init(), i.e., a byte is 9 bits.
-
-20030816
- + modify logic in waddch_literal() to take into account zh_TW.Big5
- whose multibyte sequences may contain "printable" characters, e.g.,
- a "g" in the sequence "\247g" (Debian #204889, cf: 20030621).
- + improve storage used by _nc_safe_strcpy() by ensuring that the size
- is reset based on the initialization call, in case it were called
- after other strcpy/strcat calls (report by Philippe Blain).
- > patch by Philippe Blain:
- + remove an unused ifdef for REAL_ATTR & WANT_CHAR
- + correct a place where _cup_cost was used rather than _cuu_cost
-
-20030809
- + fix a small memory leak in _nc_free_termtype().
- + close trace-file if trace() is called with a zero parameter.
- + free memory allocated for soft-key strings, in delscreen().
- + fix an allocation size in safe_sprintf.c for the "*" format code.
- + correct safe_sprintf.c to not return a null pointer if the format
- happens to be an empty string. This applies to the "configure
- --enable-safe-sprintf" option (Redhat #101486).
-
-20030802
- + modify casts used for ABSENT_BOOLEAN and CANCELLED_BOOLEAN (report by
- Daniel Jacobowitz).
- > patch by Philippe Blain:
- + change padding for change_scroll_region to not be proportional to
- the size of the scroll-region.
- + correct error-return in _nc_safe_strcat().
-
-20030726
- + correct limit-checks in _nc_scroll_window() (report and test-case by
- Thomas Graf <graf@dms.at> cf: 20011020).
- + re-order configure checks for _XOPEN_SOURCE to avoid conflict with
- _GNU_SOURCE check.
-
-20030719
- + use clr_eol in preference to blanks for bce terminals, so select and
- paste will have fewer trailing blanks, e.g., when using xterm
- (request by Vincent Lefevre).
- + correct prototype for wunctrl() in manpage.
- + add configure --with-abi-version option (discussion with Charles
- Wilson).
- > cygwin changes from Charles Wilson:
- + aclocal.m4: on cygwin, use autodetected prefix for import
- and static lib, but use "cyg" for DLL.
- + include/ncurses_dll.h: correct the comments to reflect current
- status of cygwin/mingw port. Fix compiler warning.
- + misc/run_tic.in: ensure that tic.exe can find the uninstalled
- DLL, by adding the lib-directory to the PATH variable.
- + misc/terminfo.src (nxterm|xterm-color): make xterm-color
- primary instead of nxterm, to match XFree86's xterm.terminfo
- usage and to prevent circular links.
- (rxvt): add additional codes from rxvt.org.
- (rxvt-color): new alias
- (rxvt-xpm): new alias
- (rxvt-cygwin): like rxvt, but with special acsc codes.
- (rxvt-cygwin-native): ditto. rxvt may be run under XWindows, or
- with a "native" MSWin GUI. Each takes different acsc codes,
- which are both different from the "normal" rxvt's acsc.
- (cygwin): cygwin-in-cmd.exe window. Lots of fixes.
- (cygwinDBG): ditto.
- + mk-1st.awk: use "cyg" for the DLL prefix, but "lib" for import
- and static libs.
-
-20030712
- + update config.guess, config.sub
- + add triples for configuring shared libraries with the Debian
- GNU/FreeBSD packages (patch by Robert Millan <zeratul2@wanadoo.es>).
-
-20030705
- + modify CF_GCC_WARNINGS so it only applies to gcc, not g++. Some
- platforms have installed g++ along with the native C compiler, which
- would not accept gcc warning options.
- + add -D_XOPEN_SOURCE=500 when configuring with --enable-widec, to
- get mbstate_t declaration on HPUX 11.11 (report by David Ellement).
- + add _nc_pathlast() to get rid of casts in _nc_basename() calls.
- + correct a sign-extension in wadd_wch() and wecho_wchar() from
- 20030628 (report by Tomohiro Kubota).
- + work around omission of btowc() and wctob() from wide-character
- support (sic) in NetBSD 1.6 using mbtowc() and wctomb() (report by
- Gabor Z Papp).
- + add portability note to curs_get_wstr.3x (Debian #199957).
-
-20030628
- + rewrite wadd_wch() and wecho_wchar() to call waddch() and wechochar()
- respectively, to avoid calling waddch_noecho() with wide-character
- data, since that function assumes its input is 8-bit data.
- Similarly, modify waddnwstr() to call wadd_wch().
- + remove logic from waddnstr() which transformed multibyte character
- strings into wide-characters. Rewrite of waddch_literal() from
- 20030621 assumes its input is raw multibyte data rather than wide
- characters (report by Tomohiro Kubota).
-
-20030621
- + write getyx() and related 2-return macros in terms of getcury(),
- getcurx(), etc.
- + modify waddch_literal() in case an application passes bytes of a
- multibyte character directly to waddch(). In this case, waddch()
- must reassemble the bytes into a wide-character (report by Tomohiro
- Kubota <kubota@debian.org>).
-
-20030614
- + modify waddch_literal() in case a multibyte value occupies more than
- two cells.
- + modify PutAttrChar() to compute the number of character cells that
- are used in multibyte values. This fixes a problem displaying
- double-width characters (report/test by Mitsuru Chinen
- <mchinen@yamato.ibm.com>).
- + add a null-pointer check for result of keyname() in _tracechar()
- + modify _tracechar() to work around glibc sprintf bug.
-
-20030607
- + add a call to setlocale() in cursesmain.cc, making demo display
- properly in a UTF-8 locale.
- + add a fallback definition in curses.priv.h for MB_LEN_MAX (prompted
- by discussion with Gabor Z Papp).
- + use macros NCURSES_ACS() and NCURSES_WACS() to hide cast needed to
- appease -Wchar-subscript with g++ 3.3 (Debian #195732).
- + fix a redefinition of $RANLIB in the configure script when libtool
- is used, which broke configure on Mac OS X (report by Chris Zubrzycki
- <beren@mac.com>).
- + simplify ifdef for bool declaration in curses.h.in (suggested by
- Albert Chin-A-Young).
- + remove configure script check to allow -Wconversion for older
- versions of gcc (suggested by Albert Chin-A-Young).
-
-20030531
- + regenerated html manpages.
- + modify ifdef's in curses.h.in that disabled use of __attribute__()
- for g++, since recent versions implement the cases which ncurses uses
- (Debian #195230).
- + modify _nc_get_token() to handle a case where an entry has no
- description, and capabilities begin on the same line as the entry
- name.
- + fix a typo in ncurses_dll.h reported by gcc 3.3.
- + add an entry for key_defined.3x to man_db.renames.
-
-20030524
- + modify setcchar() to allow converting control characters to complex
- characters (report/test by Mitsuru Chinen <mchinen@yamato.ibm.com>).
- + add tkterm entry -TD
- + modify parse_entry.c to allow a terminfo entry with a leading
- 2-character name (report by Don Libes).
- + corrected acsc in screen.teraterm, which requires a PC-style mapping.
- + fix trace statements in read_entry.c to use lseek() rather than
- tell().
- + fix signed/unsigned warnings from Sun's compiler (gcc should give
- these warnings, but it is unpredictable).
- + modify configure script to omit -Winline for gcc 3.3, since that
- feature is broken.
- + modify manlinks.sed to add a few functions that were overlooked since
- they return function pointers: field_init, field_term, form_init,
- form_term, item_init, item_term, menu_init and menu_term.
-
-20030517
- + prevent recursion in wgetch() via wgetnstr() if the connection cannot
- be switched between cooked/raw modes because it is not a TTY (report
- by Wolfgang Gutjahr <gutw@knapp.com>).
- + change parameter of define_key() and key_defined() to const (prompted
- by Debian #192860).
- + add a check in test/configure for ncurses extensions, since there
- are some older versions, etc., which would not compile with the
- current test programs.
- + corrected demo in test/ncurses.c of wgetn_wstr(), which did not
- convert wchar_t string to multibyte form before printing it.
- + corrections to lib_get_wstr.c:
- + null-terminate buffer passed to setcchar(), which occasionally
- failed.
- + map special characters such as erase- and kill-characters into
- key-codes so those will work as expected even if they are not
- mentioned in the terminfo.
- + modify PUTC() and Charable() macros to make wide-character line
- drawing work for POSIX locale on Linux console (cf: 20021221).
-
-20030510
- + make typography for program options in manpages consistent (report
- by Miloslav Trmac <mitr@volny.cz>).
- + correct dependencies in Ada95/src/Makefile.in, so the builds with
- "--srcdir" work (report by Warren L Dodge).
- + correct missing definition of $(CC) in Ada95/gen/Makefile.in
- (reported by Warren L Dodge <warrend@mdhost.cse.tek.com>).
- + fix typos and whitespace in manpages (patch by Jason McIntyre
- <jmc@prioris.mini.pw.edu.pl>).
-
-20030503
- + fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR,
- REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at
- the editing position before making modifications.
- + add test/demo_forms and associated test/edit_field.c demos.
- + modify test/configure.in to use test/modules for the list of objects
- to compile rather than using the list of programs.
-
-20030419
- + modify logic of acsc to use the original character if no mapping is
- defined, noting that Solaris does this.
- + modify ncurses 'b' test to avoid using the acs_map[] array since
- 20021231 changes it to no longer contain information from the acsc
- string.
- + modify makefile rules in c++, progs, tack and test to ensure that
- the compiler flags (e.g., $CFLAGS or $CCFLAGS) are used in the link
- command (report by Jose Luis Rico Botella <informatica@serpis.com>).
- + modify soft-key initialization to use A_REVERSE if A_STANDOUT would
- not be shown when colors are used, i.e., if ncv#1 is set in the
- terminfo as is done in "screen".
-
-20030412
- + add a test for slk_color(), in ncurses.c
- + fix some issues reported by valgrind in the slk_set() and slk_wset()
- code, from recent rewrite.
- + modify ncurses 'E' test to use show previous label via slk_label(),
- as in 'e' test.
- + modify wide-character versions of NewChar(), NewChar2() macros to
- ensure that the whole struct is initialized.
-
-20030405
- + modify setupterm() to check if the terminfo and terminal-modes have
- already been read. This ensures that it does not reinvoke
- def_prog_mode() when an application calls more than one function,
- such as tgetent() and initscr() (report by Olaf Buddenhagen).
-
-20030329
- + add 'E' test to ncurses.c, to exercise slk_wset().
- + correct handling of carriage-return in wgetn_wstr(), used in demo of
- slk_wset().
- + first draft of slk_wset() function.
-
-20030322
- + improved warnings in tic when suppressing items to fit in termcap's
- 1023-byte limit.
- + built a list in test/README showing which externals are being used
- by either programs in the test-directory or via internal library
- calls.
- + adjust include-options in CF_ETIP_DEFINES to avoid missing
- ncurses_dll.h, fixing special definitions that may be needed for
- etip.h (reported by Greg Schafer <gschafer@zip.com.au>).
-
-20030315
- + minor fixes for cardfile.c, to make it write the updated fields to
- a file when ^W is given.
- + add/use _nc_trace_bufcat() to eliminate some fixed buffer limits in
- trace code.
-
-20030308
- + correct a case in _nc_remove_string(), used by define_key(), to avoid
- infinite loop if the given string happens to be a substring of other
- strings which are assigned to keys (report by John McCutchan).
- + add key_defined() function, to tell which keycode a string is bound
- to (discussion with John McCutchan <ttb@tentacle.dhs.org>).
- + correct keybound(), which reported definitions in the wrong table,
- i.e., the list of definitions which are disabled by keyok().
- + modify demo_keydef.c to show the details it changes, and to check
- for errors.
-
-20030301
- + restructured test/configure script, make it work for libncursesw.
- + add description of link_fieldtype() to manpage (report by
- L Dee Holtsclaw <dee@sunbeltsoft.com>).
-
-20030222
- + corrected ifdef's relating to configure check for wchar_t, etc.
- + if the output is a socket or other non-tty device, use 1 millisecond
- for the cost in mvcur; previously it was 9 milliseconds because the
- baudrate was not known.
- + in _nc_get_tty_mode(), initialize the TTY buffer on error, since
- glibc copies uninitialized data in that case, as noted by valgrind.
- + modify tput to use the same parameter analysis as tparm() does, to
- provide for user-defined strings, e.g., for xterm title, a
- corresponding capability might be
- title=\E]2;%p1%s^G,
- + modify MKlib_gen.sh to avoid passing "#" tokens through the C
- preprocessor. This works around Mac OS X's preprocessor, which
- insists on adding a blank on each side of the token (report/analysis
- by Kevin Murphy <murphy@genome.chop.edu>).
-
-20030215
- + add configure check for wchar_t and wint_t types, rather than rely
- on preprocessor definitions. Also work around for gcc fixinclude
- bug which creates a shadow copy of curses.h if it sees these symbols
- apparently typedef'd.
- + if database is disabled, do not generate run_tic.sh
- + minor fixes for memory-leak checking when termcap is read.
-
-20030208
- + add checking in tic for incomplete line-drawing character mapping.
- + update configure script to reflect fix for AC_PROG_GCC_TRADITIONAL,
- which is broken in autoconf 2.5x for Mac OS X 10.2.3 (report by
- Gerben Wierda <Sherlock@rna.nl>).
- + make return value from _nc_printf_string() consistent. Before,
- depending on whether --enable-safe-sprintf was used, it might not be
- cached for reallocating.
-
-20030201
- + minor fixes for memory-leak checking in lib_tparm.c, hardscroll.c
- + correct a potentially-uninitialized value if _read_termtype() does
- not read as much data as expected (report by Wolfgang Rohdewald
- <wr6@uni.de>).
- + correct several places where the aclocal.m4 macros relied on cache
- variable names which were incompatible (as usual) between autoconf
- 2.13 and 2.5x, causing the test for broken-linker to give incorrect
- results (reports by Gerben Wierda <Sherlock@rna.nl> and Thomas Esser
- <te@dbs.uni-hannover.de>).
- + do not try to open gpm mouse driver if standard output is not a tty;
- the gpm library does not make this check (bug report for dialog
- by David Oliveira <davidoliveira@develop.prozone.ws>).
-
-20030125
- + modified emx.src to correspond more closely to terminfo.src, added
- emx-base to the latter -TD
- + add configure option for FreeBSD sysmouse, --with-sysmouse, and
- implement support for that in lib_mouse.c, lib_getch.c
-
-20030118
- + revert 20030105 change to can_clear_with(), does not work for the
- case where the update is made on cells which are blanks with
- attributes, e.g., reverse.
- + improve ifdef's to guard against redefinition of wchar_t and wint_t
- in curses.h (report by Urs Jansen).
-
-20030111
- + improve mvcur() by checking if it is safe to move when video
- attributes are set (msgr), and if not, reset/restore attributes
- within that function rather than doing it separately in the GoTo()
- function in tty_update.c (suggested by Philippe Blain).
- + add a message in run_tic.in to explain more clearly what does not
- work when attempting to create a symbolic link for /usr/lib/terminfo
- on OS/2 and other platforms with no symbolic links (report by John
- Polterak).
- + change several sed scripts to avoid using "\+" since it is not a BRE
- (basic regular expression). One instance caused terminfo.5 to be
- misformatted on FreeBSD (report by Kazuo Horikawa
- <horikawa@FreeBSD.org> (see FreeBSD docs/46709)).
- + correct misspelled 'wint_t' in curs_get_wch.3x (Michael Elkins).
-
-20030105
- + improve description of terminfo operators, especially static/dynamic
- variables (comments by Mark I Manning IV <mark4th@earthlink.net>).
- + demonstrate use of FIELDTYPE by modifying test/ncurses 'r' test to
- use the predefined TYPE_ALPHA field-type, and by defining a
- specialized type for the middle initial/name.
- + fix MKterminfo.sh, another workaround for POSIXLY_CORRECT misfeature
- of sed 4.0
- > patch by Philippe Blain:
- + optimize can_clear_with() a little by testing first if the parameter
- is indeed a "blank".
- + simplify ClrBottom() a little by allowing it to use clr_eos to clear
- sections as small as one line.
- + improve ClrToEOL() by checking if clr_eos is available before trying
- to use it.
- + use tputs() rather than putp() in a few cases in tty_update.c since
- the corresponding delays are proportional to the number of lines
- affected: repeat_char, clr_eos, change_scroll_region.
-
-20021231
- + rewrite of lib_acs.c conflicts with copying of SCREEN acs_map to/from
- global acs_map[] array; removed the lines that did the copying.
-
-20021228
- + change some overlooked tputs() calls in scrolling code to use putp()
- (report by Philippe Blain).
- + modify lib_getch.c to avoid recursion via wgetnstr() when the input
- is not a tty and consequently mode-changes do not work (report by
- <R.Chamberlin@querix.com>).
- + rewrote lib_acs.c to allow PutAttrChar() to decide how to render
- alternate-characters, i.e., to work with Linux console and UTF-8
- locale.
- + correct line/column reference in adjust_window(), needed to make
- special windows such as curscr track properly when resizing (report
- by Lucas Gonze <lgonze@panix.com>).
- > patch by Philippe Blain:
- + correct the value used for blank in ClrBottom() (broken in 20000708).
- + correct an off-by-one in GoTo() parameter in _nc_scrolln().
-
-20021221
- + change several tputs() calls in scrolling code to use putp(), to
- enable padding which may be needed for some terminals (patch by
- Philippe Blain).
- + use '%' as sed substitute delimiter in run_tic script to avoid
- problems with pathname delimiters such as ':' and '@' (report by John
- Polterak).
- + implement a workaround so that line-drawing works with screen's
- crippled UTF-8 support (tested with 3.9.13). This only works with
- the wide-character support (--enable-widec); the normal library will
- simply suppress line-drawing when running in a UTF-8 locale in screen.
-
-20021214
- + allow BUILD_CC and related configure script variables to be
- overridden from the environment.
- + make build-tools variables in ncurses/Makefile.in consistent with
- the configure script variables (report by Maciej W Rozycki).
- + modify ncurses/modules to allow
- configure --disable-leaks --disable-ext-funcs
- to build (report by Gary Samuelson).
- + fix a few places in configure.in which lacked quotes (report by
- Gary Samuelson <gary.samuelson@verizon.com>).
- + correct handling of multibyte characters in waddch_literal() which
- force wrapping because they are started too late on the line (report
- by Sam Varshavchik).
- + small fix for CF_GNAT_VERSION to ignore the help-message which
- gnatmake adds to its version-message.
- > Maciej W Rozycki <macro@ds2.pg.gda.pl>:
- + use AC_CHECK_TOOL to get proper values for AR and LD for cross
- compiling.
- + use $cross_compiling variable in configure script rather than
- comparing $host_alias and $target alias, since "host" is
- traditionally misused in autoconf to refer to the target platform.
- + change configure --help message to use "build" rather than "host"
- when referring to the --with-build-XXX options.
-
-20021206
- + modify CF_GNAT_VERSION to print gnatmake's version, and to allow for
- possible gnat versions such as 3.2 (report by Chris Lingard
- <chris@stockwith.co.uk>).
- + modify #define's for CKILL and other default control characters in
- tset to use the system's default values if they are defined.
- + correct interchanged defaults for kill and interrupt characters
- in tset, which caused it to report unnecessarily (Debian #171583).
- + repair check for missing C++ compiler, which is broken in autoconf
- 2.5x by hardcoding it to g++ (report by Martin Mokrejs).
- + update config.guess, config.sub (2002-11-30)
- + modify configure script to skip --with-shared, etc., when the
- --with-libtool option is given, since they would be ignored anyway.
- + fix to allow "configure --with-libtool --with-termlib" to build.
- + modify configure script to show version number of libtool, to help
- with bug reports. libtool still gets confused if the installed
- ncurses libraries are old, since it ignores the -L options at some
- point (tested with libtool 1.3.3 and 1.4.3).
- + reorder configure script's updating of $CPPFLAGS and $CFLAGS to
- prevent -I options in the user's environment from introducing
- conflicts with the build -I options (may be related to reports by
- Patrick Ash and George Goffe).
- + rename test/define_key.c to test/demo_defkey.c, test/keyok.c to
- test/demo_keyok.c to allow building these with libtool.
-
-20021123
- + add example program test/define_key.c for define_key().
- + add example program test/keyok.c for keyok().
- + add example program test/ins_wide.c for wins_wch() and wins_wstr().
- + modify wins_wch() and wins_wstr() to interpret tabs by using the
- winsch() internal function.
- + modify setcchar() to allow for wchar_t input strings that have
- more than one spacing character.
-
-20021116
- + fix a boundary check in lib_insch.c (patch by Philippe Blain).
- + change type for *printw functions from NCURSES_CONST to const
- (prompted by comment by Pedro Palhoto Matos <plpm@mega.ist.utl.pt>,
- but really from a note on X/Open's website stating that either is
- acceptable, and the latter will be used in a future revision).
- + add xterm-1002, xterm-1003 terminfo entries to demonstrate changes in
- lib_mouse.c (20021026) -TD
- + add screen-bce, screen-s entries from screen 3.9.13 (report by
- Adam Lazur <zal@debian.org>) -TD
- + add mterm terminfo entries -TD
-
-20021109
- + split-out useful fragments in terminfo for vt100 and vt220 numeric
- keypad, i.e., vt100+keypad, vt100+pfkeys, vt100+fnkeys and
- vt220+keypad. The last as embedded in various entries had ka3 and
- kb2 interchanged (report/discussion with Leonard den Ottolander
- <leonardjo@hetnet.nl>).
- + add check in tic for keypads consistent with vt100 layout.
- + improve checks in tic for color capabilities
-
-20021102
- + check for missing/empty/illegal terminfo name in _nc_read_entry()
- (report by Martin Mokrejs, where $TERM was set to an empty string).
- + rewrote lib_insch.c, combining it with lib_insstr.c so both handle
- tab and other control characters consistently (report by Philippe
- Blain).
- + remove an #undef for KEY_EVENT from curses.tail used in the
- experimental NCURSES_WGETCH_EVENTS feature. The #undef confuses
- dpkg's build script (Debian #165897).
- + fix MKlib_gen.sh, working around the ironically named POSIXLY_CORRECT
- feature of GNU sed 4.0 (reported by Ervin Nemeth <airwin@inf.bme.hu>).
-
-20021026
- + implement logic in lib_mouse.c to handle position reports which are
- generated when XFree86 xterm is initialized with private modes 1002
- or 1003. These are returned to the application as the
- REPORT_MOUSE_POSITION mask, which was not implemented. Tested both
- with ncurses 'a' menu (prompted by discussion with Larry Riedel
- <Larry@Riedel.org>).
- + modify lib_mouse.c to look for "XM" terminfo string, which allows
- one to override the escape sequence used to enable/disable mouse
- mode. In particular this works for XFree86 xterm private modes
- 1002 and 1003. If "XM" is missing (note that this is an extended
- name), lib_mouse uses the conventional private mode 1000.
- + correct NOT_LOCAL() macro in lib_mvcur.c to refer to screen_columns
- where it used screen_lines (report by Philippe Blain).
- + correct makefile rules for the case when both --with-libtool and
- --with-gpm are given (report by Mr E_T <troll@logi.net.au>).
- + add note to terminfo manpage regarding the differences between
- setaf/setab and setf/setb capabilities (report by Pavel Roskin).
-
-20021019
- + remove redundant initialization of TABSIZE in newterm(), since it is
- already done in setupterm() (report by Philippe Blain).
- + add test/inserts.c, to test winnstr() and winsch().
- + replace 'sort' in dist.mk with script that sets locale to POSIX.
- + update URLs in announce.html.in (patch by Frederic L W Meunier).
- + remove glibc add-on files, which are no longer needed (report by
- Frederic L W Meunier).
-
-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 '@'.
- > patch by 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>).
- > patch by 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
- > patch by 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.
- > patch by 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, e.g., Solaris, AIX -TD
-
-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 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') -TD
-
-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 C 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 for OS/2 EMX (Ilya Zakharevich):
- + 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 (report by John Hawkinson
- <jhawk@MIT.EDU> (see NetBSD misc/11052)).
- + 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 (adapted 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> (for 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 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 (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 V 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
- V 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 ESR'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 ESR to make infocmp -F less verbose -TD
- (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 V Lukyanov).
- > patches by Alexander V 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 V 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 -TD
- + 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) -TD
- + 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) -TD
-
-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 V Lukyanov).
- + simplify definition of PANEL and eliminate internal functions
- _nc_calculate_obscure(), _nc_free_obscure() and _nc_override(),
- (patch by Juergen Pfeifer, 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 (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 (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 (reported
- in Peter Edwards <peter.edwards@ireland.com> in
- mpc.lists.freebsd.current newsgroup.
- + 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 -TD
- > 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 (prompted by
- discussion with Alexander V 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 V 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 V 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 V 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 V 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 for Ada95 binding (Juergen Pfeifer):
- + 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 V Lukyanov).
- > patch for Ada95 binding (Juergen Pfeifer):
- + 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 for Ada95 binding (Juergen Pfeifer):
- + 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 V 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 V 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). Ilya says that he
- has seen messages claiming this behavior 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 V 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
- V 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 (prompted by 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 (prompted
- by 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 V Lukyanov:
- + move base-library sources into ncurses/base and tty (serial terminal)
- sources into ncurses/tty, as part of Alexander V 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 V 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 (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 (Mike Hopkirk).
- + 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 downloaded from ESR's webpage (ESR).
- > 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 (ESR).
-
-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 to split off seldom-used modules in ncurses (J T Conklin):
- This 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 (cf: 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 (reference: 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 (patch from J.J.G.Ripoll).
- Ripoll 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
- Juergen 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
- Juergen 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
- Juergen 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 Juergen 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 to support 'tack' program -TD
- (request by Daniel Weaver <danw@znyx.com>).
- + 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 behavior 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 for glibc integration (H.J.Lu):
- + 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,
- 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 Kenneth Albanowski
- <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).
- + fixes for C++ binding and demo (see c++/NEWS) (Juergen Pfeifer).
- + correct index in lib_instr.c (Juergen Pfeifer).
- + correct typo in 970426 patch from Tom's cleanup of lib_overlay.c
- (patch by 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). The
- original suggestion in 970118 used a perl script.
- + 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 (cf: 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 (adapted 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 (in 970124), reported
- by Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> in 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 V 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 V 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 V 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 M Ben-Halim 960928).
- + correct missing ';' in 961221 mod to overwrite optional use of $(LN_S)
- symbol.
- + 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 V Lukyanov). This was 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 -TD
- + 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 (ESR).
-
-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 V 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 (found using Purify).
- + modify delwin() to return ERR if the window to be deleted has
- subwindows, needed as a side-effect of resizeterm() (found using
- 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) -TD
- + 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 Alexander V Lukyanov).
-
-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
- Alexander V Lukyanov).
- + 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, mostly for panel (Juergen Pfeifer):
- + 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 (ESR):
- + 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 (ESR):
- + 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 ESR's changes to xterm-x11r6 (it no longer matched the X11R6.1
- distribution, as stated)
- + terminfo 9.13.18 resync (ESR)
- + check for getenv("HOME") returning null (ESR).
- + 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 V Lukyanov).
- + improve appearance of marker in multi-selection menu (Juergen
- Pfeifer)
- + fix behavior for forms with all fields inactive (Juergen Pfeifer)
- + document 'field_index()' (Juergen Pfeifer)
- > patch #321 (ESR):
- + 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 V 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 -TD
- + corrected logic for 'repeat_char' in EmitRange (cf: eric #317), which
- did not follow the 2-parameter scheme specified in XSI.
- + corrected logic of wrefresh, wnoutrefresh broken in #319, making
- clearok work properly (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 (ESR):
- + 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 (ESR):
- + modified logic for clearok and related functions (from report by
- Michael Elkins) - untested
- > patch 318 (ESR):
- + correction to #317.
- > patch 317 (ESR):
- + re-add _nc_hash_map
- + modify EmitRange to maintain position as per original design.
- + add hashtest.c, program to time the hashmap optimization.
- > patch 316 (ESR):
- + add logic to deal with magic-cookie (how was this tested?)
- (lib_doupdate.c).
- + add ncurses.c driver for magic-cookie, some fixes to ncurses.c
- > patch 315 (ESR):
- + merged Alexander V Lukyanov's patch to use ech and rep - untested
- (lib_doupdate.c).
- + 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 (ESR):
- + reset scroll region on startup rather than at wrapup time
- (enhancement suggested by Alexander V Lukyanov).
- + make storage of palette tables and their size counts per-screen for
- multi-terminal applications (suggested by Alexander V Lukyanov).
- + 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 ESR'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 (ESR):
- + 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 (ESR):
- correct terminfo.src corrupted by #310
- > patch 311 (ESR):
- + 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 (ESR):
- + documentation and prototyping errors for has_color, immedok and idcok
- (reported by William P Setzer <wsetzer@pams.ncsu.edu>)
- + updated qnx terminfo entry (by Michael Hunter)
-
-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 (ESR):
- + 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
- Juergen 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 (ESR):
- + 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 Juergen Pfeifer, Mike Long)
- + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer)
- + corrected prototype for delay_output() -- bump ABI to 3.2
- + terminfo patches #306/307 (ESR).
- + moved logic that filters out rmul and rmso from setupterm to newterm
- where it is less likely to interfere with termcap applications.
-
-960707
- + rollback ESR'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 (ESR).
- + 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 ESR.
-
-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 (requested by
- Charles Levert <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 Alexander V Lukyanov).
- > patch 303 (ESR):
- + 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)
-
-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 (ESR):
- + 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 (ESR):
- + implement TERMINFO_DIRS, and -o option of tic
- + added TRACE_IEVENT
- + removed boolean version of 'getm'
- + added lib_print.c (for Rick Marshall)
- + added has_key()
- + added 't' to ncurses.c test.
- + moved delay_output() to lib_tputs.c
- + removed tparam() (was added in 1.9.9, but conflicts with emacs and
- is not part of X/Open Curses).
- + misc cursor & optimization fixes.
-
-960504 - snapshot
- + modified ncurses 'p' test to allow full-screen range for panner size.
- + fixes for locale (Philippe De Muyter <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 (ESR):
- + new "-e" option of tic.
- + fix for "infocmp -e".
- + restore working-directory in read_termcap.c
- + split lib_kernel.c, lib_setup.c and names.c in order to reduce
- overhead for programs that use only termcap features.
-
-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 (ESR):
- + 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.
-
--- vile:txtmode:
diff --git a/contrib/ncurses/README b/contrib/ncurses/README
deleted file mode 100644
index 56bc38586f48..000000000000
--- a/contrib/ncurses/README
+++ /dev/null
@@ -1,210 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README,v 1.23 2006/04/22 22:19:37 tom Exp $
--------------------------------------------------------------------------------
- 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)
-
-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.
-
-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.11 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/contrib/ncurses/README.emx b/contrib/ncurses/README.emx
deleted file mode 100644
index 4c04816bbf8d..000000000000
--- a/contrib/ncurses/README.emx
+++ /dev/null
@@ -1,72 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README.emx,v 1.8 2006/04/22 22:19:37 tom Exp $
--- 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-20030927.patch.gz
- autoconf-2.13-20030927-emx.patch.gz
-
-I built my development environment for ncurses using EMX 0.9c at the end of
-1997. Much of the EMX patch for autoconf was done originally by J.J.G.Ripoll,
-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/contrib/ncurses/TO-DO b/contrib/ncurses/TO-DO
deleted file mode 100644
index 22acd0f1f3c6..000000000000
--- a/contrib/ncurses/TO-DO
+++ /dev/null
@@ -1,201 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: TO-DO,v 1.49 2007/02/03 16:29:17 tom Exp $
--------------------------------------------------------------------------------
-
-SHORT-TERM TO-DO ITEMS:
-
-Known Problems:
-
-+ libtool does not work with GNAT.
-
-+ 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 (for nonzero xmc values) 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...
-
-+ vid_attr() should support the set_a_attributes (sgr1) string, but does not.
- There appear to be no terminals that require that functionality.
-
-Portability (or lack thereof):
-
-+ Users of older System V UNIXes (but not Solaris, and probably not SVr4) may
- trip over a known problem with the signal-handling code which causes abrupt
- termination of ncurses applications following resume from a ^Z suspend (this
- problem was first seen running lynx). You will not see this problem if you
- are running Linux or one of the 4.4BSD derivatives like FreeBSD, NetBSD, or
- BSDI. For details, see the analysis in the header comment of
- ncurses/tty/lib_tstp.c .
-
-+ In theory, vwprintw and vwscanf are supposed to use the older varargs.h
- interface for handling variadic argument lists (and are deprecated by X/Open
- for that reason). 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 used 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 C++ binding fails to build with a few C++ compilers.
-
-+ 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 released in 1996 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.
-
-2. DOS port
-
-Only a few of the files in the library depend on the terminfo format.
-It should be possible to further kernelize the package, then rewrite
-a small number of core files to produce a functionally-compatible
-port that would do updates to a memory-mapped screen area. The first
-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.
-
--- vile:txtmode
diff --git a/contrib/ncurses/aclocal.m4 b/contrib/ncurses/aclocal.m4
deleted file mode 100644
index faba48922c24..000000000000
--- a/contrib/ncurses/aclocal.m4
+++ /dev/null
@@ -1,5306 +0,0 @@
-dnl***************************************************************************
-dnl Copyright (c) 1998-2007,2008 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: aclocal.m4,v 1.447 2008/04/12 23:49:55 tom Exp $
-dnl Macros used in NCURSES auto-configuration script.
-dnl
-dnl These macros are maintained separately from NCURSES. The copyright on
-dnl this file applies to the aggregation of macros and does not affect use of
-dnl these macros in other applications.
-dnl
-dnl See http://invisible-island.net/autoconf/ for additional information.
-dnl
-dnl ---------------------------------------------------------------------------
-dnl ---------------------------------------------------------------------------
-dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
-dnl -------------------
-dnl Inserted as requested by gettext 0.10.40
-dnl File from /usr/share/aclocal
-dnl codeset.m4
-dnl ====================
-dnl serial AM1
-dnl
-dnl From Bruno Haible.
-AC_DEFUN([AM_LANGINFO_CODESET],
-[
- AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
- [AC_TRY_LINK([#include <langinfo.h>],
- [char* cs = nl_langinfo(CODESET);],
- am_cv_langinfo_codeset=yes,
- am_cv_langinfo_codeset=no)
- ])
- if test $am_cv_langinfo_codeset = yes; then
- AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
- [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
- fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ADA_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
-dnl -------------------
-dnl Construct the list of include-options for the C programs in the Ada95
-dnl binding.
-AC_DEFUN([CF_ADA_INCLUDE_DIRS],
-[
-ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
-if test "$srcdir" != "."; then
- ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
-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 CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
-dnl -------------
-dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
-dnl The second parameter if given makes this macro verbose.
-dnl
-dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
-dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
-dnl confused by the quotes (which require backslashes to keep them usable).
-AC_DEFUN([CF_ADD_CFLAGS],
-[
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $1
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
- ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
- ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
- ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-AC_SUBST(EXTRA_CPPFLAGS)
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
-dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
-dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
-dnl but old versions (and some misinstalled ones) need that. To make things
-dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
-dnl the include-path).
-AC_DEFUN([CF_ADD_INCDIR],
-[
-if test -n "$1" ; then
- for cf_add_incdir in $1
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- AC_TRY_COMPILE([#include <stdio.h>],
- [printf("Hello")],
- [],
- [cf_have_incdir=yes])
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- CF_VERBOSE(adding $cf_add_incdir to include-path)
- ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
-dnl -------------
-dnl Adds to the library-path
-dnl
-dnl Some machines have trouble with multiple -L options.
-dnl
-dnl $1 is the (list of) directory(s) to add
-dnl $2 is the optional name of the variable to update (default LDFLAGS)
-dnl
-AC_DEFUN([CF_ADD_LIBDIR],
-[
-if test -n "$1" ; then
- for cf_add_libdir in $1
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
- elif test -d $cf_add_libdir
- then
- cf_have_libdir=no
- if test -n "$LDFLAGS$LIBS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_libdir in $LDFLAGS $LIBS ; do
- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
- cf_have_libdir=yes; break
- fi
- done
- fi
- if test "$cf_have_libdir" = no ; then
- CF_VERBOSE(adding $cf_add_libdir to library-path)
- ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
- fi
- fi
- done
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
-dnl ----------------
-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
-dnl in the sharutils 4.2 distribution.
-AC_DEFUN([CF_ANSI_CC_CHECK],
-[
-AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
- CF_ADD_CFLAGS($cf_arg)
- AC_TRY_COMPILE(
-[
-#ifndef CC_HAS_PROTOS
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-],[
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};],
- [cf_cv_ansi_cc="$cf_arg"; break])
-done
-CFLAGS="$cf_save_CFLAGS"
-CPPFLAGS="$cf_save_CPPFLAGS"
-])
-
-if test "$cf_cv_ansi_cc" != "no"; then
-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
- CF_ADD_CFLAGS($cf_cv_ansi_cc)
-else
- AC_DEFINE(CC_HAS_PROTOS)
-fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
-dnl ---------------
-dnl For programs that must use an ANSI compiler, obtain compiler options that
-dnl will make it recognize prototypes. We'll do preprocessor checks in other
-dnl macros, since tools such as unproto can fake prototypes, but only part of
-dnl the preprocessor.
-AC_DEFUN([CF_ANSI_CC_REQD],
-[AC_REQUIRE([CF_ANSI_CC_CHECK])
-if test "$cf_cv_ansi_cc" = "no"; then
- AC_MSG_ERROR(
-[Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
-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).
-dnl
-dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
-AC_DEFUN([CF_BOOL_DECL],
-[
-AC_MSG_CHECKING(if we should include stdbool.h)
-
-AC_CACHE_VAL(cf_cv_header_stdbool_h,[
- AC_TRY_COMPILE([],[bool foo = false],
- [cf_cv_header_stdbool_h=0],
- [AC_TRY_COMPILE([
-#ifndef __BEOS__
-#include <stdbool.h>
-#endif
-],[bool foo = false],
- [cf_cv_header_stdbool_h=1],
- [cf_cv_header_stdbool_h=0])])])
-
-if test "$cf_cv_header_stdbool_h" = 1
-then AC_MSG_RESULT(yes)
-else AC_MSG_RESULT(no)
-fi
-
-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 CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
-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);
- }
- ${cf_cv_main_return:-return}(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 CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
-dnl -----------
-dnl If we're cross-compiling, allow the user to override the tools and their
-dnl options. The configure script is oriented toward identifying the host
-dnl compiler, etc., but we need a build compiler to generate parts of the
-dnl source.
-dnl
-dnl $1 = default for $CPPFLAGS
-dnl $2 = default for $LIBS
-AC_DEFUN([CF_BUILD_CC],[
-AC_REQUIRE([CF_PROG_EXT])
-if test "$cross_compiling" = yes ; then
-
- # defaults that we might want to override
- : ${BUILD_CFLAGS:=''}
- : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
- : ${BUILD_LDFLAGS:=''}
- : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
- : ${BUILD_EXEEXT:='$x'}
- : ${BUILD_OBJEXT:='o'}
-
- AC_ARG_WITH(build-cc,
- [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
- [BUILD_CC="$withval"],
- [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
- AC_MSG_CHECKING(for native build C compiler)
- AC_MSG_RESULT($BUILD_CC)
-
- AC_MSG_CHECKING(for native build C preprocessor)
- AC_ARG_WITH(build-cpp,
- [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
- [BUILD_CPP="$withval"],
- [BUILD_CPP='${BUILD_CC} -E'])
- AC_MSG_RESULT($BUILD_CPP)
-
- AC_MSG_CHECKING(for native build C flags)
- AC_ARG_WITH(build-cflags,
- [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
- [BUILD_CFLAGS="$withval"])
- AC_MSG_RESULT($BUILD_CFLAGS)
-
- AC_MSG_CHECKING(for native build C preprocessor-flags)
- AC_ARG_WITH(build-cppflags,
- [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
- [BUILD_CPPFLAGS="$withval"])
- AC_MSG_RESULT($BUILD_CPPFLAGS)
-
- AC_MSG_CHECKING(for native build linker-flags)
- AC_ARG_WITH(build-ldflags,
- [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
- [BUILD_LDFLAGS="$withval"])
- AC_MSG_RESULT($BUILD_LDFLAGS)
-
- AC_MSG_CHECKING(for native build linker-libraries)
- AC_ARG_WITH(build-libs,
- [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
- [BUILD_LIBS="$withval"])
- AC_MSG_RESULT($BUILD_LIBS)
-
- # this assumes we're on Unix.
- BUILD_EXEEXT=
- BUILD_OBJEXT=o
-
- : ${BUILD_CC:='${CC}'}
-
- if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
- AC_MSG_ERROR([Cross-build requires two compilers.
-Use --with-build-cc to specify the native compiler.])
- fi
-
-else
- : ${BUILD_CC:='${CC}'}
- : ${BUILD_CPP:='${CPP}'}
- : ${BUILD_CFLAGS:='${CFLAGS}'}
- : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
- : ${BUILD_LDFLAGS:='${LDFLAGS}'}
- : ${BUILD_LIBS:='${LIBS}'}
- : ${BUILD_EXEEXT:='$x'}
- : ${BUILD_OBJEXT:='o'}
-fi
-
-AC_SUBST(BUILD_CC)
-AC_SUBST(BUILD_CPP)
-AC_SUBST(BUILD_CFLAGS)
-AC_SUBST(BUILD_CPPFLAGS)
-AC_SUBST(BUILD_LDFLAGS)
-AC_SUBST(BUILD_LIBS)
-AC_SUBST(BUILD_EXEEXT)
-AC_SUBST(BUILD_OBJEXT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
-dnl ---------------
-dnl Determine the default configuration into which we'll install ncurses. This
-dnl can be overridden by the user's command-line options. There's two items to
-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*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
- 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 CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
-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 CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
-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.
-dnl
-dnl Note: we would use $ac_config_sub, but that is one of the places where
-dnl autoconf 2.5x broke compatibility with autoconf 2.13
-AC_DEFUN([CF_CHECK_CACHE],
-[
-if test -f $srcdir/config.guess || test -f $ac_aux_dir/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_MSG_ERROR("Please remove config.cache and try again.")
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23
-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 CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
-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 CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
-dnl -------------------
-dnl Check if GPM is already linked with curses. If so - and if the linkage
-dnl is not "weak" - warn about this because it can create problems linking
-dnl applications with ncurses.
-AC_DEFUN([CF_CHECK_GPM_WGETCH],[
-AC_CHECK_LIB(gpm,Gpm_Wgetch,[
-
-AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
-cf_cv_check_gpm_wgetch=unknown
-if test "$cross_compiling" != yes ; then
-
-cat >conftest.$ac_ext <<CF_EOF
-#include <gpm.h>
-int main()
-{
- Gpm_Wgetch();
- ${cf_cv_main_return:-return}(0);
-}
-CF_EOF
-
- cf_save_LIBS="$LIBS"
- # This only works if we can look at the symbol table. If a shared
- # library is stripped for install, we cannot use that. So we're forced
- # to rely on the static library, noting that some packagers may not
- # include it.
- LIBS="-static -lgpm -dynamic $LIBS"
- if AC_TRY_EVAL(ac_compile) ; then
- if AC_TRY_EVAL(ac_link) ; then
- cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
- test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
- test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
- fi
- fi
- rm -f conftest*
- LIBS="$cf_save_LIBS"
-fi
-])
-
-if test "$cf_cv_check_gpm_wgetch" != yes ; then
- AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
-fi
-])])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
-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 CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
-dnl ------------------
-dnl Check if the C++ compiler accepts static_cast in generics. This appears to
-dnl not be supported in g++ before 3.0
-AC_DEFUN([CF_CPP_STATIC_CAST],
-[
-if test -n "$CXX"; then
-
-AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- AC_TRY_COMPILE([
-class NCursesPanel
-{
-public:
- NCursesPanel(int nlines,
- int ncols,
- int begin_y = 0,
- int begin_x = 0)
- {
- }
-
- ~NCursesPanel();
-};
-
-template<class T> class NCursesUserPanel : public NCursesPanel
-{
-public:
- NCursesUserPanel (int nlines,
- int ncols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = static_cast<T*>(0))
- : NCursesPanel (nlines, ncols, begin_y, begin_x)
- {
- };
- NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
- {
- };
-
- virtual ~NCursesUserPanel() {};
-};
-],[
- const char* p_UserData = static_cast<char*>(0)],
- [cf_cv_cpp_static_cast=yes],
- [cf_cv_cpp_static_cast=no])
-
- AC_LANG_RESTORE
-])
-
-fi
-
-test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
-dnl -----------
-dnl Check if the C compiler supports "inline".
-dnl $1 is the name of a shell variable to set if inline is supported
-dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
-AC_DEFUN([CF_C_INLINE],[
-AC_C_INLINE
-$1=
-if test "$ac_cv_c_inline" != no ; then
- $1=inline
- if test "$INTEL_COMPILER" = yes
- then
- :
- elif test "$GCC" = yes
- then
- AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
- cf_save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
- AC_TRY_COMPILE([inline int foo(void) { return 1; }],
- [${cf_cv_main_return:-return} foo()],
- [cf_cv_gcc_inline=yes],
- [cf_cv_gcc_inline=no])
- CFLAGS=$cf_save_CFLAGS
- ])
- if test "$cf_cv_gcc_inline" = yes ; then
- CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
- fi
- fi
-fi
-AC_SUBST($1)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
-dnl ----------
-dnl "dirname" is not portable, so we fake it with a shell script.
-AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
-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 CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42
-dnl ----------------
-dnl Combine no-leak checks with the libraries or tools that are used for the
-dnl checks.
-AC_DEFUN([CF_DISABLE_LEAKS],[
-
-AC_REQUIRE([CF_WITH_DMALLOC])
-AC_REQUIRE([CF_WITH_DBMALLOC])
-AC_REQUIRE([CF_WITH_VALGRIND])
-
-AC_MSG_CHECKING(if you want to perform memory-leak testing)
-AC_ARG_ENABLE(leaks,
- [ --disable-leaks test: free permanent memory, analyze leaks],
- [with_no_leaks=yes],
- : ${with_no_leaks:=no})
-AC_MSG_RESULT($with_no_leaks)
-
-if test "$with_no_leaks" = yes ; then
- AC_DEFINE(NO_LEAKS)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
-dnl --------
-dnl Check if 'errno' is declared in <errno.h>
-AC_DEFUN([CF_ERRNO],
-[
-CF_CHECK_ERRNO(errno)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
-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 -I${srcdir}/include"
- test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
- test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
-AC_TRY_COMPILE([
-#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 CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
-dnl -------------
-dnl Test for dlsym() and related functions, as well as libdl.
-dnl
-dnl Sets
-dnl $cf_have_dlsym
-dnl $cf_have_libdl
-AC_DEFUN([CF_FUNC_DLSYM],[
-cf_have_dlsym=no
-AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
-
-cf_have_libdl=no
-AC_CHECK_LIB(dl,dlsym,[
- cf_have_dlsym=yes
- cf_have_libdl=yes])])
-
-if test "$cf_have_dlsym" = yes ; then
- test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
-
- AC_MSG_CHECKING(whether able to link to dl*() functions)
- AC_TRY_LINK([#include <dlfcn.h>],[
- void *obj;
- if ((obj = dlopen("filename", 0)) != 0) {
- if (dlsym(obj, "symbolname") == 0) {
- dlclose(obj);
- }
- }],[
- AC_DEFINE(HAVE_LIBDL)],[
- AC_MSG_ERROR(Cannot link test program for libdl)])
- AC_MSG_RESULT(ok)
-else
- AC_MSG_ERROR(Cannot find dlsym function)
-fi
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
-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);
- ${cf_cv_main_return:-return} (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 CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
-dnl -----------------
-dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
-dnl AIX 4.x, provide a non-working version.
-AC_DEFUN([CF_FUNC_NANOSLEEP],[
-AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
-AC_TRY_RUN([
-#include <stdio.h>
-#include <errno.h>
-#include <time.h>
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-int main() {
- struct timespec ts1, ts2;
- int code;
- ts1.tv_sec = 0;
- ts1.tv_nsec = 750000000;
- ts2.tv_sec = 0;
- ts2.tv_nsec = 0;
- errno = 0;
- code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
- ${cf_cv_main_return:-return}(code != 0);
-}
-],
- [cf_cv_func_nanosleep=yes],
- [cf_cv_func_nanosleep=no],
- [cf_cv_func_nanosleep=unknown])])
-
-test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
-dnl ---------------
-dnl Check for openpty() function, along with <pty.h> header. It may need the
-dnl "util" library as well.
-AC_DEFUN([CF_FUNC_OPENPTY],
-[
-AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
-AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
- cf_save_LIBS="$LIBS"
- test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
- for cf_header in pty.h libutil.h util.h
- do
- AC_TRY_LINK([
-#include <$cf_header>
-],[
- int x = openpty((int *)0, (int *)0, (char *)0,
- (struct termios *)0, (struct winsize *)0);
-],[
- cf_cv_func_openpty=$cf_header
- break
-],[
- cf_cv_func_openpty=no
-])
- done
- LIBS="$cf_save_LIBS"
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
-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);
- ${cf_cv_main_return:-return}(ret != 0);
-}],
- [cf_cv_working_poll=yes],
- [cf_cv_working_poll=no],
- [cf_cv_working_poll=unknown])])
-test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
-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 CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
-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 CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
-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__ "${as_me-configure}"
-#include "confdefs.h"
-#include "conftest.h"
-#include "conftest.i"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
-EOF
- 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
- fi
- done
-else
- fgrep define conftest.i >>confdefs.h
-fi
-rm -rf conftest*
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
-dnl --------------
-dnl Find version of gcc
-AC_DEFUN([CF_GCC_VERSION],[
-AC_REQUIRE([AC_PROG_CC])
-GCC_VERSION=none
-if test "$GCC" = yes ; then
- AC_MSG_CHECKING(version of $CC)
- GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
- AC_MSG_RESULT($GCC_VERSION)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
-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). This
-dnl is enabled for ncurses using "--enable-const".
-dnl -pedantic
-dnl
-dnl Parameter:
-dnl $1 is an optional list of gcc warning flags that a particular
-dnl application might want to use, e.g., "no-unused" for
-dnl -Wno-unused
-dnl Special:
-dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
-dnl
-AC_DEFUN([CF_GCC_WARNINGS],
-[
-AC_REQUIRE([CF_GCC_VERSION])
-CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
-
-cat > conftest.$ac_ext <<EOF
-#line __oline__ "${as_me-configure}"
-int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
-EOF
-
-if test "$INTEL_COMPILER" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
-
- AC_CHECKING([for $CC warning options])
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-Wall"
- for cf_opt in \
- wd1419 \
- wd1682 \
- wd1683 \
- wd1684 \
- wd193 \
- wd279 \
- wd593 \
- wd810 \
- wd869 \
- wd981
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-
-elif test "$GCC" = yes
-then
- AC_CHECKING([for $CC warning options])
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-W -Wall"
- 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 $1
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- case $cf_opt in #(vi
- Wcast-qual) #(vi
- CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
- ;;
- Winline) #(vi
- case $GCC_VERSION in
- 3.3*)
- CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
- continue;;
- esac
- ;;
- esac
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-fi
-rm -f conftest*
-
-AC_SUBST(EXTRA_CFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
-dnl ----------------
-dnl Verify that a test program compiles/links with GNAT.
-dnl $cf_ada_make is set to the program that compiles/links
-dnl $ADAFLAGS may be set to the GNAT flags.
-dnl
-dnl $1 is the text of the spec
-dnl $2 is the text of the body
-dnl $3 is the shell command to execute if successful
-dnl $4 is the shell command to execute if not successful
-AC_DEFUN([CF_GNAT_TRY_LINK],
-[
-rm -f conftest*
-cat >>conftest.ads <<CF_EOF
-$1
-CF_EOF
-cat >>conftest.adb <<CF_EOF
-$2
-CF_EOF
-if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
-ifelse($3,, :,[ $3])
-ifelse($4,,,[else
- $4])
-fi
-rm -f conftest*
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
-dnl ---------------
-dnl Verify that a test program compiles and runs with GNAT
-dnl $cf_ada_make is set to the program that compiles/links
-dnl $ADAFLAGS may be set to the GNAT flags.
-dnl
-dnl $1 is the text of the spec
-dnl $2 is the text of the body
-dnl $3 is the shell command to execute if successful
-dnl $4 is the shell command to execute if not successful
-AC_DEFUN([CF_GNAT_TRY_RUN],
-[
-rm -f conftest*
-cat >>conftest.ads <<CF_EOF
-$1
-CF_EOF
-cat >>conftest.adb <<CF_EOF
-$2
-CF_EOF
-if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
- 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 CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
-dnl ---------------
-dnl Verify version of GNAT.
-AC_DEFUN([CF_GNAT_VERSION],
-[
-AC_MSG_CHECKING(for gnat version)
-cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
- sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
-AC_MSG_RESULT($cf_gnat_version)
-
-case $cf_gnat_version in
- 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
- cf_cv_prog_gnat_correct=yes
- ;;
- *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
- cf_cv_prog_gnat_correct=no
- ;;
-esac
-case $cf_gnat_version in
- 3.[[1-9]]*|[[4-9]].*)
- cf_compile_generics=generics
- cf_generic_objects="\${GENOBJS}"
- ;;
- *) cf_compile_generics=
- cf_generic_objects=
- ;;
-esac
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
-dnl -------------
-dnl Check if we must define _GNU_SOURCE to get a reasonable value for
-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 CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
-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 "$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 CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
-dnl --------------
-dnl Check for version of g++
-AC_DEFUN([CF_GXX_VERSION],[
-AC_REQUIRE([AC_PROG_CPP])
-GXX_VERSION=none
-if test "$GXX" = yes; then
- AC_MSG_CHECKING(version of g++)
- GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
- test -z "$GXX_VERSION" && GXX_VERSION=unknown
- AC_MSG_RESULT($GXX_VERSION)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
-dnl ---------------
-dnl Check if the compiler supports useful warning options.
-dnl
-dnl Most of gcc's options apply to g++, except:
-dnl -Wbad-function-cast
-dnl -Wmissing-declarations
-dnl -Wnested-externs
-dnl
-dnl Omit a few (for now):
-dnl -Winline
-dnl
-dnl Parameter:
-dnl $1 is an optional list of g++ warning flags that a particular
-dnl application might want to use, e.g., "no-unused" for
-dnl -Wno-unused
-dnl Special:
-dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
-dnl
-AC_DEFUN([CF_GXX_WARNINGS],
-[
-
-CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
-
-AC_REQUIRE([CF_GXX_VERSION])
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-
-cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
-EOF
-
-if test "$INTEL_CPLUSPLUS" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
-
- AC_CHECKING([for $CC warning options])
- cf_save_CXXFLAGS="$CXXFLAGS"
- EXTRA_CXXFLAGS="-Wall"
- for cf_opt in \
- wd1419 \
- wd1682 \
- wd1683 \
- wd1684 \
- wd193 \
- wd279 \
- wd593 \
- wd810 \
- wd869 \
- wd981
- do
- CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
- fi
- done
- CXXFLAGS="$cf_save_CXXFLAGS"
-
-elif test "$GXX" = yes
-then
- AC_CHECKING([for $CXX warning options])
- cf_save_CXXFLAGS="$CXXFLAGS"
- EXTRA_CXXFLAGS="-W -Wall"
- cf_gxx_extra_warnings=""
- test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
- case "$GCC_VERSION" in
- [[1-2]].*)
- ;;
- *)
- cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
- ;;
- esac
- for cf_opt in \
- Wabi \
- fabi-version=0 \
- Woverloaded-virtual \
- Wsign-promo \
- Wsynth \
- Wold-style-cast \
- Wcast-align \
- Wcast-qual \
- Wmissing-prototypes \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes \
- Wundef $cf_gxx_extra_warnings $1
- do
- CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
- else
- test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
- fi
- done
- CXXFLAGS="$cf_save_CXXFLAGS"
-fi
-
-rm -f conftest*
-AC_LANG_RESTORE
-AC_SUBST(EXTRA_CXXFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
-dnl ------------
-dnl Look for an instance of the Berkeley hashed database.
-dnl
-dnl $1 = optional parameter, to specify install-prefix for the database.
-AC_DEFUN([CF_HASHED_DB],
-[
-ifelse([$1],,,[
-case $1 in #(vi
-yes|*able*) #(vi
- ;;
-*)
- if test -d "$1" ; then
- CF_ADD_INCDIR($1/include)
- CF_ADD_LIBDIR($1/lib)
- fi
-esac
-])
-AC_CHECK_HEADER(db.h,[
-CF_HASHED_DB_VERSION
-if test "$cf_cv_hashed_db_version" = unknown ; then
- AC_MSG_ERROR(Cannot determine version of db)
-else
- CF_HASHED_DB_LIBS
- if test "$cf_cv_hashed_db_libs" = unknown ; then
- AC_MSG_ERROR(Cannot determine library for db)
- elif test "$cf_cv_hashed_db_libs" != default ; then
- LIBS="-l$cf_cv_hashed_db_libs $LIBS"
- fi
-fi
-],[
- AC_MSG_ERROR(Cannot find db.h)
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_HASHED_DB_LIBS version: 7 updated: 2007/12/01 15:01:37
-dnl -----------------
-dnl Given that we have the header and version for hashed database, find the
-dnl library information.
-AC_DEFUN([CF_HASHED_DB_LIBS],
-[
-AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
-cf_cv_hashed_db_libs=unknown
-for cf_db_libs in db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
-do
- cf_save_libs="$LIBS"
- if test -n "$cf_db_libs"; then
- LIBS="-l$cf_db_libs $LIBS"
- fi
- CF_MSG_LOG(checking for library "$cf_db_libs")
- AC_TRY_LINK([
-$ac_includes_default
-#include <db.h>
-],[
- char *path = "/tmp/foo";
-#ifdef DB_VERSION_MAJOR
-#if DB_VERSION_MAJOR >= 4
- DB *result = 0;
- db_create(&result, NULL, 0);
- result->open(result,
- NULL,
- path,
- path,
- DB_HASH,
- DB_CREATE,
- 0644);
-#elif DB_VERSION_MAJOR >= 3
- DB *result = 0;
- db_create(&result, NULL, 0);
- result->open(result,
- path,
- path,
- DB_HASH,
- DB_CREATE,
- 0644);
-#elif DB_VERSION_MAJOR >= 2
- DB *result = 0;
- db_open(path,
- DB_HASH,
- DB_CREATE,
- 0644,
- (DB_ENV *) 0,
- (DB_INFO *) 0,
- &result);
-#endif /* DB_VERSION_MAJOR */
-#else
- DB *result = dbopen(path,
- 2,
- 0644,
- DB_HASH,
- 0);
-#endif
- ${cf_cv_main_return:-return}(result != 0)
-],[
- if test -n "$cf_db_libs" ; then
- cf_cv_hashed_db_libs=$cf_db_libs
- else
- cf_cv_hashed_db_libs=default
- fi
- LIBS="$cf_save_libs"
- break
-])
- LIBS="$cf_save_libs"
-done
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
-dnl --------------------
-dnl Given that we have the header file for hashed database, find the version
-dnl information.
-AC_DEFUN([CF_HASHED_DB_VERSION],
-[
-AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
-cf_cv_hashed_db_version=unknown
-
-for cf_db_version in 1 2 3 4 5
-do
- CF_MSG_LOG(checking for db version $cf_db_version)
- AC_TRY_COMPILE([
-$ac_includes_default
-#include <db.h>
-
-#ifdef DB_VERSION_MAJOR
- /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
-#if $cf_db_version == DB_VERSION_MAJOR
- /* ok */
-#else
- make an error
-#endif
-#else
-#if $cf_db_version == 1
- /* ok: assuming this is DB 1.8.5 */
-#else
- make an error
-#endif
-#endif
-],[DBT *foo = 0],[
- cf_cv_hashed_db_version=$cf_db_version
- break
- ])
-done
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
-dnl ---------------
-dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
-AC_DEFUN([CF_HELP_MESSAGE],
-[AC_DIVERT_HELP([$1])dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
-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="-I. -I../include $CPPFLAGS"
-if test "$srcdir" != "."; then
- CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
-fi
-if test "$GCC" != yes; then
- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- CPPFLAGS="$CPPFLAGS -I\${includedir}"
- fi
- else
- CPPFLAGS="$CPPFLAGS -I\${includedir}"
- fi
-fi
-AC_SUBST(CPPFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
-dnl -----------------
-dnl Check if the given compiler is really the Intel compiler for Linux. It
-dnl tries to imitate gcc, but does not return an error when it finds a mismatch
-dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
-dnl
-dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
-dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
-dnl the wrappers for gcc and g++ warnings.
-dnl
-dnl $1 = GCC (default) or GXX
-dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
-dnl $3 = CFLAGS (default) or CXXFLAGS
-AC_DEFUN([CF_INTEL_COMPILER],[
-ifelse($2,,INTEL_COMPILER,[$2])=no
-
-if test "$ifelse($1,,[$1],GCC)" = yes ; then
- case $host_os in
- linux*|gnu*)
- AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
- cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
- ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
- AC_TRY_COMPILE([],[
-#ifdef __INTEL_COMPILER
-#else
-make an error
-#endif
-],[ifelse($2,,INTEL_COMPILER,[$2])=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-],[])
- ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
- AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
- ;;
- esac
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
-dnl ----------
-dnl Check if we have either a function or macro for 'isascii()'.
-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 CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
-dnl ------------
-dnl Add checks for large file support.
-AC_DEFUN([CF_LARGEFILE],[
-ifdef([AC_FUNC_FSEEKO],[
- AC_SYS_LARGEFILE
- if test "$enable_largefile" != no ; then
- AC_FUNC_FSEEKO
-
- # Normally we would collect these definitions in the config.h,
- # but (like _XOPEN_SOURCE), some environments rely on having these
- # defined before any of the system headers are included. Another
- # case comes up with C++, e.g., on AIX the compiler compiles the
- # header files by themselves before looking at the body files it is
- # told to compile. For ncurses, those header files do not include
- # the config.h
- test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
- test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
- test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
-
- AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
- AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <dirent.h>
- ],[
- /* if transitional largefile support is setup, this is true */
- extern struct dirent64 * readdir(DIR *);
- struct dirent64 *x = readdir((DIR *)0);
- struct dirent *y = readdir((DIR *)0);
- int z = x - y;
- ],
- [cf_cv_struct_dirent64=yes],
- [cf_cv_struct_dirent64=no])
- ])
- test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
- fi
-])
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_LDFLAGS_STATIC version: 2 updated: 2007/04/28 15:25:27
-dnl -----------------
-dnl Check for compiler/linker flags used to temporarily force usage of static
-dnl libraries. This depends on the compiler and platform. Use this to help
-dnl ensure that the linker picks up a given library based on its position in
-dnl the list of linker options and libraries.
-AC_DEFUN([CF_LDFLAGS_STATIC],[
-
-if test "$GCC" = yes ; then
- LDFLAGS_STATIC=-static
- LDFLAGS_SHARED=-dynamic
-else
- case $cf_cv_system_name in #(
- aix[[45]]*) #( from ld manpage
- LDFLAGS_STATIC=-bstatic
- LDFLAGS_SHARED=-bdynamic
- ;;
- hpux*) #( from ld manpage for hpux10.20, hpux11.11
- # We could also use just "archive" and "shared".
- LDFLAGS_STATIC=-Wl,-a,archive_shared
- LDFLAGS_SHARED=-Wl,-a,shared_archive
- ;;
- irix*) #( from ld manpage IRIX64
- LDFLAGS_STATIC=-Bstatic
- LDFLAGS_SHARED=-Bdynamic
- ;;
- osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
- # alternative "-oldstyle_liblookup" (not in cc manpage)
- LDFLAGS_STATIC=-noso
- LDFLAGS_SHARED=-so_archive
- ;;
- solaris2*)
- LDFLAGS_STATIC=-Bstatic
- LDFLAGS_SHARED=-Bdynamic
- ;;
- esac
-fi
-
-AC_SUBST(LDFLAGS_STATIC)
-AC_SUBST(LDFLAGS_SHARED)
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
-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 CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48
-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 CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59
-dnl ------------
-dnl Append definitions and rules for the given models to the subdirectory
-dnl Makefiles, and the recursion rule for the top-level Makefile. If the
-dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
-dnl 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 ! -d $srcdir/$cf_dir ; then
- continue
- elif test -f $srcdir/$cf_dir/modules; then
-
- 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*)
- case .${LIB_SUFFIX} in
- .w*)
- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
- cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
- ;;
- *)
- cf_suffix='.${REL_VERSION}'"$cf_suffix"
- ;;
- esac
- ;; #(vi
- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
- esac
- ;;
- abi)
- case "$cf_cv_system_name" in #(vi
- darwin*)
- case .${LIB_SUFFIX} in
- .w*)
- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
- ;;
- *)
- cf_suffix='.${ABI_VERSION}'"$cf_suffix"
- ;;
- esac
- ;; #(vi
- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
- esac
- ;;
- esac
- fi
- # cygwin needs import library, and has unique naming convention
- # use autodetected ${cf_prefix} for import lib and static lib, but
- # use 'cyg' prefix for shared lib.
- if test $cf_cv_shlib_version = cygdll ; then
- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
- 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"
- cf_r_parts="$cf_subsets"
-
- while test -n "$cf_r_parts"
- do
- cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
- cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
- if test "$cf_l_parts" != "$cf_r_parts" ; then
- case $cf_l_parts in #(vi
- *termlib*) #(vi
- cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
- ;;
- *ticlib*)
- cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
- ;;
- *)
- break
- ;;
- esac
- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
- else
- break
- fi
- done
- else
- cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
- fi
-
- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
- -e "s%@SHARED_LIB@%$SHARED_LIB%" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
- $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)
-
- # Test for case where we build libtinfo with a different name.
- cf_libname=$cf_dir
- if test $cf_dir = ncurses ; then
- case $cf_subset in
- *base*)
- ;;
- *termlib*)
- cf_libname=$TINFO_LIB_SUFFIX
- if test -n "${DFT_ARG_SUFFIX}" ; then
- # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
- cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
- fi
- ;;
- ticlib*)
- cf_libname=$TICS_LIB_SUFFIX
- if test -n "${DFT_ARG_SUFFIX}" ; then
- # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
- cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
- fi
- ;;
- esac
- fi
-
- # These dependencies really are for development, not
- # builds, but they are useful in porting, too.
- cf_depend="../include/ncurses_cfg.h"
- 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
-
- cf_dir_suffix=
- old_cf_suffix="$cf_suffix"
- if test "$cf_cv_shlib_version_infix" = yes ; then
- if test -n "$LIB_SUFFIX" ; then
- case $LIB_SUFFIX in
- w*)
- cf_libname=`echo $cf_libname | sed 's/w$//'`
- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
- cf_dir_suffix=w
- ;;
- esac
- fi
- fi
-
- $AWK -f $srcdir/mk-1st.awk \
- name=${cf_libname}${cf_dir_suffix} \
- traces=$LIB_TRACING \
- MODEL=$cf_ITEM \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
- TermlibRoot=$TINFO_NAME \
- TermlibSuffix=$TINFO_SUFFIX \
- ShlibVer=$cf_cv_shlib_version \
- ShlibVerInfix=$cf_cv_shlib_version_infix \
- ReLink=${cf_cv_do_relink-no} \
- DoLinks=$cf_cv_do_symlinks \
- rmSoLocs=$cf_cv_rm_so_locs \
- ldconfig="$LDCONFIG" \
- overwrite=$WITH_OVERWRITE \
- depend="$cf_depend" \
- host="$host" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- cf_suffix="$old_cf_suffix"
-
- for cf_subdir2 in $cf_subdirs lib
- do
- test $cf_subdir = $cf_subdir2 && break
- 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 \
- crenames=$cf_cv_prog_CC_c_o \
- cxxrenames=$cf_cv_prog_CXX_c_o \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- cf_subdirs="$cf_subdirs $cf_subdir"
- done
- done
- fi
-
- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
-done
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test ! -d $srcdir/$cf_dir ; then
- continue
- fi
-
- 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.libs uninstall.libs \\
-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 mk_shared_lib.sh
- 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 ! -d $srcdir/$cf_dir ; then
- continue
- fi
-
- if test -f $srcdir/$cf_dir/headers; then
- $AWK -f $srcdir/mk-hdr.awk \
- subset="$LIB_SUBSETS" \
- compat="$WITH_CURSES_H" \
- $srcdir/$cf_dir/headers >>$cf_dir/Makefile
- 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 CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
-dnl -------------
-dnl Find the and soname for the given shared library. Set the cache variable
-dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
-dnl variable to "unknown".
-dnl
-dnl $1 = headers
-dnl $2 = code
-dnl $3 = library name
-AC_DEFUN([CF_LIB_SONAME],
-[
-AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
-
-cf_cv_$3_soname=unknown
-if test "$cross_compiling" != yes ; then
-cat >conftest.$ac_ext <<CF_EOF
-$1
-int main()
-{
-$2
- ${cf_cv_main_return:-return}(0);
-}
-CF_EOF
-cf_save_LIBS="$LIBS"
- LIBS="-l$3 $LIBS"
- if AC_TRY_EVAL(ac_compile) ; then
- if AC_TRY_EVAL(ac_link) ; then
- cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
- test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
- fi
- fi
-rm -f conftest*
-LIBS="$cf_save_LIBS"
-fi
-])
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07
-dnl -------------
-dnl Compute the library file-suffix from the given model name
-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*)
- case $target in
- ia64*) $2='.so' ;;
- *) $2='.sl' ;;
- esac
- ;;
- *) $2='.so' ;;
- esac
- esac
- test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
-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 CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
-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>&AC_FD_CC 1>/dev/null
- fi
- rm -f conftest.$ac_ext data.o
- cat >conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int testfunc()
-{
-#if defined(NeXT)
- ${cf_cv_main_return:-return}(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>&AC_FD_CC 1>/dev/null
- fi
- rm -f conftest.$ac_ext func.o
- ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
- cf_saveLIBS="$LIBS"
- LIBS="conftest.a $LIBS"
- AC_TRY_RUN([
- int main()
- {
- extern int testfunc();
- ${cf_cv_main_return:-return} (!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 CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
-dnl -------------
-dnl Most Unix systems have both link and symlink, a few don't have symlink.
-dnl A few non-Unix systems implement symlink, but not link.
-dnl A few non-systems implement neither (or have nonfunctional versions).
-AC_DEFUN([CF_LINK_FUNCS],
-[
-AC_CHECK_FUNCS( \
- remove \
- unlink )
-
-if test "$cross_compiling" = yes ; then
- AC_CHECK_FUNCS( \
- link \
- symlink )
-else
- AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
- cf_cv_link_funcs=
- for cf_func in link symlink ; do
- AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-int main()
-{
- int fail = 0;
- char *src = "config.log";
- char *dst = "conftest.chk";
- struct stat src_sb;
- struct stat dst_sb;
-
- stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
-#ifdef HAVE_UNLINK
- unlink(dst);
-#else
- remove(dst);
-#endif
- ${cf_cv_main_return:-return} (fail);
-}
- ],[
- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
- eval 'ac_cv_func_'$cf_func'=yes'],[
- eval 'ac_cv_func_'$cf_func'=no'],[
- eval 'ac_cv_func_'$cf_func'=error'])
- done
- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
- ])
- test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
- test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
-dnl --------------
-dnl Check if a return from main to the shell actually returns the same exit
-dnl code. This is true for almost any POSIX environment.
-dnl
-dnl Some very old environments did not flush stdout, etc., on an exit. That
-dnl would be a useful case to test for also.
-AC_DEFUN([CF_MAIN_RETURN],
-[
-cf_cv_main_return=return
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
-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 | sed -e 's,[[ ]]*$,,'`
- 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 "given option \"$cf_option\", no match \"$cf_result\""
- ;;
- esac
- done
- rm -f cf_makeflags.tmp
-])
-
-AC_SUBST(cf_cv_makeflags)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
-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 CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
-dnl -----------------
-dnl Option to allow user to override automatic configuration of manpage format.
-dnl There are several special cases:
-dnl
-dnl gzip - man checks for, can display gzip'd files
-dnl compress - man checks for, can display compressed files
-dnl BSDI - files in the cat-directories are suffixed ".0"
-dnl formatted - installer should format (put files in cat-directory)
-dnl catonly - installer should only format, e.g., for a turnkey system.
-dnl
-dnl There are other configurations which this macro does not test, e.g., HPUX's
-dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
-dnl convention would not match our use).
-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/catonly, e.g., gzip,formatted],
- [MANPAGE_FORMAT=$withval],
- [MANPAGE_FORMAT=unknown])
-
-test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
-MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
-
-cf_unknown=
-
-case $MANPAGE_FORMAT in
-unknown)
- if test -z "$MANPATH" ; then
- MANPATH="/usr/man:/usr/share/man"
- fi
-
- # look for the 'date' man-page (it's most likely to be installed!)
- MANPAGE_FORMAT=
- cf_preform=no
- cf_catonly=yes
- cf_example=date
-
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
- for cf_dir in $MANPATH; do
- test -z "$cf_dir" && cf_dir=/usr/man
- for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
- do
- cf_test=`echo $cf_name | sed -e 's/*//'`
- if test "x$cf_test" = "x$cf_name" ; then
-
- case "$cf_name" in
- *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
- *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
- *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
- *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
- esac
-
- case "$cf_name" in
- $cf_dir/man*)
- cf_catonly=no
- ;;
- $cf_dir/cat*)
- cf_preform=yes
- ;;
- esac
- break
- fi
-
- # if we found a match in either man* or cat*, stop looking
- if test -n "$MANPAGE_FORMAT" ; then
- cf_found=no
- test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
- test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
- case "$cf_name" in
- $cf_dir/cat*)
- cf_found=yes
- ;;
- esac
- test $cf_found=yes && break
- fi
- done
- # only check the first directory in $MANPATH where we find manpages
- if test -n "$MANPAGE_FORMAT" ; then
- break
- fi
- done
- # if we did not find the example, just assume it is normal
- test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
- IFS="$ac_save_ifs"
- ;;
-*)
- for cf_option in $MANPAGE_FORMAT; do
- case $cf_option in #(vi
- gzip|compress|BSDI|normal|formatted|catonly)
- ;;
- *)
- cf_unknown="$cf_unknown $cf_option"
- ;;
- esac
- done
- ;;
-esac
-
-AC_MSG_RESULT($MANPAGE_FORMAT)
-if test -n "$cf_unknown" ; then
- AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
-dnl ------------------
-dnl The Debian people have their own naming convention for manpages. This
-dnl option lets us override the name of the file containing renaming, or
-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 >./edit_man.sed
- fi
-fi
-
-AC_MSG_RESULT($MANPAGE_RENAMES)
-AC_SUBST(MANPAGE_RENAMES)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
-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(if manpage aliases will be installed)
-
-AC_ARG_WITH(manpage-aliases,
- [ --with-manpage-aliases specify manpage-aliases using .so],
- [MANPAGE_ALIASES=$withval],
- [MANPAGE_ALIASES=yes])
-
-AC_MSG_RESULT($MANPAGE_ALIASES)
-
-if test "$LN_S" = "ln -s"; then
- cf_use_symlinks=yes
-else
- cf_use_symlinks=no
-fi
-
-MANPAGE_SYMLINKS=no
-if test "$MANPAGE_ALIASES" = yes ; then
-AC_MSG_CHECKING(if manpage symlinks should be used)
-
-AC_ARG_WITH(manpage-symlinks,
- [ --with-manpage-symlinks specify manpage-aliases using symlinks],
- [MANPAGE_SYMLINKS=$withval],
- [MANPAGE_SYMLINKS=$cf_use_symlinks])
-
-if test "$$cf_use_symlinks" = no; then
-if test "$MANPAGE_SYMLINKS" = yes ; then
- AC_MSG_WARN(cannot make symlinks, will use .so files)
- MANPAGE_SYMLINKS=no
-fi
-fi
-
-AC_MSG_RESULT($MANPAGE_SYMLINKS)
-fi
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
-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 CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
-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
- *catonly*) # (vi
- cf_format=yes
- cf_inboth=no
- ;;
- *formatted*) # (vi
- cf_format=yes
- cf_inboth=yes
- ;;
- *)
- cf_format=no
- cf_inboth=no
- ;;
- esac
-
-test ! -d man && mkdir man
-
-cf_so_strip=
-cf_compress=
-case "$MANPAGE_FORMAT" in #(vi
-*compress*) #(vi
- cf_so_strip="Z"
- cf_compress=compress
- ;;
-*gzip*) #(vi
- cf_so_strip="gz"
- cf_compress=gzip
- ;;
-esac
-
-cf_edit_man=./edit_man.sh
-cf_man_alias=`pwd`/man_alias.sed
-
-cat >$cf_edit_man <<CF_EOF
-#! /bin/sh
-# this script is generated by the configure-script CF_MAN_PAGES macro.
-
-prefix="$cf_prefix"
-datadir="$datadir"
-
-NCURSES_MAJOR="$NCURSES_MAJOR"
-NCURSES_MINOR="$NCURSES_MINOR"
-NCURSES_PATCH="$NCURSES_PATCH"
-
-NCURSES_OSPEED="$NCURSES_OSPEED"
-TERMINFO="$TERMINFO"
-
-MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
-
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-
-transform="$program_transform_name"
-
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
-
-form=\[$]1
-shift || exit 1
-
-verb=\[$]1
-shift || exit 1
-
-mandir=\[$]1
-shift || exit 1
-
-srcdir=\[$]1
-top_srcdir=\[$]srcdir/..
-shift || exit 1
-
-if test "\$form" = normal ; then
- if test "$cf_format" = yes ; then
- if test "$cf_inboth" = no ; then
- sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
- exit $?
- fi
- fi
- cf_subdir=\$mandir/man
- cf_tables=$MANPAGE_TBL
-else
- cf_subdir=\$mandir/cat
- cf_tables=yes
-fi
-
-# process the list of source-files
-for i in \[$]* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[[0-9]]*)
- section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
- if test \$verb = installing ; then
- if test ! -d \$cf_subdir\${section} ; then
- \$MKDIRS \$cf_subdir\$section
- fi
- fi
-
- # replace variables in man page
- if test ! -f $cf_man_alias ; then
-cat >>$cf_man_alias <<-CF_EOF2
- s,@DATADIR@,\$datadir,g
- s,@TERMINFO@,\$TERMINFO,g
- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
-CF_EOF
- ifelse($1,,,[
- for cf_name in $1
- do
- cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- cf_name=`echo $cf_name|sed "$program_transform_name"`
-cat >>$cf_edit_man <<-CF_EOF
- s,@$cf_NAME@,$cf_name,
-CF_EOF
- done
- ])
-cat >>$cf_edit_man <<CF_EOF
-CF_EOF2
- echo "...made $cf_man_alias"
- fi
-
- aliases=
- cf_source=\`basename \$i\`
- inalias=\$cf_source
- test ! -f \$inalias && inalias="\$srcdir/\$inalias"
- if test ! -f \$inalias ; then
- echo .. skipped \$cf_source
- continue
- fi
-CF_EOF
-
-if test "$MANPAGE_ALIASES" != no ; then
-cat >>$cf_edit_man <<CF_EOF
- aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
-CF_EOF
-fi
-
-if test "$MANPAGE_RENAMES" = no ; then
-cat >>$cf_edit_man <<CF_EOF
- # perform program transformations for section 1 man pages
- if test \$section = 1 ; then
- cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
- else
- cf_target=\$cf_subdir\${section}/\$cf_source
- fi
-CF_EOF
-else
-cat >>$cf_edit_man <<CF_EOF
- cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
- if test -z "\$cf_target" ; then
- echo '? missing rename for '\$cf_source
- cf_target="\$cf_source"
- fi
- cf_target="\$cf_subdir\${section}/\${cf_target}"
-
-CF_EOF
-fi
-
-cat >>$cf_edit_man <<CF_EOF
- sed -f $cf_man_alias \\
-CF_EOF
-
-if test -f $MANPAGE_RENAMES ; then
-cat >>$cf_edit_man <<CF_EOF
- < \$i | sed -f `pwd`/edit_man.sed >\$TMP
-CF_EOF
-else
-cat >>$cf_edit_man <<CF_EOF
- < \$i >\$TMP
-CF_EOF
-fi
-
-cat >>$cf_edit_man <<CF_EOF
-if test \$cf_tables = yes ; then
- tbl \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-fi
-CF_EOF
-
-if test $with_curses_h != yes ; then
-cat >>$cf_edit_man <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-
-cat >>$cf_edit_man <<CF_EOF
- if test \$form = format ; then
- nroff -man \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
- fi
-CF_EOF
-
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
- if test \$verb = installing ; then
- if ( $cf_compress -f \$TMP )
- then
- mv \$TMP.$cf_so_strip \$TMP
- fi
- fi
- cf_target="\$cf_target.$cf_so_strip"
-CF_EOF
-fi
-
-case "$MANPAGE_FORMAT" in #(vi
-*BSDI*)
-cat >>$cf_edit_man <<CF_EOF
- if test \$form = format ; then
- # BSDI installs only .0 suffixes in the cat directories
- cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
- fi
-CF_EOF
- ;;
-esac
-
-cat >>$cf_edit_man <<CF_EOF
- suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
- if test \$verb = installing ; then
- echo \$verb \$cf_target
- \$INSTALL_DATA \$TMP \$cf_target
- test -d \$cf_subdir\${section} &&
- test -n "\$aliases" && (
- cd \$cf_subdir\${section} && (
- cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
- test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
- cf_target=\`basename \$cf_target\`
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- if test "$MANPAGE_SYMLINKS" = yes ; then
- if test -f \$cf_alias\${suffix} ; then
- if ( cmp -s \$cf_target \$cf_alias\${suffix} )
- then
- continue
- fi
- fi
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$cf_target \$cf_alias\${suffix}
- elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
- echo ".so \$cf_source" >\$TMP
-CF_EOF
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
- if test -n "$cf_so_strip" ; then
- $cf_compress -f \$TMP
- mv \$TMP.$cf_so_strip \$TMP
- fi
-CF_EOF
-fi
-cat >>$cf_edit_man <<CF_EOF
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
- fi
- done
- )
- )
- elif test \$verb = removing ; then
- test -f \$cf_target && (
- echo \$verb \$cf_target
- rm -f \$cf_target
- )
- test -d \$cf_subdir\${section} &&
- test -n "\$aliases" && (
- cd \$cf_subdir\${section} && (
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- done
- )
- )
- else
-# echo ".hy 0"
- cat \$TMP
- fi
- ;;
-esac
-done
-
-if test $cf_inboth = yes ; then
-if test \$form != format ; then
- sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
-fi
-fi
-
-exit 0
-CF_EOF
-chmod 755 $cf_edit_man
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
-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 CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
-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,[
-if test "$cross_compiling" = yes ; then
- case $target_alias in #(vi
- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
- cf_cv_mixedcase=no
- ;;
- *)
- cf_cv_mixedcase=yes
- ;;
- esac
-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
-])
-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
-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;
- ${cf_cv_main_return:-return}(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 CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
-dnl ----------
-dnl Write a debug message to config.log, along with the line number in the
-dnl configure script.
-AC_DEFUN([CF_MSG_LOG],[
-echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
-dnl ----------------
-dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
-dnl warn about this.
-AC_DEFUN([CF_NCURSES_ABI_6],[
-if test "${with_abi_version+set}" != set; then
- case $cf_cv_rel_version in
- 5.*)
- cf_cv_rel_version=6.0
- cf_cv_abi_version=6
- AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
- ;;
- esac
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
-dnl ------------------
-dnl see CF_WITH_NO_LEAKS
-AC_DEFUN([CF_NO_LEAKS_OPTION],[
-AC_MSG_CHECKING(if you want to use $1 for testing)
-AC_ARG_WITH($1,
- [$2],
- [AC_DEFINE($3)ifelse([$4],,[
- $4
-])
- : ${with_cflags:=-g}
- : ${with_no_leaks:=yes}
- with_$1=yes],
- [with_$1=])
-AC_MSG_RESULT(${with_$1:-no})
-
-case .$with_cflags in #(vi
-.*-g*)
- case .$CFLAGS in #(vi
- .*-g*) #(vi
- ;;
- *)
- CF_ADD_CFLAGS([-g])
- ;;
- esac
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
-dnl ----------------
-dnl Check if the given variable is a number. If not, report an error.
-dnl $1 is the variable
-dnl $2 is the message
-AC_DEFUN([CF_NUMBER_SYNTAX],[
-if test -n "$1" ; then
- case $1 in #(vi
- [[0-9]]*) #(vi
- ;;
- *)
- AC_MSG_ERROR($2 is not a number: $1)
- ;;
- esac
-else
- AC_MSG_ERROR($2 value is empty)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
-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 CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
-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 CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
-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],[
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-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%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
-dnl -----------------
-dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
-dnl
-dnl POSIX.1-1990 _POSIX_SOURCE
-dnl POSIX.1-1990 and _POSIX_SOURCE and
-dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
-dnl Bindings Option
-dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
-dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
-dnl X/Open 2000 _POSIX_C_SOURCE=200112L
-dnl
-dnl Parameters:
-dnl $1 is the nominal value for _POSIX_C_SOURCE
-AC_DEFUN([CF_POSIX_C_SOURCE],
-[
-cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
-
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-
-CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
-CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
-
-AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
- CF_MSG_LOG(if the symbol is already defined go no further)
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif],
- [cf_cv_posix_c_source=no],
- [cf_want_posix_source=no
- case .$cf_POSIX_C_SOURCE in #(vi
- .[[12]]??*) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- ;;
- .2) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- cf_want_posix_source=yes
- ;;
- .*)
- cf_want_posix_source=yes
- ;;
- esac
- if test "$cf_want_posix_source" = yes ; then
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _POSIX_SOURCE
-make an error
-#endif],[],
- cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
- fi
- CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
- CF_MSG_LOG(if the second compile does not leave our definition intact error)
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif],,
- [cf_cv_posix_c_source=no])
- CFLAGS="$cf_save_CFLAGS"
- CPPFLAGS="$cf_save_CPPFLAGS"
- ])
-])
-
-if test "$cf_cv_posix_c_source" != no ; then
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS"
- if test "$cf_cv_cc_u_d_options" = yes ; then
- cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
- sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
- CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
- fi
- CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
-fi
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
-dnl ------------
-dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
-dnl
-dnl $1 = symbol to test
-dnl $2 = value (if any) to use for a predefinition
-AC_DEFUN([CF_PREDEFINE],
-[
-AC_MSG_CHECKING(if we must define $1)
-AC_TRY_COMPILE([#include <sys/types.h>
-],[
-#ifndef $1
-make an error
-#endif],[cf_result=no],[cf_result=yes])
-AC_MSG_RESULT($cf_result)
-
-if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
-elif test "x$2" != "x" ; then
- AC_MSG_CHECKING(checking for compatible value versus $2)
- AC_TRY_COMPILE([#include <sys/types.h>
-],[
-#if $1-$2 < 0
-make an error
-#endif],[cf_result=yes],[cf_result=no])
- AC_MSG_RESULT($cf_result)
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
- CPPFLAGS="$CPPFLAGS -D$1=$2"
- fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
-dnl ------------
-dnl Append definitions and rules for the given programs to the subdirectory
-dnl Makefiles, and the recursion rule for the top-level Makefile.
-dnl
-dnl parameters
-dnl $1 = script to run
-dnl $2 = list of subdirectories
-dnl
-dnl variables
-dnl $AWK
-AC_DEFUN([CF_PRG_RULES],
-[
-for cf_dir in $2
-do
- if test ! -d $srcdir/$cf_dir; then
- continue
- elif test -f $srcdir/$cf_dir/programs; then
- $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
- fi
-done
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
-dnl -----------
-dnl Check for awk, ensure that the check found something.
-AC_DEFUN([CF_PROG_AWK],
-[
-AC_PROG_AWK
-test -z "$AWK" && AC_MSG_ERROR(No awk program found)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
-dnl --------------
-dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
-dnl the output file can be renamed, and allows for a shell variable that can
-dnl be used later. The parameter is either CC or CXX. The result is the
-dnl cache variable:
-dnl $cf_cv_prog_CC_c_o
-dnl $cf_cv_prog_CXX_c_o
-AC_DEFUN([CF_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
-AC_CACHE_VAL(cf_cv_prog_$1_c_o,
-[
-cat > conftest.$ac_ext <<CF_EOF
-#include <stdio.h>
-int main()
-{
- ${cf_cv_main_return:-return}(0);
-}
-CF_EOF
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
-if AC_TRY_EVAL(ac_try) &&
- test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
-then
- eval cf_cv_prog_$1_c_o=yes
-else
- eval cf_cv_prog_$1_c_o=no
-fi
-rm -f conftest*
-])dnl
-if test $cf_cv_prog_$1_c_o = yes; then
- AC_MSG_RESULT([yes])
-else
- AC_MSG_RESULT([no])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
-dnl --------------
-dnl Check if C (preprocessor) -U and -D options are processed in the order
-dnl given rather than by type of option. Some compilers insist on apply all
-dnl of the -U options after all of the -D options. Others allow mixing them,
-dnl and may predefine symbols that conflict with those we define.
-AC_DEFUN([CF_PROG_CC_U_D],
-[
-AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
- cf_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
- AC_TRY_COMPILE([],[
-#ifndef U_D_OPTIONS
-make an undefined-error
-#endif
-#ifdef D_U_OPTIONS
-make a defined-error
-#endif
- ],[
- cf_cv_cc_u_d_options=yes],[
- cf_cv_cc_u_d_options=no])
- CPPFLAGS="$cf_save_CPPFLAGS"
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
-dnl -------------
-dnl AC_PROG_EGREP was introduced in autoconf 2.53.
-dnl This macro adds a check to ensure the script found something.
-AC_DEFUN([CF_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
-dnl -----------
-dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
-AC_DEFUN([CF_PROG_EXT],
-[
-AC_REQUIRE([CF_CHECK_CACHE])
-case $cf_cv_system_name in
-os2*)
- CFLAGS="$CFLAGS -Zmt"
- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
- CXXFLAGS="$CXXFLAGS -Zmt"
- # autoconf's macro sets -Zexe and suffix both, which conflict:w
- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
- ac_cv_exeext=.exe
- ;;
-esac
-
-AC_EXEEXT
-AC_OBJEXT
-
-PROG_EXT="$EXEEXT"
-AC_SUBST(PROG_EXT)
-test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
-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 CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
-dnl ----------------
-dnl Check for ldconfig, needed to fixup shared libraries that would be built
-dnl and then used in the install.
-AC_DEFUN([CF_PROG_LDCONFIG],[
-if test "$cross_compiling" = yes ; then
- LDCONFIG=:
-else
-case "$cf_cv_system_name" in #(vi
-freebsd*) #(vi
- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
- ;;
-*) LDPATH=$PATH:/sbin:/usr/sbin
- AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
- ;;
-esac
-fi
-AC_SUBST(LDCONFIG)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
-dnl ------------
-AC_DEFUN([CF_PROG_LINT],
-[
-AC_CHECK_PROGS(LINT, tdlint lint alint)
-AC_SUBST(LINT_OPTS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
-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 CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
-dnl ----------------
-dnl Remove all -U and -D options that refer to the given symbol from a list
-dnl of C compiler options. This works around the problem that not all
-dnl compilers process -U and -D options from left-to-right, so a -U option
-dnl cannot be used to cancel the effect of a preceding -D option.
-dnl
-dnl $1 = target (which could be the same as the source variable)
-dnl $2 = source (including '$')
-dnl $3 = symbol to remove
-define([CF_REMOVE_DEFINE],
-[
-# remove $3 symbol from $2
-$1=`echo "$2" | \
- sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
- -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
-dnl -------------
-dnl Remove the given library from the symbol
-dnl
-dnl $1 = target (which could be the same as the source variable)
-dnl $2 = source (including '$')
-dnl $3 = library to remove
-define([CF_REMOVE_LIB],
-[
-# remove $3 library from $2
-$1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_RPATH_HACK version: 3 updated: 2007/12/01 11:14:13
-dnl -------------
-AC_DEFUN([CF_RPATH_HACK],
-[
-AC_REQUIRE([CF_SHARED_OPTS])
-AC_MSG_CHECKING(for updated LDFLAGS)
-if test -n "$LDFLAGS" ; then
-AC_MSG_RESULT(maybe)
-CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
-CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
-case "$EXTRA_LDFLAGS" in #(vi
--Wl,-rpath,*) #(vi
- cf_rpath_hack="-Wl,-rpath,"
- ;;
--R\ *)
- cf_rpath_hack="-R "
- ;;
--R*)
- cf_rpath_hack="-R"
- ;;
-*)
- cf_rpath_hack=
- ;;
-esac
-if test -n "$cf_rpath_hack" ; then
- cf_rpath_dst=
- for cf_rpath_src in $LDFLAGS
- do
- CF_VERBOSE(Filtering $cf_rpath_src)
- case $cf_rpath_src in #(vi
- -L*) #(vi
- if test "$cf_rpath_hack" = "-R " ; then
- cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
- else
- cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
- fi
- CF_VERBOSE(...Filter $cf_rpath_tmp)
- EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
- ;;
- *)
- cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
- ;;
- esac
- done
- LDFLAGS=$cf_rpath_dst
- CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
- CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
-fi
-else
-AC_MSG_RESULT(no)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 47 updated: 2008/03/23 14:48:54
-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_MSG_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} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
- ;;
- cygwin*)
- CC_SHARED_OPTS=
- MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
- cf_cv_shlib_version=cygdll
- cf_cv_shlib_version_infix=cygdll
- cat >mk_shared_lib.sh <<-CF_EOF
- #!/bin/sh
- SHARED_LIB=\[$]1
- IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
- shift
- cat <<-EOF
- Linking shared library
- ** SHARED_LIB \[$]SHARED_LIB
- ** IMPORT_LIB \[$]IMPORT_LIB
-EOF
- exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
-CF_EOF
- chmod +x mk_shared_lib.sh
- ;;
- darwin*)
- EXTRA_CFLAGS="-no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
- cf_cv_shlib_version_infix=yes
- AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
- cf_save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
- LDFLAGS=$cf_save_LDFLAGS])
- if test $cf_cv_ldflags_search_paths_first = yes; then
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- fi
- ;;
- 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
- if test "$GCC" = yes; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
- else
- cf_ld_rpath_opt="-rpath "
- EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
- fi
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
- cf_cv_rm_so_locs=yes
- ;;
- linux*|gnu*|k*bsd*-gnu)
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
- fi
- CF_SHARED_SONAME
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $[@]'
- ;;
- openbsd[[2-9]].*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $[@].${ABI_VERSION}` -o $[@]'
- ;;
- openbsd*|freebsd[[12]].*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- freebsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
- LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
- cf_ld_rpath_opt="-rpath "
- EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
- fi
- CF_SHARED_SONAME
- MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
- ;;
- 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,\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
- if test "$cf_cv_shlib_version" = auto; then
- if test -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=abi
- else
- cf_cv_shlib_version=rel
- fi
- fi
- CF_SHARED_SONAME
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname' -o $[@]'
- 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,\$(LOCAL_LIBDIR)"
- 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 "$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 "$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 "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${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
- CF_SHARED_SONAME
- MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $[@]'
- ;;
- sysv5uw7*|unix_sv*)
- # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
- if test "$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 CF_SHARED_SONAME version: 2 updated: 2006/10/21 12:33:41
-dnl ----------------
-dnl utility macro for CF_SHARED_OPTS, constructs "$cf_shared_soname" for
-dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
-dnl option.
-dnl
-dnl $1 is the default that should be used for "$cf_cv_shlib_version".
-dnl If missing, use "rel".
-define([CF_SHARED_SONAME],
-[
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
- if test "$cf_cv_shlib_version" = rel; then
- cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_shared_soname='`basename $[@]`'
- fi
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
-dnl -----------
-dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
-dnl programs need this test).
-dnl
-dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
-dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
-dnl winsize declaration is left alone - we may revisit this if Apple choose to
-dnl break that part of the interface as well.
-AC_DEFUN([CF_SIGWINCH],
-[
-AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
- AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/signal.h>
-],[int x = SIGWINCH],
- [cf_cv_define_sigwinch=yes],
- [AC_TRY_COMPILE([
-#undef _XOPEN_SOURCE
-#undef _POSIX_SOURCE
-#undef _POSIX_C_SOURCE
-#include <sys/types.h>
-#include <sys/signal.h>
-],[int x = SIGWINCH],
- [cf_cv_define_sigwinch=maybe],
- [cf_cv_define_sigwinch=no])
-])
-])
-
-if test "$cf_cv_define_sigwinch" = maybe ; then
-AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
-cf_cv_fixup_sigwinch=unknown
-cf_sigwinch=32
-while test $cf_sigwinch != 1
-do
- AC_TRY_COMPILE([
-#undef _XOPEN_SOURCE
-#undef _POSIX_SOURCE
-#undef _POSIX_C_SOURCE
-#include <sys/types.h>
-#include <sys/signal.h>
-],[
-#if SIGWINCH != $cf_sigwinch
-make an error
-#endif
-int x = SIGWINCH],
- [cf_cv_fixup_sigwinch=$cf_sigwinch
- break])
-
-cf_sigwinch=`expr $cf_sigwinch - 1`
-done
-])
-
- if test "$cf_cv_fixup_sigwinch" != unknown ; then
- CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
- fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
-dnl ---------------
-dnl signal handler, but there are some gcc depedencies in that recommendation.
-dnl Try anyway.
-AC_DEFUN([CF_SIG_ATOMIC_T],
-[
-AC_MSG_CHECKING(for signal global datatype)
-AC_CACHE_VAL(cf_cv_sig_atomic_t,[
- for cf_type in \
- "volatile sig_atomic_t" \
- "sig_atomic_t" \
- "int"
- do
- AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <signal.h>
-#include <stdio.h>
-
-extern $cf_type x;
-$cf_type x;
-static void handler(int sig)
-{
- x = 5;
-}],
- [signal(SIGINT, handler);
- x = 1],
- [cf_cv_sig_atomic_t=$cf_type],
- [cf_cv_sig_atomic_t=no])
- test "$cf_cv_sig_atomic_t" != no && break
- done
- ])
-AC_MSG_RESULT($cf_cv_sig_atomic_t)
-test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
-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 CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
-dnl --------------
-dnl For each parameter, test if the source-directory exists, and if it contains
-dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
-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"
-TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
-if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
-else
- TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
- TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
-fi
-
-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"
- TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
- else
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
- fi
- fi
- fi
-done
-AC_MSG_RESULT($cf_cv_src_modules)
-
-TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
-TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
-
-AC_SUBST(TEST_ARGS)
-AC_SUBST(TEST_DEPS)
-
-AC_SUBST(TEST_ARG2)
-AC_SUBST(TEST_DEP2)
-
-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 CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
-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 CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
-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 CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
-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 CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
-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 CF_SUBST version: 4 updated: 2006/06/17 12:33:03
-dnl --------
-dnl Shorthand macro for substituting things that the user may override
-dnl with an environment variable.
-dnl
-dnl $1 = long/descriptive name
-dnl $2 = environment variable
-dnl $3 = default value
-AC_DEFUN([CF_SUBST],
-[AC_CACHE_VAL(cf_cv_subst_$2,[
-AC_MSG_CHECKING(for $1 (symbol $2))
-CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
-cf_cv_subst_$2=[$]$2
-AC_MSG_RESULT([$]$2)
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
-dnl -----------
-dnl Shorthand macro for substituting things that the user may override
-dnl with an environment variable.
-dnl
-dnl $1 = condition to pass to "test"
-dnl $2 = environment variable
-dnl $3 = value if the test succeeds
-dnl $4 = value if the test fails
-AC_DEFUN([CF_SUBST_IF],
-[
-if test $1 ; then
- $2=$3
-ifelse($4,,,[else
- $2=$4])
-fi
-AC_SUBST($2)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
-dnl ------------------------
-dnl Get the version-number for use in shared-library naming, etc.
-AC_DEFUN([CF_SUBST_NCURSES_VERSION],
-[
-AC_REQUIRE([CF_PROG_EGREP])
-NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
-NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
-NCURSES_PATCH="`$ac_cv_prog_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_builtin_bool)
-AC_SUBST(cf_cv_header_stdbool_h)
-AC_SUBST(cf_cv_type_of_bool)dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
-dnl ------------------
-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 CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
-dnl ---------------
-dnl Define a top_builddir symbol, for applications that need an absolute path.
-AC_DEFUN([CF_TOP_BUILDDIR],
-[
-top_builddir=`pwd`
-AC_SUBST(top_builddir)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
-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_MSG_CHECKING([for type of chtype])
-AC_CACHE_VAL(cf_cv_typeof_chtype,[
- AC_TRY_RUN([
-#define WANT_BITS 31
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- char *result = "long";
- if (sizeof(unsigned long) > sizeof(unsigned int)) {
- int n;
- unsigned int x, y;
- for (n = 0; n < WANT_BITS; n++) {
- x = (1 << n);
- 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);
- }
- ${cf_cv_main_return:-return}(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)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
-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 CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
-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 CF_UPPER version: 5 updated: 2001/01/29 23:40:59
-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 CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
-dnl ----------
-dnl Use AC_VERBOSE w/o the warnings
-AC_DEFUN([CF_VERBOSE],
-[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
-CF_MSG_LOG([$1])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
-dnl -------------
-dnl Check if type wide-character type $1 is declared, and if so, which header
-dnl file is needed. The second parameter is used to set a shell variable when
-dnl the type is not found. The first parameter sets a shell variable for the
-dnl opposite sense.
-AC_DEFUN([CF_WCHAR_TYPE],
-[
-# This is needed on Tru64 5.0 to declare $1
-AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
-AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif],
- [$1 state],
- [cf_cv_$1=no],
- [AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif],
- [$1 value],
- [cf_cv_$1=yes],
- [cf_cv_$1=unknown])])])
-
-if test "$cf_cv_$1" = yes ; then
- AC_DEFINE(NEED_WCHAR_H)
- NEED_WCHAR_H=1
-fi
-
-ifelse($2,,,[
-# if we do not find $1 in either place, use substitution to provide a fallback.
-if test "$cf_cv_$1" = unknown ; then
- $2=1
-fi
-])
-ifelse($3,,,[
-# if we find $1 in either place, use substitution to provide a fallback.
-if test "$cf_cv_$1" != unknown ; then
- $3=1
-fi
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
-dnl -------------------
-dnl Allow library's ABI to be overridden. Generally this happens when a
-dnl packager has incremented the ABI past that used in the original package,
-dnl and wishes to keep doing this.
-dnl
-dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
-dnl symbol.
-AC_DEFUN([CF_WITH_ABI_VERSION],[
-test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
-AC_ARG_WITH(abi-version,
-[ --with-abi-version=XXX override derived ABI version],
-[AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
- cf_cv_abi_version=$withval])
- CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
-ifelse($1,,,[
-$1_ABI=$cf_cv_abi_version
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
-dnl ----------------
-dnl Configure-option for dbmalloc. The optional parameter is used to override
-dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
-AC_DEFUN([CF_WITH_DBMALLOC],[
-CF_NO_LEAKS_OPTION(dbmalloc,
- [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
- [USE_DBMALLOC])
-
-if test "$with_dbmalloc" = yes ; then
- AC_CHECK_HEADER(dbmalloc.h,
- [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
-dnl ---------------
-dnl Configure-option for dmalloc. The optional parameter is used to override
-dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
-AC_DEFUN([CF_WITH_DMALLOC],[
-CF_NO_LEAKS_OPTION(dmalloc,
- [ --with-dmalloc test: use Gray Watson's dmalloc library],
- [USE_DMALLOC])
-
-if test "$with_dmalloc" = yes ; then
- AC_CHECK_HEADER(dmalloc.h,
- [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
-dnl -----------
-dnl
-dnl The option parameter (if neither yes/no) is assumed to be the name of
-dnl the gpm library, e.g., for dynamic loading.
-AC_DEFUN([CF_WITH_GPM],
-[
-AC_MSG_CHECKING(if you want to link with the GPM mouse library)
-AC_ARG_WITH(gpm,
- [ --with-gpm use Alessandro Rubini's GPM library],
- [with_gpm=$withval],
- [with_gpm=maybe])
-AC_MSG_RESULT($with_gpm)
-
-if test "$with_gpm" != no ; then
- AC_CHECK_HEADER(gpm.h,[
- AC_DEFINE(HAVE_GPM_H)
- if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
- CF_VERBOSE(assuming we really have GPM library)
- AC_DEFINE(HAVE_LIBGPM)
- else
- AC_CHECK_LIB(gpm,Gpm_Open,[:],[
- AC_MSG_ERROR(Cannot link with GPM library)
- fi
- with_gpm=yes
- ])
- ],[
- test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
- with_gpm=no
- ])
-fi
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
-dnl ---------------
-dnl Provide a configure option to incorporate libtool. Define several useful
-dnl symbols for the makefile rules.
-dnl
-dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
-dnl macros from libtool.m4 which is in the aclocal directory of automake.
-dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
-dnl But that still does not work properly since the macro is expanded outside
-dnl the CF_WITH_LIBTOOL macro:
-dnl
-dnl #!/bin/sh
-dnl ACLOCAL=`aclocal --print-ac-dir`
-dnl if test -z "$ACLOCAL" ; then
-dnl echo cannot find aclocal directory
-dnl exit 1
-dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
-dnl echo cannot find libtool.m4 file
-dnl exit 1
-dnl fi
-dnl
-dnl LOCAL=aclocal.m4
-dnl ORIG=aclocal.m4.orig
-dnl
-dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
-dnl rm -f $ORIG
-dnl mv $LOCAL $ORIG
-dnl
-dnl # sed the LIBTOOL= assignment to omit the current directory?
-dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
-dnl cat $ORIG >>$LOCAL
-dnl
-dnl autoconf-257 $*
-dnl
-AC_DEFUN([CF_WITH_LIBTOOL],
-[
-ifdef([AC_PROG_LIBTOOL],,[
-LIBTOOL=
-])
-# common library maintenance symbols that are convenient for libtool scripts:
-LIB_CREATE='${AR} -cr'
-LIB_OBJECT='${OBJECTS}'
-LIB_SUFFIX=.a
-LIB_PREP="$RANLIB"
-
-# symbols used to prop libtool up to enable it to determine what it should be
-# doing:
-LIB_CLEAN=
-LIB_COMPILE=
-LIB_LINK='${CC}'
-LIB_INSTALL=
-LIB_UNINSTALL=
-
-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" != "no"; then
-ifdef([AC_PROG_LIBTOOL],[
- # missing_content_AC_PROG_LIBTOOL{{
- AC_PROG_LIBTOOL
- # missing_content_AC_PROG_LIBTOOL}}
-],[
- if test "$with_libtool" != "yes" ; then
- CF_PATH_SYNTAX(with_libtool)
- LIBTOOL=$with_libtool
- else
- AC_PATH_PROG(LIBTOOL,libtool)
- fi
- if test -z "$LIBTOOL" ; then
- AC_MSG_ERROR(Cannot find libtool)
- fi
-])dnl
- LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
- LIB_OBJECT='${OBJECTS:.o=.lo}'
- LIB_SUFFIX=.la
- LIB_CLEAN='${LIBTOOL} --mode=clean'
- LIB_COMPILE='${LIBTOOL} --mode=compile'
- LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
- LIB_INSTALL='${LIBTOOL} --mode=install'
- LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
- LIB_PREP=:
-
- # Show the version of libtool
- AC_MSG_CHECKING(version of libtool)
-
- # Save the version in a cache variable - this is not entirely a good
- # thing, but the version string from libtool is very ugly, and for
- # bug reports it might be useful to have the original string.
- cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
- AC_MSG_RESULT($cf_cv_libtool_version)
- if test -z "$cf_cv_libtool_version" ; then
- AC_MSG_ERROR(This is not GNU libtool)
- fi
-
- # special hack to add --tag option for C++ compiler
- case $cf_cv_libtool_version in
- 1.[[5-9]]*|[[2-9]]*)
- LIBTOOL_CXX="$LIBTOOL --tag=CXX"
- LIBTOOL="$LIBTOOL --tag=CC"
- ;;
- *)
- LIBTOOL_CXX="$LIBTOOL"
- ;;
- esac
-else
- LIBTOOL=""
- LIBTOOL_CXX=""
-fi
-
-test -z "$LIBTOOL" && ECHO_LT=
-
-AC_SUBST(LIBTOOL)
-AC_SUBST(LIBTOOL_CXX)
-AC_SUBST(LIBTOOL_OPTS)
-
-AC_SUBST(LIB_CREATE)
-AC_SUBST(LIB_OBJECT)
-AC_SUBST(LIB_SUFFIX)
-AC_SUBST(LIB_PREP)
-
-AC_SUBST(LIB_CLEAN)
-AC_SUBST(LIB_COMPILE)
-AC_SUBST(LIB_LINK)
-AC_SUBST(LIB_INSTALL)
-AC_SUBST(LIB_UNINSTALL)
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
-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
-if ifelse($5,,true,[test -n "$5"]) ; then
-CF_PATH_SYNTAX(withval)
-fi
-$3="$withval"
-AC_SUBST($3)dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
-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
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PTHREAD version: 1 updated: 2008/03/29 13:42:21
-dnl ---------------
-dnl Check for POSIX thread library.
-AC_DEFUN([CF_WITH_PTHREAD],
-[
-AC_MSG_CHECKING(if you want to link with the pthread library)
-AC_ARG_WITH(pthread,
- [ --with-pthread use POSIX thread library],
- [with_pthread=$withval],
- [with_pthread=no])
-AC_MSG_RESULT($with_pthread)
-
-if test "$with_pthread" != no ; then
- AC_CHECK_HEADER(pthread.h,[
- AC_DEFINE(HAVE_PTHREADS_H)
- AC_CHECK_LIB(pthread,pthread_create,[
- LIBS="-lpthread $LIBS"
- AC_DEFINE(HAVE_LIBPTHREADS)
- with_pthread=yes
- ],[
- AC_MSG_ERROR(Cannot link with pthread library)
- ])
- ])
-fi
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
-dnl -------------------
-dnl Allow library's release-version to be overridden. Generally this happens when a
-dnl packager has incremented the release-version past that used in the original package,
-dnl and wishes to keep doing this.
-dnl
-dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
-dnl and {package}_MINOR symbols
-dnl symbol.
-AC_DEFUN([CF_WITH_REL_VERSION],[
-test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
-AC_ARG_WITH(rel-version,
-[ --with-rel-version=XXX override derived release version],
-[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
- cf_cv_rel_version=$withval])
-ifelse($1,,[
- CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
-],[
- $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
- $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
- CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
- CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
-dnl ----------------
-dnl If we can compile with sysmouse, make it available unless it is not wanted.
-AC_DEFUN([CF_WITH_SYSMOUSE],[
-# not everyone has "test -c"
-if test -c /dev/sysmouse 2>/dev/null ; then
-AC_MSG_CHECKING(if you want to use sysmouse)
-AC_ARG_WITH(sysmouse,
- [ --with-sysmouse use sysmouse (FreeBSD console)],
- [cf_with_sysmouse=$withval],
- [cf_with_sysmouse=maybe])
- if test "$cf_with_sysmouse" != no ; then
- AC_TRY_COMPILE([
-#include <osreldate.h>
-#if (__FreeBSD_version >= 400017)
-#include <sys/consio.h>
-#include <sys/fbio.h>
-#else
-#include <machine/console.h>
-#endif
-],[
- struct mouse_info the_mouse;
- ioctl(0, CONS_MOUSECTL, &the_mouse);
-],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
- fi
-AC_MSG_RESULT($cf_with_sysmouse)
-test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
-dnl ----------------
-AC_DEFUN([CF_WITH_VALGRIND],[
-CF_NO_LEAKS_OPTION(valgrind,
- [ --with-valgrind test: use valgrind],
- [USE_VALGRIND])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
-dnl ---------------
-dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
-dnl or adapt to the vendor's definitions to get equivalent functionality,
-dnl without losing the common non-POSIX features.
-dnl
-dnl Parameters:
-dnl $1 is the nominal value for _XOPEN_SOURCE
-dnl $2 is the nominal value for _POSIX_C_SOURCE
-AC_DEFUN([CF_XOPEN_SOURCE],[
-
-AC_REQUIRE([CF_PROG_CC_U_D])
-
-cf_XOPEN_SOURCE=ifelse($1,,500,$1)
-cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
-
-case $host_os in #(vi
-aix[[45]]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
- ;;
-freebsd*) #(vi
- # 5.x headers associate
- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
- cf_POSIX_C_SOURCE=200112L
- cf_XOPEN_SOURCE=600
- CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- ;;
-hpux*) #(vi
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
- ;;
-irix[[56]].*) #(vi
- CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
- ;;
-linux*|gnu*|k*bsd*-gnu) #(vi
- CF_GNU_SOURCE
- ;;
-mirbsd*) #(vi
- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
- ;;
-netbsd*) #(vi
- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
- ;;
-openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
- ;;
-osf[[45]]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
- ;;
-nto-qnx*) #(vi
- CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
- ;;
-sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
-solaris*) #(vi
- CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
- ;;
-*)
- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
- CPPFLAGS="$cf_save"
- ])
-])
- if test "$cf_cv_xopen_source" != no ; then
- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
- test "$cf_cv_cc_u_d_options" = yes && \
- CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
- fi
- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
-esac
-])
diff --git a/contrib/ncurses/announce.html.in b/contrib/ncurses/announce.html.in
deleted file mode 100644
index 84d5bbe127c7..000000000000
--- a/contrib/ncurses/announce.html.in
+++ /dev/null
@@ -1,600 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id: announce.html.in,v 1.64 2006/12/17 23:31:26 tom Exp $
- ****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
--->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses @VERSION@</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-
-<H1>Announcing ncurses @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 encouraged the keepers of
-Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
-ncurses.<P>
-
-The ncurses code was developed under GNU/Linux.
-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/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A>&nbsp;.
-<br>It is also available at
-<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
-
-<H1>Release Notes</H1>
-
-This release is designed to be upward compatible from ncurses 5.0 through 5.5;
-very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.5 release.
-<p>
-Interface changes:
-<ul>
- <li>generate linkable stubs for some macros:
- <br>
- getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
- getpary, getpary,
- <br>
- and (for libncursesw)
- <br>
- wgetbkgrnd
-
-</ul>
-New features and improvements:
-<ul>
- <li>library
- <ul>
- <li>support hashed databases for the terminal descriptions.
- This uses the Berkeley database, has been tested for
- several versions on different platforms.
-
- <li>add <code>use_legacy_coding()</code> function to support
- lynx's font-switching feature.
-
- <li>add extension <code>nofilter()</code>, to cancel a prior
- <code>filter()</code> call.
-
- <li>add/install a package config script, e.g.,
- <code>ncurses5-config</code> or
- <code>ncursesw5-config</code>, according to
- configuration options.
-
- <li>provide ifdef for <code>NCURSES_NOMACROS</code> which
- suppresses most macro definitions from curses.h, i.e.,
- where a macro is defined to override a function to improve
- performance.
-
- <li>make ifdef's consistent in <code>curses.h</code> for the
- extended colors so the header file can be used for the
- normal curses library. The header file installed for
- extended colors is a variation of the wide-character
- configuration.
-
- <li>improve <code>tgetstr()</code> by making the return value
- point into the user's buffer, if provided.
-
- <li>add ifdef's allowing ncurses to be built with
- <code>tparm()</code> using either varargs (the existing
- status), or using a fixed-parameter list (to match X/Open).
-
- <li>widen the test for xterm <code>kmous</code> a little to
- <code>allow</code> for other
- strings than "\E[M", e.g., for <code>xterm-sco</code>
- functionality in xterm.
-
- <li>modify <code>wgetnstr()</code> to return
- <code>KEY_RESIZE</code> if a sigwinch occurs.
-
- <li>move prototypes for wide-character trace functions from
- curses.tail to curses.wide to avoid accidental reference to
- those if <code>_XOPEN_SOURCE_EXTENDED</code> is defined
- without ensuring that &lt;wchar.h&gt; is included.
-
- <li>change the way shared libraries (other than libtool) are
- installed. Rather than copying the build-tree's libraries,
- link the shared objects into the install directory. This
- makes the <code>--with-rpath</code> option work except with
- <code>$(DESTDIR)</code>.
-
- <li>several improvements for rendering in hpterm. These are
- only available if the library is configured using
- <code>--enable-xmc-glitch</code>.
-
- <li>Add <code>NCURSES_NO_HARD_TABS</code> and
- <code>NCURSES_NO_MAGIC_COOKIE</code> environment variables
- to allow runtime suppression of the related hard-tabs and
- xmc-glitch features.
- </ul>
-
- <li>programs:
- <ul>
- <li>add new test programs: chgat.c, demo_altkeys.c,
- echochar.c, foldkeys.c, movewindow.c, redraw.c, (noting
- that existing test programs also were modified to test
- additional features).
-
- <li>modify tack to test extended capability function-key
- strings.
-
- <li>modify toe to access termcap data, e.g., via <code>cgetent()</code>
- functions, or as a text file if those are not available.
-
- <li>improve infocmp/tic <code>-f</code> option formatting.
-
- <li>add <code>toe -a</code> option, to show all databases.
- This uses new private interfaces in the ncurses library for
- iterating through the list of databases.
-
- <li>modify <code>MKfallback.sh</code> to use
- <code>tic&nbsp;-x</code> when constructing fallback tables to
- allow extended capabilities to be retrieved from a fallback entry.
- </ul>
-
- <li>terminal database
- <ul>
- <li>add terminfo entries for xfce terminal (xfce) and multi gnome terminal (mgt)
- <li>add nsterm-16color entry
- <li>updated mlterm terminfo entry
- <li>add kon, kon2 and jfbterm terminfo entry
- <li>remove invis capability from klone+sgr, mainly used by linux entry, since it does not really do this
- <li>add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
- <li>add shifted up/down arrow codes to xterm-new as kind/kri strings
- <li>add hpterm-color terminfo entry
- <li>add 256color variants of terminfo entries for programs which are reported to implement this feature
- <li>correct order of use-clauses in rxvt-basic entry which made codes for f1-f4 vt100-style rather than vt220-style.
- </ul>
-</ul>
-Major bug fixes:
-<ul>
- <li>correct a typo in configure <code>--with-bool</code> option for the
- case where <code>--without-cxx</code> is used.
-
- <li>move assignment from environment variable <code>ESCDELAY</code>
- from <code>initscr()</code> down to <code>newterm()</code> so the
- environment variable affects timeouts for terminals opened with
- newterm() as well.
-
- <li>modify <code>werase</code> to clear multicolumn characters that
- extend into a derived window.
-
- <li>modify <code>wchgat()</code> to mark updated cells as changed so a
- refresh will repaint those cells.
-
- <li>correct logic in <code>wadd_wch()</code> and
- <code>wecho_wch()</code>, which did not guard against passing the
- multi-column attribute into a call on <code>waddch()</code>, e.g.,
- using data returned by <code>win_wch()</code>
-
- <li>fix redrawing of windows other than <code>stdscr</code> using
- <code>wredrawln()</code> by touching the corresponding rows in
- <code>curscr</code>.
-
- <li>reduce memory leaks in repeated calls to <code>tgetent()</code> by
- remembering the last <code>TERMINAL*</code> value allocated to hold
- the corresponding data and freeing that if the
- <code>tgetent()</code> result buffer is the same as the previous
- call.
-
- <li>modify <code>read_termtype()</code> so the <code>term_names</code>
- data is always allocated as part of the <code>str_table</code>, a
- better fix for a memory leak.
-
- <li>fix <code>wins_nwstr(),</code> which did not handle single-column
- non-8bit codes.
-
- <li>modify <code>wbkgrnd()</code> to avoid clearing the
- <code>A_CHARTEXT</code> attribute bits since those record the state
- of multicolumn characters.
-
- <li>improve <code>SIGWINCH</code> handling by postponing its effect
- during <code>newterm()</code>, etc., when allocating screens.
-
- <li>remove 970913 feature for copying subwindows as they are moved in
- <code>mvwin()</code>.
-
- <li>add checks in <code>waddchnstr()</code> and
- <code>wadd_wchnstr()</code> to stop copying when a null character
- is found.
-
- <li>add some checks to ensure current position is within scrolling
- region before scrolling on a new line.
-
- <li>add a workaround to ACS mapping to allow applications such as
- test/blue.c to use the "PC ROM" characters by masking them with
- A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
- of legacy coding.
-</ul>
-
-Portability:
-<ul>
- <li>configure script:
- <ul>
- <li>new options:
- <dl>
-
- <dt>--with-hashed-db
- <dd>Use Berkeley hashed database for storing terminfo data rather than storing
- each compiled entry in a separate binary file within a directory
- tree.
-
- <dt>--without-dlsym
- <dd>Do not use <code>dlsym()</code> to load GPM dynamically.
-
- <dt>--with-valgrind
- <dd>Simplify building for testing with valgrind.
-
- <dt>--enable-wgetch-events
- <dd>Compile with experimental wgetch-events code.
-
- <dt>--enable-signed-char
- <dd>Store booleans in "signed char" rather than "char".
-
- </dl>
-
- <li>improved options:
- <dl>
-
- <dt>--disable-largefile
- <dd>make the option work both ways.
-
- <dt>--with-gpm
- <dd>The option now accepts a parameter,
- i.e., the name of the dynamic GPM library to load via
- <code>dlopen()</code>
-
- <dt>--disable-symlinks
- <dd>The option now allows one to
- disable <code>symlink()</code> in <code>tic</code> even when
- <code>link()</code> does not work.
-
- </dl>
-
- </ul>
-
- <li>other configure/build issues: <ul> <li>remove special case for
- Darwin in <code>CF_XOPEN_SOURCE</code> configure macro.
-
- <li>add configure check to ensure that <code>SIGWINCH</code> is
- defined on platforms such as OS X which exclude that when
- <code>_XOPEN_SOURCE,</code> etc., are defined
-
- <li>use ld's <code>-search_paths_first</code> option on Darwin
- to work around odd search rules on that platform.
-
- <li>improve ifdef's for <code>_POSIX_VDISABLE</code> in tset to
- work with Mac OS X.
-
- <li>modify configure script to ensure that if the C compiler is
- used rather than the loader in making shared libraries, the
- <code>$(CFLAGS)</code> variable is also used.
-
- <li>use <code>${CC}</code> rather than <code>${LD}</code> in
- shared library rules for IRIX64, Solaris to help ensure
- that initialization sections are provided for extra linkage
- requirements, e.g., of C++ applications.
-
- <li>improve some shared-library configure scripting for Linux,
- FreeBSD and NetBSD to make
- <code>--with-shlib-version</code> work.
-
- <li>split up dependency of <code>names.c</code> and
- <code>codes.c</code> in <code>ncurses/Makefile</code> to
- work with parallel make.
-
- <li>modify <code>MKlib_gen.sh</code> to change
- preprocessor-expanded <code>_Bool</code> back to <code>bool</code>.
-
- <li>modify <code>progs/Makefile.in</code> to make
- <code>tput&nbsp;init</code> work properly with cygwin,
- i.e., do not pass a <code>.exe</code> in the reference
- string used in check_aliases.
- </ul>
-
- <li>library:
- <ul>
- <li>ignore wide-acs line-drawing characters that
- <code>wcwidth()</code> claims are not one-column. This is
- a workaround for Solaris' broken locale support.
-
- <li>reduce name-pollution in <code>term.h</code> by removing
- <code>#define</code>'s for HAVE_xxx symbols.
-
- <li>fix <code>#ifdef</code> in <code>c++/internal.h</code> for
- QNX 6.1
- </ul>
-
- <li>test programs: <ul> <li>modify <code>test/configure</code> script
- to allow building test programs with PDCurses/X11.
-
- <li>modified test programs to allow some to work with NetBSD
- curses. Several do not because NetBSD curses implements a
- subset of X/Open curses, and also lacks much of SVr4
- additions. But it is enough for comparison.
-
- <li>improved <code>test/configure</code> to build test/ncurses
- on HPUX 11 using the vendor curses.
-
- <li>change configure script to produce
- <code>test/Makefile</code> from data file.
- </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,
-and most EXTENDED features).
-It includes 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 FreeBSD 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 modern 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/">http://invisible-island.net/cdk/</A>
-<br>
-<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a>
-<DT> ded
-<DD> directory-editor
-<br>
-<A HREF="http://invisible-island.net/ded/">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/">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="http://www.ibiblio.org/mc/">http://www.ibiblio.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>
-<br>
-<DT> pinfo
-<DD> Lynx-like info browser.
-<A HREF="http://dione.ids.pl/~pborys/software/pinfo/">http://dione.ids.pl/~pborys/software/pinfo/</A>
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<A HREF="http://www.tin.org/">http://www.tin.org/</A>
-<DT> vh-1.6
-<DD> Volks-Hypertext browser for the Jargon File
-<br>
-<A HREF="http://www.debian.org/Packages/unstable/text/vh.html">http://www.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://alioth.debian.org/projects/minicom/">
-http://alioth.debian.org/projects/minicom/</A>
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://invisible-island.net/vile/">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>
-
-Zeyd Ben-Halim
-started it from a previous package pcurses, written by Pavel Curtis.
-Eric S. Raymond
-continued development.
-J&uuml;rgen Pfeifer wrote most of the form and menu libraries.
-Ongoing work is being done by
-<A HREF="mailto:dickey@invisible-island.net">Thomas Dickey</A>.
-Thomas Dickey
-acts as the maintainer for the Free Software Foundation,
-which holds the copyright on ncurses.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-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>&nbsp;.
-
-<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 provides a newer version of the terminfo-format
-terminal description file once maintained by
-<A HREF="http://www.catb.org/~esr/terminfo/">Eric Raymond</A>&nbsp;.
-Unlike the older version, the termcap and terminfo data are provided
-in the same file, and provides several user-definable extensions
-beyond the X/Open specification.<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>&nbsp;.
-</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/contrib/ncurses/config.guess b/contrib/ncurses/config.guess
deleted file mode 100755
index 6ac1d64a47e7..000000000000
--- a/contrib/ncurses/config.guess
+++ /dev/null
@@ -1,1528 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
-
-timestamp='2008-03-12'
-
-# 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., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# 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,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 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 ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # 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.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- 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 ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-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 ;;
- sh5el) machine=sh5le-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
- # Debian GNU/NetBSD machines have a different userland, and
- # thus, need a distinct triplet. However, they do not need
- # kernel version information, so it can be replaced with a
- # suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
- Debian*)
- release='-gnu'
- ;;
- *)
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- ;;
- esac
- # 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 ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
- *:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
- *:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
- macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- *:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
- *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
- *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
- # According to Compaq, /usr/sbin/psrinfo has been available on
- # OSF/1 and Tru64 systems produced since 1995. I hope that
- # covers most systems running today. This code pipes the CPU
- # types through head -n 1, so we only detect the type of CPU 0.
- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
- "EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
- "EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
- "LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
- "EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
- "EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
- "EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
- "EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
- "EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
- "EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
- "EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
- "EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
- "EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
- "EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
- esac
- # A Pn.n version is a patched version.
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
- *:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
- *:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
- arm:riscos:*:*|arm:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
- 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 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
- DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
- DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- 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 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
- # The situation for MiNT is a little confusing. The machine name
- # can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
- # > 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 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
- m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
- 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 -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
- Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
- 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 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
- *:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
- ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
- i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
- 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 ;;
- *: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
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
- then
- echo "$SYSTEM_NAME"
- else
- echo rs6000-ibm-aix3.2.5
- fi
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit ;;
- *:AIX:*:[456])
- 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 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
- 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 -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
- fi ;;
- esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
- then
- eval $set_cc_for_build
-
- # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
- # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
- # generating 64-bit code. GNU and HP use different nomenclature:
- #
- # $ CC_FOR_BUILD=cc ./config.guess
- # => hppa2.0w-hp-hpux11.23
- # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
- # => hppa64-hp-hpux11.23
-
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
- then
- HP_ARCH="hppa2.0w"
- else
- HP_ARCH="hppa64"
- fi
- fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
- ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
- 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 -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
- CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- *:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- 5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
- case ${UNAME_MACHINE} in
- pc98)
- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
- i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
- *:Interix*:[3456]*)
- case ${UNAME_MACHINE} in
- x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- EM64T | authenticamd)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
- IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
- esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
- amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
- *:GNU:*:*)
- # the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
- *:GNU/*:*:*)
- # other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
- arm*:Linux:*:*)
- eval $set_cc_for_build
- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | grep -q __ARM_EABI__
- then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- else
- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- cris:Linux:*:*)
- echo cris-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
- echo crisv32-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
- echo frv-unknown-linux-gnu
- exit ;;
- ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- 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 | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
- #else
- CPU=
- #endif
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- or32:Linux:*:*)
- echo or32-unknown-linux-gnu
- exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-gnu
- exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-gnu
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- 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 ;;
- 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 ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-gnu
- exit ;;
- s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux
- exit ;;
- sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
- exit ;;
- x86_64:Linux:*:*)
- echo x86_64-unknown-linux-gnu
- exit ;;
- xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # 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 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit ;;
- 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
- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^LIBC/{
- s: ::g
- p
- }'`"
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
- ;;
- i*86:DYNIX/ptx:4*:*)
- # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- # earlier versions are messed up and put the nodename in both
- # sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
- 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 ;;
- 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 ;;
- i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
- i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
- i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit ;;
- i*86:*:5:[678]*)
- # UnixWare 7.x, OpenUNIX and OpenServer 6.
- case `/bin/uname -X | grep "^Machine"` in
- *486*) UNAME_MACHINE=i486 ;;
- *Pentium) UNAME_MACHINE=i586 ;;
- *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
- 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 ;;
- 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 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit ;;
- mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
- M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
- M68*:*:R3V[5678]*:*)
- test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4; exit; } ;;
- m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
- *: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 ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
- i*86:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
- *:VOS:*:*)
- # From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
- *:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- case $UNAME_PROCESSOR in
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NSE-?:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
- *:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
- BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
- DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
- *: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 ;;
- *:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
- *:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
- KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
- XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
- *:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
- *:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
- SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
- *:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
- *:*VMS:*:*)
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
- esac ;;
- *:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
- i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
- i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
- { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit ;;
- c34*)
- echo c34-convex-bsd
- exit ;;
- c38*)
- echo c38-convex-bsd
- exit ;;
- c4*)
- echo c4-convex-bsd
- exit ;;
- 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
-
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
-and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-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/contrib/ncurses/config.sub b/contrib/ncurses/config.sub
deleted file mode 100755
index d89676ebe7c0..000000000000
--- a/contrib/ncurses/config.sub
+++ /dev/null
@@ -1,1662 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
-# Free Software Foundation, Inc.
-
-timestamp='2008-03-08'
-
-# 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., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# 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,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 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 ;;
- --version | -v )
- echo "$version" ; exit ;;
- --help | --h* | -h )
- echo "$usage"; exit ;;
- -- ) # 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 ;;
-
- * )
- 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* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
- storm-chaos* | os2-emx* | 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 | -knuth | -cray)
- 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
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -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/'`
- ;;
- -sco5v6*)
- # 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] \
- | am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
- | bfin \
- | c4x | clipper \
- | d10v | d30v | dlx | dsp16xx \
- | fido | fr30 | frv \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | mt \
- | msp430 \
- | nios | nios2 \
- | ns16k | ns32k \
- | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- | pyramid \
- | score \
- | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu | strongarm \
- | tahoe | thumb | tic4x | tic80 | tron \
- | v850 | v850e \
- | we32k \
- | x86 | xc16x | xscale | xscalee[bl] | 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)
- ;;
- ms1)
- basic_machine=mt-unknown
- ;;
-
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # 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-* | avr32-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | craynv-* | cydra-* \
- | d10v-* | d30v-* | dlx-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | m32c- | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nios-* | nios2-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- | pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
- | tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
- | tron-* \
- | v850-* | v850e-* | vax-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
- # 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
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- 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
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- 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
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- 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
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- 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
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- 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
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- 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
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
- 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
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
- 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
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- 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
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-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-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`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
- ;;
- rdos)
- basic_machine=i386-pc
- os=-rdos
- ;;
- 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
- ;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
- ;;
- sei)
- basic_machine=mips-sei
- os=-seiux
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sh5el)
- basic_machine=sh5le-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- 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
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tic55x | c55x*)
- basic_machine=tic55x-unknown
- os=-coff
- ;;
- tic6x | c6x*)
- basic_machine=tic6x-unknown
- os=-coff
- ;;
- tile*)
- basic_machine=tile-unknown
- os=-linux-gnu
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
- ;;
- 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
- ;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- 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
- ;;
- mmix)
- basic_machine=mmix-knuth
- ;;
- 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
- ;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
- ;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- 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
- ;;
- *-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* | -knetbsd* | -mirbsd* | -netbsd* \
- | -openbsd* | -solidbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto-qnx*)
- ;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux-dietlibc)
- os=-linux-dietlibc
- ;;
- -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
- ;;
- -os400*)
- os=-os400
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -syllable*)
- os=-syllable
- ;;
- -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
- ;;
- -tpf*)
- os=-tpf
- ;;
- -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
- ;;
- -aros*)
- os=-aros
- ;;
- -kaos*)
- os=-kaos
- ;;
- -zvmoe)
- os=-zvmoe
- ;;
- -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
- score-*)
- os=-elf
- ;;
- spu-*)
- os=-elf
- ;;
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
- # 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
- ;;
- mep-*)
- os=-elf
- ;;
- 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
- ;;
- *-haiku)
- os=-haiku
- ;;
- *-ibm)
- os=-aix
- ;;
- *-knuth)
- os=-mmixware
- ;;
- *-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
- ;;
- -os400*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -tpf*)
- vendor=ibm
- ;;
- -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
-
-# 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/contrib/ncurses/configure b/contrib/ncurses/configure
deleted file mode 100755
index 7ef479b76e8a..000000000000
--- a/contrib/ncurses/configure
+++ /dev/null
@@ -1,17673 +0,0 @@
-#! /bin/sh
-# From configure.in Revision: 1.433 .
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52.20080325.
-#
-# 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"
-# 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=
-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-rel-version=XXX override derived release version
- --with-abi-version=XXX override derived ABI version
- --with-system-type=XXX test: override derived host system-type
- --without-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
- --enable-mixed-case tic should assume mixed-case filenames
- --with-install-prefix prefixes actual install-location ($DESTDIR)
-Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
- --with-build-cc=XXX the build C compiler ($BUILD_CC)
- --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)
- --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)
- --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)
- --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)
- --with-build-libs=XXX the build libraries (${BUILD_LIBS})
-Options to Specify the Libraries Built/Used:
- --with-libtool generate libraries with libtool
- --with-shared generate shared-libraries
- --with-normal generate normal-libraries (default)
- --with-debug generate debug-libraries (default)
- --with-profile generate profile-libraries
- --with-termlib generate separate terminfo library
- --with-ticlib generate separate tic library
- --with-gpm use Alessandro Rubini's GPM library
- --without-dlsym do not use dlsym() to load GPM dynamically
- --with-sysmouse use sysmouse (FreeBSD console)
- --enable-rpath use rpath option when generating shared libraries
- --disable-relink relink shared libraries during install
- --with-shlib-version=X Specify rel or abi version for shared libs
-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-hashed-db specify hashed-database library
- --with-fallbacks=XXX specify list of fallback terminal descriptions
- --without-xterm-new specify if xterm terminfo should be old version
- --with-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
- --disable-big-strings assume compiler has only standard-size strings
- --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
- --disable-home-terminfo drop ~/.terminfo from terminfo search-path
- --disable-root-environ restrict environment when running as root
- --enable-symlinks make tic use symbolic links not hard links
- --enable-broken_linker compile with broken-linker support code
- --enable-bsdpad recognize BSD-style prefix padding
- --enable-widec compile with wide-char/UTF-8 code
- --disable-lp64 allow chtype to be long (ignore _LP64)
- --disable-largefile omit support for large files
- --disable-tparm-varargs compile tparm() without varargs interface
- --with-bool=TYPE override fallback type of bool variable
- --with-caps=alt compile with alternate Caps file
- --with-chtype=TYPE override type of chtype
- --with-ospeed=TYPE override type of ospeed variable
- --with-mmask-t=TYPE override type of mmask_t
- --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/catonly, e.g., gzip,formatted
- --with-manpage-renames specify manpage-renaming
- --with-manpage-aliases specify manpage-aliases using .so
- --with-manpage-symlinks specify manpage-aliases using 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-signed-char compile using signed Boolean's in term.h
- --enable-sigwinch compile with SIGWINCH handler
- --enable-tcap-names compile with user-definable terminal capabilities
-Development Code:
- --without-develop disable development options
- --enable-hard-tabs compile with hard-tabs code
- --enable-xmc-glitch compile with support for xmc (magic-cookie)
-Experimental Code:
- --disable-assumed-color do not assume anything about default-colors
- --disable-hashmap compile without hashmap scrolling-optimization
- --enable-colorfgbg compile with $COLORFGBG code
- --enable-ext-colors compile for experimental 256-color support
- --enable-ext-mouse compile for experimental mouse-encoding
- --with-pthread use POSIX thread library
- --enable-reentrant compile with experimental reentrant code
- --enable-safe-sprintf compile with experimental safe-sprintf code
- --disable-scroll-hints compile without scroll-hints code
- --enable-wgetch-events compile with experimental wgetch-events code
-Testing/development Options:
- --enable-echo build: display "compiling" commands (default)
- --enable-warnings build: turn on GCC compiler warnings
- --enable-assertions test: turn on generation of assertion code
- --with-dmalloc test: use Gray Watson's dmalloc library
- --with-dbmalloc test: use Conor Cahill's dbmalloc library
- --with-valgrind test: use valgrind
- --disable-leaks test: free permanent memory, analyze leaks
- --enable-expanded test: generate functions for certain macros
- --disable-macros test: use functions rather than macros
- --with-trace test: add trace() function to all models of ncurses
-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.20080325. 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:995: 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:1006: 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:1014: 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:1030: 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:1034: 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:1040: 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:1042: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:1044: 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:1063: 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:1065: 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
-ac_main_return=return
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *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:1086: PATH=\".;.\"; conftest.sh") >&5
- (PATH=".;."; conftest.sh) 2>&5
- ac_status=$?
- echo "$as_me:1089: \$? = $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"
-
-top_builddir=`pwd`
-
-echo "$as_me:1102: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:1112: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-test -z "$EGREP" && { { echo "$as_me:1116: error: No egrep program found" >&5
-echo "$as_me: error: No egrep program found" >&2;}
- { (exit 1); exit 1; }; }
-
-NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[ ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[ ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_PATCH="`$ac_cv_prog_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:1126: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
-echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
-
-test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
-
-# Check whether --with-rel-version or --without-rel-version was given.
-if test "${with_rel_version+set}" = set; then
- withval="$with_rel_version"
- { echo "$as_me:1134: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
-echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
- cf_cv_rel_version=$withval
-fi;
-
- NCURSES_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
- NCURSES_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[^.]*//' -e 's/^\.//' -e 's/\..*//'`
-
-if test -n "$NCURSES_MAJOR" ; then
- case $NCURSES_MAJOR in #(vi
- [0-9]*) #(vi
- ;;
- *)
- { { echo "$as_me:1147: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
-echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-else
- { { echo "$as_me:1153: error: Release major-version value is empty" >&5
-echo "$as_me: error: Release major-version value is empty" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-if test -n "$NCURSES_MINOR" ; then
- case $NCURSES_MINOR in #(vi
- [0-9]*) #(vi
- ;;
- *)
- { { echo "$as_me:1163: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
-echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-else
- { { echo "$as_me:1169: error: Release minor-version value is empty" >&5
-echo "$as_me: error: Release minor-version value is empty" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
-
-# Check whether --with-abi-version or --without-abi-version was given.
-if test "${with_abi_version+set}" = set; then
- withval="$with_abi_version"
- { echo "$as_me:1179: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
-echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
- cf_cv_abi_version=$withval
-fi;
-
-if test -n "$cf_cv_abi_version" ; then
- case $cf_cv_abi_version in #(vi
- [0-9]*) #(vi
- ;;
- *)
- { { echo "$as_me:1189: error: ABI version is not a number: $cf_cv_abi_version" >&5
-echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-else
- { { echo "$as_me:1195: error: ABI version value is empty" >&5
-echo "$as_me: error: ABI version value is empty" >&2;}
- { (exit 1); exit 1; }; }
-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
- 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:1217: 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:1227: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:1231: 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:1240: 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:1244: 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:1249: 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:1256: 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:1265: 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:1270: 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 || test -f $ac_aux_dir/config.guess ; then
- echo "$as_me:1278: 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:1287: 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:1292: 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:1323: 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:1327: 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:1329: 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:1337: WARNING: overriding system type to $withval" >&5
-echo "$as_me: WARNING: overriding system type to $withval" >&2;}
- cf_cv_system_name=$withval
-fi;
-
-### Save the given $CFLAGS to allow user-override.
-cf_user_CFLAGS="$CFLAGS"
-
-### Default install-location
-
-echo "$as_me:1347: checking for prefix" >&5
-echo $ECHO_N "checking for prefix... $ECHO_C" >&6
-if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
- ;;
- esac
-fi
-echo "$as_me:1359: result: $prefix" >&5
-echo "${ECHO_T}$prefix" >&6
-
-if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1363: 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:1386: 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
-ac_main_return=return
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:1400: 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:1415: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1423: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1426: 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:1435: 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:1450: 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:1458: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1461: 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:1474: 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:1489: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1497: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1500: 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:1509: 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:1524: 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:1532: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1535: 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:1548: 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:1568: 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:1590: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1593: 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:1604: 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:1619: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1627: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1630: 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:1643: 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:1658: 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:1666: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1669: 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:1681: 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:1686:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1689: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1692: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:1694: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1697: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:1699: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1702: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 1706 "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:1722: 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:1725: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:1728: \$? = $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:1751: 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:1757: 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:1762: 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:1768: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1771: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:1778: 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:1786: 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:1793: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1795: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:1798: checking for executable suffix" >&5
-echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1800: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:1803: \$? = $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:1819: 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:1825: 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:1831: 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 1837 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1849: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1852: \$? = $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:1864: 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:1871: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:1875: 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 1881 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1896: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1899: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1902: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1905: \$? = $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:1917: 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:1923: 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 1929 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1941: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1944: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1947: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1950: \$? = $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:1960: 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:1987: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1990: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1993: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1996: \$? = $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 2008 "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:2021: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2024: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2027: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2030: \$? = $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 2040 "configure"
-#include "confdefs.h"
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2052: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2055: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2058: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2061: \$? = $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_main_return=return
-
-GCC_VERSION=none
-if test "$GCC" = yes ; then
- echo "$as_me:2091: checking version of $CC" >&5
-echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
- GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
- echo "$as_me:2095: result: $GCC_VERSION" >&5
-echo "${ECHO_T}$GCC_VERSION" >&6
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ac_main_return=return
-echo "$as_me:2105: 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 2126 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:2131: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2137: \$? = $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 2160 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:2164: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2170: \$? = $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:2207: 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 2217 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:2222: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2228: \$? = $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 2251 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:2255: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2261: \$? = $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:2289: 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
-ac_main_return=return
-
-if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:2302: 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 2309 "configure"
-#include "confdefs.h"
-#include <sgtty.h>
-int 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 2324 "configure"
-#include "confdefs.h"
-#include <termio.h>
-int 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:2337: 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:2344: checking whether $CC understands -c and -o together" >&5
-echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
-if test "${cf_cv_prog_CC_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cat > conftest.$ac_ext <<CF_EOF
-#include <stdio.h>
-int main()
-{
- ${cf_cv_main_return:-return}(0);
-}
-CF_EOF
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:2360: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2363: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- test -f conftest2.$ac_objext && { (eval echo "$as_me:2365: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2368: \$? = $ac_status" >&5
- (exit $ac_status); };
-then
- eval cf_cv_prog_CC_c_o=yes
-else
- eval cf_cv_prog_CC_c_o=no
-fi
-rm -f conftest*
-
-fi
-if test $cf_cv_prog_CC_c_o = yes; then
- echo "$as_me:2379: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me:2382: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-echo "$as_me:2386: 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:2391: 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:2405: result: no" >&5
-echo "${ECHO_T}no" >&6
- ISC=
-fi
-
-echo "$as_me:2410: checking for ${CC-cc} option to accept ANSI C" >&5
-echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
-if test "${cf_cv_ansi_cc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $cf_arg
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 2504 "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:2525: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2528: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2531: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2534: \$? = $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:2547: result: $cf_cv_ansi_cc" >&5
-echo "${ECHO_T}$cf_cv_ansi_cc" >&6
-
-if test "$cf_cv_ansi_cc" != "no"; then
-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $cf_cv_ansi_cc
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-else
- cat >>confdefs.h <<\EOF
-#define CC_HAS_PROTOS 1
-EOF
-
-fi
-fi
-
-if test "$cf_cv_ansi_cc" = "no"; then
- { { echo "$as_me:2630: error: Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto" >&5
-echo "$as_me: error: Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-case $cf_cv_system_name in
-os2*)
- CFLAGS="$CFLAGS -Zmt"
- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
- CXXFLAGS="$CXXFLAGS -Zmt"
- # autoconf's macro sets -Zexe and suffix both, which conflict:w
- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
- ac_cv_exeext=.exe
- ;;
-esac
-
-PROG_EXT="$EXEEXT"
-
-test -n "$PROG_EXT" && cat >>confdefs.h <<EOF
-#define PROG_EXT "$PROG_EXT"
-EOF
-
-if test "$cross_compiling" = yes ; then
- LDCONFIG=:
-else
-case "$cf_cv_system_name" in #(vi
-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:2670: 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:2687: found $ac_dir/$ac_word" >&5
- break
-fi
-done
-
- ;;
-esac
-fi
-LDCONFIG=$ac_cv_path_LDCONFIG
-
-if test -n "$LDCONFIG"; then
- echo "$as_me:2698: result: $LDCONFIG" >&5
-echo "${ECHO_T}$LDCONFIG" >&6
-else
- echo "$as_me:2701: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- ;;
-esac
-fi
-
-echo "$as_me:2709: 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:2719: result: $cf_with_cxx" >&5
-echo "${ECHO_T}$cf_with_cxx" >&6
-if test "X$cf_with_cxx" = Xno ; then
- CXX=""
- GXX=""
-else
- # with autoconf 2.13, we can change the error to a warning:
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-ac_main_return=return
-if test -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:2737: 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:2752: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- echo "$as_me:2760: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
-else
- echo "$as_me:2763: 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:2776: 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:2791: 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:2799: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6
-else
- echo "$as_me:2802: 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:2814:" \
- "checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:2817: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:2820: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:2822: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:2825: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:2827: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:2830: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-echo "$as_me:2833: 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 2839 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2854: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2857: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2860: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2863: \$? = $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:2875: 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:2881: 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 2887 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2899: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2902: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2905: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2908: \$? = $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:2918: 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 2945 "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:2958: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2961: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2964: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2967: \$? = $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 2977 "configure"
-#include "confdefs.h"
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2989: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2992: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2995: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2998: \$? = $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
-ac_main_return=return
-
- # autoconf 2.5x removed the error - by hardcoding it to g++.
- if test "$CXX" = "g++" ; then
- # Extract the first word of "g++", so it can be a program name with args.
-set dummy g++; ac_word=$2
-echo "$as_me:3025: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $CXX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_CXX="$CXX" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_CXX="$ac_dir/$ac_word"
- echo "$as_me:3042: found $ac_dir/$ac_word" >&5
- break
-fi
-done
-
- ;;
-esac
-fi
-CXX=$ac_cv_path_CXX
-
-if test -n "$CXX"; then
- echo "$as_me:3053: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
-else
- echo "$as_me:3056: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- fi
- if test "$CXX" = "g++" ; then
- { echo "$as_me:3062: WARNING: ignoring hardcoded g++" >&5
-echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
- cf_with_cxx=no; CXX=""; GXX="";
- fi
-fi
-
-GXX_VERSION=none
-if test "$GXX" = yes; then
- echo "$as_me:3070: checking version of g++" >&5
-echo $ECHO_N "checking version of g++... $ECHO_C" >&6
- GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
- test -z "$GXX_VERSION" && GXX_VERSION=unknown
- echo "$as_me:3074: result: $GXX_VERSION" >&5
-echo "${ECHO_T}$GXX_VERSION" >&6
-fi
-
-case $GXX_VERSION in
-1*|2.[0-6]*)
- # GXX=""; CXX=""; ac_cv_prog_gxx=no
- # cf_cxx_library=no
- { echo "$as_me:3082: WARNING: templates do not work" >&5
-echo "$as_me: WARNING: templates do not work" >&2;}
- ;;
-esac
-
-echo "$as_me:3087: 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:3097: result: $cf_with_cxx_binding" >&5
-echo "${ECHO_T}$cf_with_cxx_binding" >&6
-
-echo "$as_me:3100: 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:3110: result: $cf_with_ada" >&5
-echo "${ECHO_T}$cf_with_ada" >&6
-
-echo "$as_me:3113: 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:3123: result: $cf_with_progs" >&5
-echo "${ECHO_T}$cf_with_progs" >&6
-
-echo "$as_me:3126: 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:3136: 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:3162: 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:3177: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- echo "$as_me:3185: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
- echo "$as_me:3188: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$AWK" && break
-done
-
-test -z "$AWK" && { { echo "$as_me:3195: error: No awk program found" >&5
-echo "$as_me: error: No awk program found" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:3199: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:3209: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-test -z "$EGREP" && { { echo "$as_me:3213: error: No egrep program found" >&5
-echo "$as_me: error: No egrep program found" >&2;}
- { (exit 1); exit 1; }; }
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# 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:3229: 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:3278: 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
-
-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:3303: 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:3318: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-LINT=$ac_cv_prog_LINT
-if test -n "$LINT"; then
- echo "$as_me:3326: result: $LINT" >&5
-echo "${ECHO_T}$LINT" >&6
-else
- echo "$as_me:3329: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$LINT" && break
-done
-
-echo "$as_me:3336: 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:3340: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me:3343: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6
-fi
-
-echo "$as_me:3347: 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:3386: 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:3396: checking if we should assume mixed-case filenames" >&5
-echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
-
-# Check whether --enable-mixed-case or --disable-mixed-case was given.
-if test "${enable_mixed_case+set}" = set; then
- enableval="$enable_mixed_case"
- enable_mixedcase=$enableval
-else
- enable_mixedcase=auto
-fi;
-echo "$as_me:3406: result: $enable_mixedcase" >&5
-echo "${ECHO_T}$enable_mixedcase" >&6
-if test "$enable_mixedcase" = "auto" ; then
-
-echo "$as_me:3410: 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
-
-if test "$cross_compiling" = yes ; then
- case $target_alias in #(vi
- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
- cf_cv_mixedcase=no
- ;;
- *)
- cf_cv_mixedcase=yes
- ;;
- esac
-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
-
-fi
-echo "$as_me:3437: 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
-
-else
- cf_cv_mixedcase=$enable_mixedcase
- if test "$enable_mixedcase" = "yes" ; then
- cat >>confdefs.h <<\EOF
-#define MIXEDCASE_FILENAMES 1
-EOF
-
- fi
-fi
-
-# do this after mixed-case option (tags/TAGS is not as important as tic).
-echo "$as_me:3454: 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:3474: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:3478: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-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:3485: 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:3500: 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:3509: result: $MAKE_LOWER_TAGS" >&5
-echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
-else
- echo "$as_me:3512: 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:3519: 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:3534: 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:3543: result: $MAKE_UPPER_TAGS" >&5
-echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
-else
- echo "$as_me:3546: 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
-
-echo "$as_me:3566: 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 | sed -e 's,[ ]*$,,'`
- 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 "given option \"$cf_option\", no match \"$cf_result\""
- ;;
- esac
- done
- rm -f cf_makeflags.tmp
-
-fi
-echo "$as_me:3600: result: $cf_cv_makeflags" >&5
-echo "${ECHO_T}$cf_cv_makeflags" >&6
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:3606: 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:3621: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:3629: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:3632: 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:3641: 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:3656: 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:3665: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:3668: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ld; ac_word=$2
-echo "$as_me:3680: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$LD"; then
- ac_cv_prog_LD="$LD" # 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_LD="${ac_tool_prefix}ld"
-echo "$as_me:3695: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-LD=$ac_cv_prog_LD
-if test -n "$LD"; then
- echo "$as_me:3703: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
- echo "$as_me:3706: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_LD"; then
- ac_ct_LD=$LD
- # Extract the first word of "ld", so it can be a program name with args.
-set dummy ld; ac_word=$2
-echo "$as_me:3715: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_LD"; then
- ac_cv_prog_ac_ct_LD="$ac_ct_LD" # 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_LD="ld"
-echo "$as_me:3730: found $ac_dir/$ac_word" >&5
-break
-done
-
- test -z "$ac_cv_prog_ac_ct_LD" && ac_cv_prog_ac_ct_LD="ld"
-fi
-fi
-ac_ct_LD=$ac_cv_prog_ac_ct_LD
-if test -n "$ac_ct_LD"; then
- echo "$as_me:3739: result: $ac_ct_LD" >&5
-echo "${ECHO_T}$ac_ct_LD" >&6
-else
- echo "$as_me:3742: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- LD=$ac_ct_LD
-else
- LD="$ac_cv_prog_LD"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:3754: 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="${ac_tool_prefix}ar"
-echo "$as_me:3769: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- echo "$as_me:3777: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
- echo "$as_me:3780: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_AR"; then
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-echo "$as_me:3789: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_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_ac_ct_AR="ar"
-echo "$as_me:3804: found $ac_dir/$ac_word" >&5
-break
-done
-
- test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="ar"
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- echo "$as_me:3813: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6
-else
- echo "$as_me:3816: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- AR=$ac_ct_AR
-else
- AR="$ac_cv_prog_AR"
-fi
-
-if test "${cf_cv_subst_AR_OPTS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-echo "$as_me:3829: checking for archiver options (symbol AR_OPTS)" >&5
-echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
-
-if test -z "$AR_OPTS" ; then
- AR_OPTS=rv
-
-fi
-
-cf_cv_subst_AR_OPTS=$AR_OPTS
-echo "$as_me:3838: result: $AR_OPTS" >&5
-echo "${ECHO_T}$AR_OPTS" >&6
-
-fi
-
-echo "$as_me:3843: 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:3856: result: $DESTDIR" >&5
-echo "${ECHO_T}$DESTDIR" >&6
-
-###############################################################################
-
-# If we're cross-compiling, allow the user to override the tools and their
-# options. The configure script is oriented toward identifying the host
-# compiler, etc., but we need a build compiler to generate parts of the source.
-
-if test "$cross_compiling" = yes ; then
-
- # defaults that we might want to override
- : ${BUILD_CFLAGS:=''}
- : ${BUILD_CPPFLAGS:=''}
- : ${BUILD_LDFLAGS:=''}
- : ${BUILD_LIBS:=''}
- : ${BUILD_EXEEXT:='$x'}
- : ${BUILD_OBJEXT:='o'}
-
-# Check whether --with-build-cc or --without-build-cc was given.
-if test "${with_build_cc+set}" = set; then
- withval="$with_build_cc"
- BUILD_CC="$withval"
-else
- for ac_prog in gcc cc cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:3884: 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:3899: 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:3907: result: $BUILD_CC" >&5
-echo "${ECHO_T}$BUILD_CC" >&6
-else
- echo "$as_me:3910: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$BUILD_CC" && break
-done
-
-fi;
- echo "$as_me:3918: checking for native build C compiler" >&5
-echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
- echo "$as_me:3920: result: $BUILD_CC" >&5
-echo "${ECHO_T}$BUILD_CC" >&6
-
- echo "$as_me:3923: checking for native build C preprocessor" >&5
-echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
-
-# Check whether --with-build-cpp or --without-build-cpp was given.
-if test "${with_build_cpp+set}" = set; then
- withval="$with_build_cpp"
- BUILD_CPP="$withval"
-else
- BUILD_CPP='${BUILD_CC} -E'
-fi;
- echo "$as_me:3933: result: $BUILD_CPP" >&5
-echo "${ECHO_T}$BUILD_CPP" >&6
-
- echo "$as_me:3936: checking for native build C flags" >&5
-echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
-
-# Check whether --with-build-cflags or --without-build-cflags was given.
-if test "${with_build_cflags+set}" = set; then
- withval="$with_build_cflags"
- BUILD_CFLAGS="$withval"
-fi;
- echo "$as_me:3944: result: $BUILD_CFLAGS" >&5
-echo "${ECHO_T}$BUILD_CFLAGS" >&6
-
- echo "$as_me:3947: checking for native build C preprocessor-flags" >&5
-echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
-
-# Check whether --with-build-cppflags or --without-build-cppflags was given.
-if test "${with_build_cppflags+set}" = set; then
- withval="$with_build_cppflags"
- BUILD_CPPFLAGS="$withval"
-fi;
- echo "$as_me:3955: result: $BUILD_CPPFLAGS" >&5
-echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
-
- echo "$as_me:3958: checking for native build linker-flags" >&5
-echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
-
-# Check whether --with-build-ldflags or --without-build-ldflags was given.
-if test "${with_build_ldflags+set}" = set; then
- withval="$with_build_ldflags"
- BUILD_LDFLAGS="$withval"
-fi;
- echo "$as_me:3966: result: $BUILD_LDFLAGS" >&5
-echo "${ECHO_T}$BUILD_LDFLAGS" >&6
-
- echo "$as_me:3969: checking for native build linker-libraries" >&5
-echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
-
-# Check whether --with-build-libs or --without-build-libs was given.
-if test "${with_build_libs+set}" = set; then
- withval="$with_build_libs"
- BUILD_LIBS="$withval"
-fi;
- echo "$as_me:3977: result: $BUILD_LIBS" >&5
-echo "${ECHO_T}$BUILD_LIBS" >&6
-
- # this assumes we're on Unix.
- BUILD_EXEEXT=
- BUILD_OBJEXT=o
-
- : ${BUILD_CC:='${CC}'}
-
- if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
- { { echo "$as_me:3987: error: Cross-build requires two compilers.
-Use --with-build-cc to specify the native compiler." >&5
-echo "$as_me: error: Cross-build requires two compilers.
-Use --with-build-cc to specify the native compiler." >&2;}
- { (exit 1); exit 1; }; }
- fi
-
-else
- : ${BUILD_CC:='${CC}'}
- : ${BUILD_CPP:='${CPP}'}
- : ${BUILD_CFLAGS:='${CFLAGS}'}
- : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
- : ${BUILD_LDFLAGS:='${LDFLAGS}'}
- : ${BUILD_LIBS:='${LIBS}'}
- : ${BUILD_EXEEXT:='$x'}
- : ${BUILD_OBJEXT:='o'}
-fi
-
-###############################################################################
-
-### 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=""
-
-LIBTOOL=
-
-# common library maintenance symbols that are convenient for libtool scripts:
-LIB_CREATE='${AR} -cr'
-LIB_OBJECT='${OBJECTS}'
-LIB_SUFFIX=.a
-LIB_PREP="$RANLIB"
-
-# symbols used to prop libtool up to enable it to determine what it should be
-# doing:
-LIB_CLEAN=
-LIB_COMPILE=
-LIB_LINK='${CC}'
-LIB_INSTALL=
-LIB_UNINSTALL=
-
-echo "$as_me:4028: 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:4038: result: $with_libtool" >&5
-echo "${ECHO_T}$with_libtool" >&6
-if test "$with_libtool" != "no"; then
-
- if test "$with_libtool" != "yes" ; then
-
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-case ".$with_libtool" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval with_libtool="$with_libtool"
- case ".$with_libtool" in #(vi
- .NONE/*)
- with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- { { echo "$as_me:4069: error: expected a pathname, not \"$with_libtool\"" >&5
-echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-esac
-
- LIBTOOL=$with_libtool
- else
- # Extract the first word of "libtool", so it can be a program name with args.
-set dummy libtool; ac_word=$2
-echo "$as_me:4079: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_LIBTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $LIBTOOL in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_LIBTOOL="$LIBTOOL" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_LIBTOOL="$ac_dir/$ac_word"
- echo "$as_me:4096: found $ac_dir/$ac_word" >&5
- break
-fi
-done
-
- ;;
-esac
-fi
-LIBTOOL=$ac_cv_path_LIBTOOL
-
-if test -n "$LIBTOOL"; then
- echo "$as_me:4107: result: $LIBTOOL" >&5
-echo "${ECHO_T}$LIBTOOL" >&6
-else
- echo "$as_me:4110: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- fi
- if test -z "$LIBTOOL" ; then
- { { echo "$as_me:4116: error: Cannot find libtool" >&5
-echo "$as_me: error: Cannot find libtool" >&2;}
- { (exit 1); exit 1; }; }
- fi
- LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
- LIB_OBJECT='${OBJECTS:.o=.lo}'
- LIB_SUFFIX=.la
- LIB_CLEAN='${LIBTOOL} --mode=clean'
- LIB_COMPILE='${LIBTOOL} --mode=compile'
- LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
- LIB_INSTALL='${LIBTOOL} --mode=install'
- LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
- LIB_PREP=:
-
- # Show the version of libtool
- echo "$as_me:4131: checking version of libtool" >&5
-echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
-
- # Save the version in a cache variable - this is not entirely a good
- # thing, but the version string from libtool is very ugly, and for
- # bug reports it might be useful to have the original string.
- cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
- echo "$as_me:4138: result: $cf_cv_libtool_version" >&5
-echo "${ECHO_T}$cf_cv_libtool_version" >&6
- if test -z "$cf_cv_libtool_version" ; then
- { { echo "$as_me:4141: error: This is not GNU libtool" >&5
-echo "$as_me: error: This is not GNU libtool" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- # special hack to add --tag option for C++ compiler
- case $cf_cv_libtool_version in
- 1.[5-9]*|[2-9]*)
- LIBTOOL_CXX="$LIBTOOL --tag=CXX"
- LIBTOOL="$LIBTOOL --tag=CC"
- ;;
- *)
- LIBTOOL_CXX="$LIBTOOL"
- ;;
- esac
-else
- LIBTOOL=""
- LIBTOOL_CXX=""
-fi
-
-test -z "$LIBTOOL" && ECHO_LT=
-
-if test "$with_libtool" != "no" ; then
-
-cf_list_models="$cf_list_models libtool"
-
-else
-
-echo "$as_me:4169: 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:4179: result: $with_shared" >&5
-echo "${ECHO_T}$with_shared" >&6
-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-
-echo "$as_me:4183: 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:4193: result: $with_normal" >&5
-echo "${ECHO_T}$with_normal" >&6
-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
-
-echo "$as_me:4197: 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:4207: result: $with_debug" >&5
-echo "${ECHO_T}$with_debug" >&6
-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
-
-echo "$as_me:4211: 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:4221: result: $with_profile" >&5
-echo "${ECHO_T}$with_profile" >&6
-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
-
-fi
-
-###############################################################################
-
-echo "$as_me:4229: checking for specified models" >&5
-echo $ECHO_N "checking for specified models... $ECHO_C" >&6
-test -z "$cf_list_models" && cf_list_models=normal
-test "$with_libtool" != "no" && cf_list_models=libtool
-echo "$as_me:4233: 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:4238: 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:4241: result: $DFT_LWR_MODEL" >&5
-echo "${ECHO_T}$DFT_LWR_MODEL" >&6
-
-DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-TICS_NAME=tic
-
-TINFO_NAME=tinfo
-
-LIB_NAME=ncurses
-
-LIB_DIR=../lib
-LIB_2ND=../../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:4268: 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:4278: result: $with_termlib" >&5
-echo "${ECHO_T}$with_termlib" >&6
-
-echo "$as_me:4281: checking if you want to build a separate tic library" >&5
-echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6
-
-# Check whether --with-ticlib or --without-ticlib was given.
-if test "${with_ticlib+set}" = set; then
- withval="$with_ticlib"
- with_ticlib=$withval
-else
- with_ticlib=no
-fi;
-echo "$as_me:4291: result: $with_ticlib" >&5
-echo "${ECHO_T}$with_ticlib" >&6
-
-### Checks for special libraries, must be done up-front.
-SHLIB_LIST=""
-
-echo "$as_me:4297: 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=maybe
-fi;
-echo "$as_me:4307: result: $with_gpm" >&5
-echo "${ECHO_T}$with_gpm" >&6
-
-if test "$with_gpm" != no ; then
- echo "$as_me:4311: checking for gpm.h" >&5
-echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
-if test "${ac_cv_header_gpm_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4317 "configure"
-#include "confdefs.h"
-#include <gpm.h>
-_ACEOF
-if { (eval echo "$as_me:4321: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:4327: \$? = $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_gpm_h=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_gpm_h=no
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:4346: result: $ac_cv_header_gpm_h" >&5
-echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
-if test $ac_cv_header_gpm_h = yes; then
-
- cat >>confdefs.h <<\EOF
-#define HAVE_GPM_H 1
-EOF
-
- if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
- test -n "$verbose" && echo " assuming we really have GPM library" 1>&6
-
-echo "${as_me-configure}:4357: testing assuming we really have GPM library ..." 1>&5
-
- cat >>confdefs.h <<\EOF
-#define HAVE_LIBGPM 1
-EOF
-
- else
- echo "$as_me:4364: 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 4372 "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:4391: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4394: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4397: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4400: \$? = $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:4411: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
-if test $ac_cv_lib_gpm_Gpm_Open = yes; then
- :
-else
-
- { { echo "$as_me:4417: error: Cannot link with GPM library" >&5
-echo "$as_me: error: Cannot link with GPM library" >&2;}
- { (exit 1); exit 1; }; }
- fi
- with_gpm=yes
-
-fi
-
-else
-
- test "$with_gpm" != maybe && { echo "$as_me:4427: WARNING: Cannot find GPM header" >&5
-echo "$as_me: WARNING: Cannot find GPM header" >&2;}
- with_gpm=no
-
-fi
-
-fi
-
-if test "$with_gpm" != no ; then
- echo "$as_me:4436: checking if you want to load GPM dynamically" >&5
-echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6
-
-# Check whether --with-dlsym or --without-dlsym was given.
-if test "${with_dlsym+set}" = set; then
- withval="$with_dlsym"
- with_dlsym=$withval
-else
- with_dlsym=yes
-fi;
- echo "$as_me:4446: result: $with_dlsym" >&5
-echo "${ECHO_T}$with_dlsym" >&6
- if test "$with_dlsym" = yes ; then
-
-cf_have_dlsym=no
-echo "$as_me:4451: checking for dlsym" >&5
-echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
-if test "${ac_cv_func_dlsym+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4457 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlsym (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlsym ();
-char (*f) ();
-
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_dlsym) || defined (__stub___dlsym)
-choke me
-#else
-f = dlsym;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4488: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4491: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4494: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4497: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_dlsym=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_dlsym=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:4507: result: $ac_cv_func_dlsym" >&5
-echo "${ECHO_T}$ac_cv_func_dlsym" >&6
-if test $ac_cv_func_dlsym = yes; then
- cf_have_dlsym=yes
-else
-
-cf_have_libdl=no
-echo "$as_me:4514: checking for dlsym in -ldl" >&5
-echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlsym+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4522 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlsym ();
-int
-main ()
-{
-dlsym ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4541: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4544: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4547: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4550: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dl_dlsym=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_dl_dlsym=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4561: result: $ac_cv_lib_dl_dlsym" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
-if test $ac_cv_lib_dl_dlsym = yes; then
-
- cf_have_dlsym=yes
- cf_have_libdl=yes
-fi
-
-fi
-
-if test "$cf_have_dlsym" = yes ; then
- test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
-
- echo "$as_me:4574: checking whether able to link to dl*() functions" >&5
-echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
-#line 4577 "configure"
-#include "confdefs.h"
-#include <dlfcn.h>
-int
-main ()
-{
-
- void *obj;
- if ((obj = dlopen("filename", 0)) != 0) {
- if (dlsym(obj, "symbolname") == 0) {
- dlclose(obj);
- }
- }
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4595: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4598: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4601: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4604: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cat >>confdefs.h <<\EOF
-#define HAVE_LIBDL 1
-EOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- { { echo "$as_me:4615: error: Cannot link test program for libdl" >&5
-echo "$as_me: error: Cannot link test program for libdl" >&2;}
- { (exit 1); exit 1; }; }
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- echo "$as_me:4620: result: ok" >&5
-echo "${ECHO_T}ok" >&6
-else
- { { echo "$as_me:4623: error: Cannot find dlsym function" >&5
-echo "$as_me: error: Cannot find dlsym function" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
- if test "$with_gpm" != yes ; then
- test -n "$verbose" && echo " assuming soname for gpm is $with_gpm" 1>&6
-
-echo "${as_me-configure}:4631: testing assuming soname for gpm is $with_gpm ..." 1>&5
-
- cf_cv_gpm_soname="$with_gpm"
- else
-
-echo "$as_me:4636: checking for soname of gpm library" >&5
-echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
-if test "${cf_cv_gpm_soname+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cf_cv_gpm_soname=unknown
-if test "$cross_compiling" != yes ; then
-cat >conftest.$ac_ext <<CF_EOF
-#include <gpm.h>
-int main()
-{
-if (Gpm_Open(0,0)) Gpm_Close();
- ${cf_cv_main_return:-return}(0);
-}
-CF_EOF
-cf_save_LIBS="$LIBS"
- LIBS="-lgpm $LIBS"
- if { (eval echo "$as_me:4654: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4657: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- if { (eval echo "$as_me:4659: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4662: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.`
- test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
- fi
- fi
-rm -f conftest*
-LIBS="$cf_save_LIBS"
-fi
-
-fi
-echo "$as_me:4673: result: $cf_cv_gpm_soname" >&5
-echo "${ECHO_T}$cf_cv_gpm_soname" >&6
-
- fi
- test "$cf_cv_gpm_soname" != "unknown" && cat >>confdefs.h <<EOF
-#define LIBGPM_SONAME "$cf_cv_gpm_soname"
-EOF
-
- SHLIB_LIST="-ldl $SHLIB_LIST"
- else
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- fi
- cat >>confdefs.h <<\EOF
-#define HAVE_LIBGPM 1
-EOF
-
-echo "$as_me:4689: checking for Gpm_Wgetch in -lgpm" >&5
-echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
-if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgpm $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4697 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char Gpm_Wgetch ();
-int
-main ()
-{
-Gpm_Wgetch ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4716: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4719: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4722: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4725: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_Gpm_Wgetch=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_gpm_Gpm_Wgetch=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4736: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
-echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
-if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then
-
-echo "$as_me:4740: checking if GPM is weakly bound to curses library" >&5
-echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6
-if test "${cf_cv_check_gpm_wgetch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cf_cv_check_gpm_wgetch=unknown
-if test "$cross_compiling" != yes ; then
-
-cat >conftest.$ac_ext <<CF_EOF
-#include <gpm.h>
-int main()
-{
- Gpm_Wgetch();
- ${cf_cv_main_return:-return}(0);
-}
-CF_EOF
-
- cf_save_LIBS="$LIBS"
- # This only works if we can look at the symbol table. If a shared
- # library is stripped for install, we cannot use that. So we're forced
- # to rely on the static library, noting that some packagers may not
- # include it.
- LIBS="-static -lgpm -dynamic $LIBS"
- if { (eval echo "$as_me:4764: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4767: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- if { (eval echo "$as_me:4769: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4772: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[vVwW]\>'`
- test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
- test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
- fi
- fi
- rm -f conftest*
- LIBS="$cf_save_LIBS"
-fi
-
-fi
-echo "$as_me:4784: result: $cf_cv_check_gpm_wgetch" >&5
-echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6
-
-if test "$cf_cv_check_gpm_wgetch" != yes ; then
- { echo "$as_me:4788: WARNING: GPM library is already linked with curses - read the FAQ" >&5
-echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
-fi
-
-fi
-
-fi
-
-# not everyone has "test -c"
-if test -c /dev/sysmouse 2>/dev/null ; then
-echo "$as_me:4798: checking if you want to use sysmouse" >&5
-echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
-
-# Check whether --with-sysmouse or --without-sysmouse was given.
-if test "${with_sysmouse+set}" = set; then
- withval="$with_sysmouse"
- cf_with_sysmouse=$withval
-else
- cf_with_sysmouse=maybe
-fi;
- if test "$cf_with_sysmouse" != no ; then
- cat >conftest.$ac_ext <<_ACEOF
-#line 4810 "configure"
-#include "confdefs.h"
-
-#include <osreldate.h>
-#if (__FreeBSD_version >= 400017)
-#include <sys/consio.h>
-#include <sys/fbio.h>
-#else
-#include <machine/console.h>
-#endif
-
-int
-main ()
-{
-
- struct mouse_info the_mouse;
- ioctl(0, CONS_MOUSECTL, &the_mouse);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4833: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4836: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4839: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4842: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_with_sysmouse=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_with_sysmouse=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-echo "$as_me:4852: result: $cf_with_sysmouse" >&5
-echo "${ECHO_T}$cf_with_sysmouse" >&6
-test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
-#define USE_SYSMOUSE 1
-EOF
-
-fi
-
-if test X"$CC_G_OPT" = X"" ; then
- CC_G_OPT='-g'
- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
-fi
-
-if test X"$CXX_G_OPT" = X"" ; then
- CXX_G_OPT='-g'
- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
-fi
-
-echo "$as_me:4870: 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:4879: result: $LD_MODEL" >&5
-echo "${ECHO_T}$LD_MODEL" >&6
-
-case $DFT_LWR_MODEL in
-shared)
-echo "$as_me:4884: 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:4894: result: $cf_cv_ld_rpath" >&5
-echo "${ECHO_T}$cf_cv_ld_rpath" >&6
-echo "$as_me:4896: checking if shared libraries should be relinked during install" >&5
-echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6
-
-# Check whether --enable-relink or --disable-relink was given.
-if test "${enable_relink+set}" = set; then
- enableval="$enable_relink"
- cf_cv_do_relink=$enableval
-else
- cf_cv_do_relink=yes
-fi;
-echo "$as_me:4906: result: $cf_cv_do_relink" >&5
-echo "${ECHO_T}$cf_cv_do_relink" >&6
- ;;
-esac
-
- LOCAL_LDFLAGS=
- LOCAL_LDFLAGS2=
- LD_SHARED_OPTS=
- INSTALL_LIB="-m 644"
-
- cf_cv_do_symlinks=no
-
- echo "$as_me:4918: 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:4933: 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:4942: 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:4951: 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 4958 "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:4970: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4973: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4976: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4979: \$? = $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:4988: 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} ${CFLAGS} -o $@ -Xlinker -soname=`basename $@` -nostart -e 0'
- ;;
- cygwin*)
- CC_SHARED_OPTS=
- MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
- cf_cv_shlib_version=cygdll
- cf_cv_shlib_version_infix=cygdll
- cat >mk_shared_lib.sh <<-CF_EOF
- #!/bin/sh
- SHARED_LIB=\$1
- IMPORT_LIB=\`echo "\$1" | sed -e 's/cyg/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\`
- shift
- cat <<-EOF
- Linking shared library
- ** SHARED_LIB \$SHARED_LIB
- ** IMPORT_LIB \$IMPORT_LIB
-EOF
- exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB}
-CF_EOF
- chmod +x mk_shared_lib.sh
- ;;
- darwin*)
- EXTRA_CFLAGS="-no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
- cf_cv_shlib_version_infix=yes
- echo "$as_me:5024: checking if ld -search_paths_first works" >&5
-echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
-if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cf_save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- cat >conftest.$ac_ext <<_ACEOF
-#line 5033 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5045: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:5048: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:5051: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:5054: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ldflags_search_paths_first=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_ldflags_search_paths_first=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$cf_save_LDFLAGS
-fi
-echo "$as_me:5065: result: $cf_cv_ldflags_search_paths_first" >&5
-echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
- if test $cf_cv_ldflags_search_paths_first = yes; then
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- fi
- ;;
- hpux*)
- # (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
- if test "$GCC" = yes; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
- else
- cf_ld_rpath_opt="-rpath "
- EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
- fi
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $@` -o $@'
- cf_cv_rm_so_locs=yes
- ;;
- linux*|gnu*|k*bsd*-gnu)
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $@'
- ;;
- openbsd[2-9].*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $@.${ABI_VERSION}` -o $@'
- ;;
- openbsd*|freebsd[12].*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='${LD} -Bshareable -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- freebsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
- LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
- cf_ld_rpath_opt="-rpath "
- EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $@` -o $@'
- ;;
- 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,\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
- if test "$cf_cv_shlib_version" = auto; then
- if test -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=abi
- else
- cf_cv_shlib_version=rel
- fi
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- if test "$cf_cv_shlib_version" = rel; then
- cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname' -o $@'
- 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,\$(LOCAL_LIBDIR)"
- 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 "$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 "$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 "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${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
- if test "$cf_cv_shlib_version" = rel; then
- cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
- else
- cf_shared_soname='`basename $@`'
- fi
-
- MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $@'
- ;;
- sysv5uw7*|unix_sv*)
- # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
- if test "$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 "$as_me:5261: 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:5269: 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 5274 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5286: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:5289: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:5292: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:5295: \$? = $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:5305: 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:5314: 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:5324: 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:5334: result: $with_overwrite" >&5
-echo "${ECHO_T}$with_overwrite" >&6
-
-echo "$as_me:5337: 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:5347: 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:5369: 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:5377: result: $TERMINFO_SRC" >&5
-echo "${ECHO_T}$TERMINFO_SRC" >&6
-
- echo "$as_me:5380: checking whether to use hashed database instead of directory/tree" >&5
-echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6
-
-# Check whether --with-hashed-db or --without-hashed-db was given.
-if test "${with_hashed_db+set}" = set; then
- withval="$with_hashed_db"
-
-else
- with_hashed_db=no
-fi;
- echo "$as_me:5390: result: $with_hashed_db" >&5
-echo "${ECHO_T}$with_hashed_db" >&6
-fi
-
-echo "$as_me:5394: 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:5404: result: $with_fallback" >&5
-echo "${ECHO_T}$with_fallback" >&6
-FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
-
-echo "$as_me:5408: checking if you want modern xterm or antique" >&5
-echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
-
-# Check whether --with-xterm-new or --without-xterm-new was given.
-if test "${with_xterm_new+set}" = set; then
- withval="$with_xterm_new"
- with_xterm_new=$withval
-else
- with_xterm_new=yes
-fi;
-case $with_xterm_new in
-no) with_xterm_new=xterm-old;;
-*) with_xterm_new=xterm-new;;
-esac
-echo "$as_me:5422: result: $with_xterm_new" >&5
-echo "${ECHO_T}$with_xterm_new" >&6
-WHICH_XTERM=$with_xterm_new
-
-MAKE_TERMINFO=
-if test "$use_database" = no ; then
- TERMINFO="${datadir}/terminfo"
- MAKE_TERMINFO="#"
-else
-
-echo "$as_me:5432: 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
-
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-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%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- { { echo "$as_me:5472: 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:5485: 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:5491: 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; if test -n "${datadir}/terminfo" ; then
-
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- { { echo "$as_me:5527: error: expected a pathname, not \"$withval\"" >&5
-echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-esac
-
-fi
-TERMINFO="$withval"
-
-echo "$as_me:5536: 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:5546: 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 5558 "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;
- ${cf_cv_main_return:-return}(s == 0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:5572: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:5575: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:5577: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:5580: \$? = $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:5592: 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
-
-### ISO C only guarantees 512-char strings, we have tables which load faster
-### when constructed using "big" strings.
-echo "$as_me:5600: checking if big-strings option selected" >&5
-echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6
-
-# Check whether --enable-big-strings or --disable-big-strings was given.
-if test "${enable_big_strings+set}" = set; then
- enableval="$enable_big_strings"
- with_big_strings=no
-else
- with_big_strings=yes
-fi;
-echo "$as_me:5610: result: $with_big_strings" >&5
-echo "${ECHO_T}$with_big_strings" >&6
-
-USE_BIG_STRINGS=0
-test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
-
-### use option --enable-termcap to compile in the termcap fallback support
-echo "$as_me:5617: 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:5627: 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:5633: 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
-
-if test "$with_ticlib" != no ; then
- { { echo "$as_me:5645: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
-echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-cat >>confdefs.h <<\EOF
-#define USE_TERMCAP 1
-EOF
-
-echo "$as_me:5654: 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
-
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-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%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- { { echo "$as_me:5694: 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:5707: 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:5714: 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:5724: 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:5730: 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:5740: 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 --disable-home-terminfo to completely remove ~/.terminfo
-echo "$as_me:5749: checking if ~/.terminfo is wanted" >&5
-echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
-
-# Check whether --enable-home-terminfo or --disable-home-terminfo was given.
-if test "${enable_home_terminfo+set}" = set; then
- enableval="$enable_home_terminfo"
- with_home_terminfo=$enableval
-else
- with_home_terminfo=yes
-fi;
-echo "$as_me:5759: result: $with_home_terminfo" >&5
-echo "${ECHO_T}$with_home_terminfo" >&6
-test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
-#define USE_HOME_TERMINFO 1
-EOF
-
-echo "$as_me:5765: checking if you want to use restricted environment when running as root" >&5
-echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6
-
-# Check whether --enable-root-environ or --disable-root-environ was given.
-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:5775: result: $with_root_environ" >&5
-echo "${ECHO_T}$with_root_environ" >&6
-test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
-#define USE_ROOT_ENVIRON 1
-EOF
-
-### Use option --enable-symlinks to make tic use symlinks, not hard links
-### to reduce storage requirements for the terminfo database.
-
-for ac_func in \
- remove \
- unlink
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5789: 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 5795 "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:5826: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:5829: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:5832: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:5835: \$? = $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:5845: 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 "$cross_compiling" = yes ; then
-
-for ac_func in \
- link \
- symlink
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5862: 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 5868 "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:5899: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:5902: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:5905: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:5908: \$? = $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:5918: 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:5929: 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 5942 "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
- ${cf_cv_main_return:-return} (fail);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:5972: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:5975: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:5977: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:5980: \$? = $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:5998: 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
-
-# soft links (symbolic links) are useful for some systems where hard links do
-# not work, or to make it simpler to copy terminfo trees around.
-if test "$ac_cv_func_symlink" = yes ; then
- echo "$as_me:6016: 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:6026: result: $with_symlinks" >&5
-echo "${ECHO_T}$with_symlinks" >&6
-fi
-
-# If we have hard links and did not choose to use soft links instead, there is
-# no reason to make this choice optional - use the hard links.
-if test "$with_symlinks" = no ; then
- echo "$as_me:6033: 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:6040: result: $with_links" >&5
-echo "${ECHO_T}$with_links" >&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:6053: 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-no}
-fi;
-echo "$as_me:6063: 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
-
-echo "${as_me-configure}:6083: testing cygwin linker is broken anyway ..." 1>&5
-
- ;;
- esac
-fi
-
-### use option --enable-bsdpad to have tputs process BSD-style prefix padding
-echo "$as_me:6090: 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:6100: result: $with_bsdpad" >&5
-echo "${ECHO_T}$with_bsdpad" >&6
-test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
-#define BSD_TPUTS 1
-EOF
-
-### use option --enable-widec to turn on use of wide-character support
-NCURSES_CH_T=chtype
-NCURSES_LIBUTF8=0
-
-NEED_WCHAR_H=0
-NCURSES_MBSTATE_T=0
-NCURSES_WCHAR_T=0
-NCURSES_WINT_T=0
-
-# Check to define _XOPEN_SOURCE "automatically"
-
-echo "$as_me:6117: checking if $CC -U and -D options work together" >&5
-echo $ECHO_N "checking if $CC -U and -D options work together... $ECHO_C" >&6
-if test "${cf_cv_cc_u_d_options+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cf_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
- cat >conftest.$ac_ext <<_ACEOF
-#line 6126 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
-#ifndef U_D_OPTIONS
-make an undefined-error
-#endif
-#ifdef D_U_OPTIONS
-make a defined-error
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6145: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6148: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6151: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6154: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_cc_u_d_options=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- cf_cv_cc_u_d_options=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS="$cf_save_CPPFLAGS"
-
-fi
-echo "$as_me:6168: result: $cf_cv_cc_u_d_options" >&5
-echo "${ECHO_T}$cf_cv_cc_u_d_options" >&6
-
-cf_XOPEN_SOURCE=500
-cf_POSIX_C_SOURCE=199506L
-
-case $host_os in #(vi
-aix[45]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
- ;;
-freebsd*) #(vi
- # 5.x headers associate
- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
- cf_POSIX_C_SOURCE=200112L
- cf_XOPEN_SOURCE=600
- CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- ;;
-hpux*) #(vi
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
- ;;
-irix[56].*) #(vi
- CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
- ;;
-linux*|gnu*|k*bsd*-gnu) #(vi
-
-echo "$as_me:6194: 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 6201 "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:6216: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6219: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6222: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6225: \$? = $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 6234 "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:6249: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6252: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6255: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6258: \$? = $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:6273: result: $cf_cv_gnu_source" >&5
-echo "${ECHO_T}$cf_cv_gnu_source" >&6
-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-
- ;;
-mirbsd*) #(vi
- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
- ;;
-netbsd*) #(vi
- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
- ;;
-openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
- ;;
-osf[45]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
- ;;
-nto-qnx*) #(vi
- CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
- ;;
-sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
-solaris*) #(vi
- CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
- ;;
-*)
- echo "$as_me:6300: checking if we should define _XOPEN_SOURCE" >&5
-echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
-if test "${cf_cv_xopen_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 6307 "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:6322: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6325: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6328: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6331: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_xopen_source=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
-#line 6340 "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:6355: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6358: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6361: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6364: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_xopen_source=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_xopen_source=$cf_XOPEN_SOURCE
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS="$cf_save"
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-echo "$as_me:6379: result: $cf_cv_xopen_source" >&5
-echo "${ECHO_T}$cf_cv_xopen_source" >&6
- if test "$cf_cv_xopen_source" != no ; then
-
-# remove _XOPEN_SOURCE symbol from $CFLAGS
-CFLAGS=`echo "$CFLAGS" | \
- sed -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?$//g'`
-
-# remove _XOPEN_SOURCE symbol from $CPPFLAGS
-CPPFLAGS=`echo "$CPPFLAGS" | \
- sed -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?$//g'`
-
- test "$cf_cv_cc_u_d_options" = yes && \
- CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
- fi
-
-cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-
-# remove _POSIX_C_SOURCE symbol from $cf_save_CFLAGS
-cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
- sed -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?$//g'`
-
-# remove _POSIX_C_SOURCE symbol from $cf_save_CPPFLAGS
-cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
- sed -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?$//g'`
-
-echo "$as_me:6413: checking if we should define _POSIX_C_SOURCE" >&5
-echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
-if test "${cf_cv_posix_c_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-echo "${as_me-configure}:6419: testing if the symbol is already defined go no further ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 6422 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int
-main ()
-{
-
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6437: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6440: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6443: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6446: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_posix_c_source=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_want_posix_source=no
- case .$cf_POSIX_C_SOURCE in #(vi
- .[12]??*) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- ;;
- .2) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- cf_want_posix_source=yes
- ;;
- .*)
- cf_want_posix_source=yes
- ;;
- esac
- if test "$cf_want_posix_source" = yes ; then
- cat >conftest.$ac_ext <<_ACEOF
-#line 6467 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int
-main ()
-{
-
-#ifdef _POSIX_SOURCE
-make an error
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6482: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6485: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6488: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6491: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-
-echo "${as_me-configure}:6502: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-
-echo "${as_me-configure}:6507: testing if the second compile does not leave our definition intact error ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 6510 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int
-main ()
-{
-
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6525: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6528: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6531: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6534: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_posix_c_source=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$cf_save_CFLAGS"
- CPPFLAGS="$cf_save_CPPFLAGS"
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-echo "$as_me:6550: result: $cf_cv_posix_c_source" >&5
-echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-
-if test "$cf_cv_posix_c_source" != no ; then
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS"
- if test "$cf_cv_cc_u_d_options" = yes ; then
- cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
- sed -e 's/-D/-U/g' -e 's/=[^ ]*//g'`
- CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
- fi
- CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
-fi
-
- ;;
-esac
-
-# Work around breakage on OS X
-
-echo "$as_me:6569: checking if SIGWINCH is defined" >&5
-echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
-if test "${cf_cv_define_sigwinch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 6576 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/signal.h>
-
-int
-main ()
-{
-int x = SIGWINCH
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6591: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6594: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6597: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6600: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_define_sigwinch=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 6607 "configure"
-#include "confdefs.h"
-
-#undef _XOPEN_SOURCE
-#undef _POSIX_SOURCE
-#undef _POSIX_C_SOURCE
-#include <sys/types.h>
-#include <sys/signal.h>
-
-int
-main ()
-{
-int x = SIGWINCH
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6625: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6628: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6631: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6634: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_define_sigwinch=maybe
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_define_sigwinch=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-echo "$as_me:6648: result: $cf_cv_define_sigwinch" >&5
-echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
-
-if test "$cf_cv_define_sigwinch" = maybe ; then
-echo "$as_me:6652: checking for actual SIGWINCH definition" >&5
-echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
-if test "${cf_cv_fixup_sigwinch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cf_cv_fixup_sigwinch=unknown
-cf_sigwinch=32
-while test $cf_sigwinch != 1
-do
- cat >conftest.$ac_ext <<_ACEOF
-#line 6663 "configure"
-#include "confdefs.h"
-
-#undef _XOPEN_SOURCE
-#undef _POSIX_SOURCE
-#undef _POSIX_C_SOURCE
-#include <sys/types.h>
-#include <sys/signal.h>
-
-int
-main ()
-{
-
-#if SIGWINCH != $cf_sigwinch
-make an error
-#endif
-int x = SIGWINCH
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6685: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6688: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6691: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6694: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_fixup_sigwinch=$cf_sigwinch
- break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-cf_sigwinch=`expr $cf_sigwinch - 1`
-done
-
-fi
-echo "$as_me:6708: result: $cf_cv_fixup_sigwinch" >&5
-echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
-
- if test "$cf_cv_fixup_sigwinch" != unknown ; then
- CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
- fi
-fi
-
-# Checks for CODESET support.
-
- echo "$as_me:6718: checking for nl_langinfo and CODESET" >&5
-echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
-if test "${am_cv_langinfo_codeset+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 6724 "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:6736: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:6739: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:6742: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6745: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- am_cv_langinfo_codeset=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-am_cv_langinfo_codeset=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-echo "$as_me:6756: result: $am_cv_langinfo_codeset" >&5
-echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
- if test $am_cv_langinfo_codeset = yes; then
-
-cat >>confdefs.h <<\EOF
-#define HAVE_LANGINFO_CODESET 1
-EOF
-
- fi
-
-# use these variables to work around a defect in gcc's fixincludes.
-NCURSES_OK_WCHAR_T=
-NCURSES_OK_WINT_T=
-
-echo "$as_me:6770: checking if you want wide-character code" >&5
-echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
-
-# Check whether --enable-widec or --disable-widec was given.
-if test "${enable_widec+set}" = set; then
- enableval="$enable_widec"
- with_widec=$enableval
-else
- with_widec=no
-fi;
-echo "$as_me:6780: 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
-
-echo "$as_me:6788: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line 6791 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int
-main ()
-{
-
-#ifndef _XOPEN_SOURCE_EXTENDED
-make an error
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6807: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6810: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6813: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6816: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_result=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_result=yes
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:6825: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
-
-if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-elif test "x" != "x" ; then
- echo "$as_me:6831: checking checking for compatible value versus " >&5
-echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
-#line 6834 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int
-main ()
-{
-
-#if _XOPEN_SOURCE_EXTENDED- < 0
-make an error
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6850: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6853: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6856: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6859: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_result=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_result=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- echo "$as_me:6868: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
- fi
-fi
-
- # with_overwrite=no
- NCURSES_CH_T=cchar_t
-
-for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:6882: 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 6888 "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:6919: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:6922: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:6925: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6928: \$? = $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:6938: 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_func_putwc" != yes ; then
-
-echo "$as_me:6950: 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 6959 "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:6972: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:6975: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:6978: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6981: \$? = $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:6993: 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:7010: 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 7017 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-mbstate_t state
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7035: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7038: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7041: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7044: \$? = $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 7051 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-mbstate_t value
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7070: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7073: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7076: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7079: \$? = $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:7091: result: $cf_cv_mbstate_t" >&5
-echo "${ECHO_T}$cf_cv_mbstate_t" >&6
-
-if test "$cf_cv_mbstate_t" = yes ; then
- cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
-EOF
-
- NEED_WCHAR_H=1
-fi
-
-# if we do not find mbstate_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_mbstate_t" = unknown ; then
- NCURSES_MBSTATE_T=1
-fi
-
-# This is needed on Tru64 5.0 to declare wchar_t
-echo "$as_me:7108: checking if we must include wchar.h to declare wchar_t" >&5
-echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
-if test "${cf_cv_wchar_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 7115 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wchar_t state
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7133: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7136: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7139: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7142: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wchar_t=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 7149 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wchar_t value
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7168: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7171: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7174: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7177: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wchar_t=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_wchar_t=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:7189: result: $cf_cv_wchar_t" >&5
-echo "${ECHO_T}$cf_cv_wchar_t" >&6
-
-if test "$cf_cv_wchar_t" = yes ; then
- cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
-EOF
-
- NEED_WCHAR_H=1
-fi
-
-# if we do not find wchar_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wchar_t" = unknown ; then
- NCURSES_WCHAR_T=1
-fi
-
-# if we find wchar_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wchar_t" != unknown ; then
- NCURSES_OK_WCHAR_T=1
-fi
-
-# This is needed on Tru64 5.0 to declare wint_t
-echo "$as_me:7211: checking if we must include wchar.h to declare wint_t" >&5
-echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
-if test "${cf_cv_wint_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 7218 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wint_t state
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7236: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7239: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7242: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7245: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wint_t=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 7252 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wint_t value
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7271: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7274: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7277: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7280: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wint_t=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_wint_t=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:7292: result: $cf_cv_wint_t" >&5
-echo "${ECHO_T}$cf_cv_wint_t" >&6
-
-if test "$cf_cv_wint_t" = yes ; then
- cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
-EOF
-
- NEED_WCHAR_H=1
-fi
-
-# if we do not find wint_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wint_t" = unknown ; then
- NCURSES_WINT_T=1
-fi
-
-# if we find wint_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wint_t" != unknown ; then
- NCURSES_OK_WINT_T=1
-fi
-
- if test "$NCURSES_MBSTATE_T" != 0; then
- cat >>confdefs.h <<\EOF
-#define NEED_MBSTATE_T_DEF 1
-EOF
-
- fi
-fi
-
-### use option --disable-lp64 to allow long chtype
-case $cf_cv_abi_version in
-[345]*)
- default_with_lp64=no
- ;;
-*)
- default_with_lp64=yes
- ;;
-esac
-
-echo "$as_me:7331: checking whether to enable _LP64 definition in curses.h" >&5
-echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
-
-# Check whether --enable-lp64 or --disable-lp64 was given.
-if test "${enable_lp64+set}" = set; then
- enableval="$enable_lp64"
- with_lp64=$enableval
-else
- with_lp64=$default_with_lp64
-fi;
-echo "$as_me:7341: result: $with_lp64" >&5
-echo "${ECHO_T}$with_lp64" >&6
-
-if test "$with_lp64" = yes ; then
- cf_cv_enable_lp64=1
-else
- cf_cv_enable_lp64=0
-fi
-
-# Check whether --enable-largefile or --disable-largefile was given.
-if test "${enable_largefile+set}" = set; then
- enableval="$enable_largefile"
-
-fi;
-if test "$enable_largefile" != no; then
-
- echo "$as_me:7357: checking for special C compiler options needed for large files" >&5
-echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_largefile_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_sys_largefile_CC=no
- if test "$GCC" != yes; then
- ac_save_CC=$CC
- while :; do
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat >conftest.$ac_ext <<_ACEOF
-#line 7369 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7389: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7392: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7395: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7398: \$? = $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
- CC="$CC -n32"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7408: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7411: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7414: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7417: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_CC=' -n32'; break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext
- break
- done
- CC=$ac_save_CC
- rm -f conftest.$ac_ext
- fi
-fi
-echo "$as_me:7431: result: $ac_cv_sys_largefile_CC" >&5
-echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
- echo "$as_me:7437: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- while :; do
- ac_cv_sys_file_offset_bits=no
- cat >conftest.$ac_ext <<_ACEOF
-#line 7445 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7465: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7468: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7471: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7474: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-#line 7483 "configure"
-#include "confdefs.h"
-#define _FILE_OFFSET_BITS 64
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7504: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7507: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7510: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7513: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_file_offset_bits=64; break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- break
-done
-fi
-echo "$as_me:7524: result: $ac_cv_sys_file_offset_bits" >&5
-echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
-if test "$ac_cv_sys_file_offset_bits" != no; then
-
-cat >>confdefs.h <<EOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-EOF
-
-fi
-rm -f conftest*
- echo "$as_me:7534: checking for _LARGE_FILES value needed for large files" >&5
-echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_large_files+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- while :; do
- ac_cv_sys_large_files=no
- cat >conftest.$ac_ext <<_ACEOF
-#line 7542 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7562: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7565: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7568: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7571: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-#line 7580 "configure"
-#include "confdefs.h"
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
- We can't simply define LARGE_OFF_T to be 9223372036854775807,
- since some C++ compilers masquerading as C compilers
- incorrectly reject 9223372036854775807. */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
- int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
- && LARGE_OFF_T % 2147483647 == 1)
- ? 1 : -1];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7601: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7604: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7607: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7610: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_large_files=1; break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- break
-done
-fi
-echo "$as_me:7621: result: $ac_cv_sys_large_files" >&5
-echo "${ECHO_T}$ac_cv_sys_large_files" >&6
-if test "$ac_cv_sys_large_files" != no; then
-
-cat >>confdefs.h <<EOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-EOF
-
-fi
-rm -f conftest*
-fi
-
- if test "$enable_largefile" != no ; then
- echo "$as_me:7634: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
-if test "${ac_cv_sys_largefile_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- while :; do
- ac_cv_sys_largefile_source=no
- cat >conftest.$ac_ext <<_ACEOF
-#line 7642 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int
-main ()
-{
-return !fseeko;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7654: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7657: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7660: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7663: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-#line 7672 "configure"
-#include "confdefs.h"
-#define _LARGEFILE_SOURCE 1
-#include <stdio.h>
-int
-main ()
-{
-return !fseeko;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7685: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7688: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7691: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7694: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_source=1; break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- break
-done
-fi
-echo "$as_me:7705: result: $ac_cv_sys_largefile_source" >&5
-echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
-if test "$ac_cv_sys_largefile_source" != no; then
-
-cat >>confdefs.h <<EOF
-#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
-EOF
-
-fi
-rm -f conftest*
-
-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
-# in glibc 2.1.3, but that breaks too many other things.
-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-echo "$as_me:7719: checking for fseeko" >&5
-echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
-if test "${ac_cv_func_fseeko+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 7725 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int
-main ()
-{
-return fseeko && fseeko (stdin, 0, 0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7737: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:7740: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:7743: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7746: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_fseeko=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_fseeko=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:7756: result: $ac_cv_func_fseeko" >&5
-echo "${ECHO_T}$ac_cv_func_fseeko" >&6
-if test $ac_cv_func_fseeko = yes; then
-
-cat >>confdefs.h <<\EOF
-#define HAVE_FSEEKO 1
-EOF
-
-fi
-
- # Normally we would collect these definitions in the config.h,
- # but (like _XOPEN_SOURCE), some environments rely on having these
- # defined before any of the system headers are included. Another
- # case comes up with C++, e.g., on AIX the compiler compiles the
- # header files by themselves before looking at the body files it is
- # told to compile. For ncurses, those header files do not include
- # the config.h
- test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
- test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
- test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
-
- echo "$as_me:7777: checking whether to use struct dirent64" >&5
-echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
-if test "${cf_cv_struct_dirent64+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 7784 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <dirent.h>
-
-int
-main ()
-{
-
- /* if transitional largefile support is setup, this is true */
- extern struct dirent64 * readdir(DIR *);
- struct dirent64 *x = readdir((DIR *)0);
- struct dirent *y = readdir((DIR *)0);
- int z = x - y;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7805: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7808: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7811: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7814: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_struct_dirent64=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_struct_dirent64=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-echo "$as_me:7825: result: $cf_cv_struct_dirent64" >&5
-echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
- test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
-#define HAVE_STRUCT_DIRENT64 1
-EOF
-
- fi
-
-### use option --disable-tparm-varargs to make tparm() conform to X/Open
-echo "$as_me:7834: checking if you want tparm not to use X/Open fixed-parameter list" >&5
-echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6
-
-# Check whether --enable-tparm-varargs or --disable-tparm-varargs was given.
-if test "${enable_tparm_varargs+set}" = set; then
- enableval="$enable_tparm_varargs"
- with_tparm_varargs=$enableval
-else
- with_tparm_varargs=yes
-fi;
-echo "$as_me:7844: result: $with_tparm_varargs" >&5
-echo "${ECHO_T}$with_tparm_varargs" >&6
-NCURSES_TPARM_VARARGS=0
-test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
-
-### use option --with-bool to override bool's type
-echo "$as_me:7850: 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:7860: result: $NCURSES_BOOL" >&5
-echo "${ECHO_T}$NCURSES_BOOL" >&6
-
-echo "$as_me:7863: checking for alternate terminal capabilities file" >&5
-echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
-
-# Check whether --with-caps or --without-caps was given.
-if test "${with_caps+set}" = set; then
- withval="$with_caps"
- TERMINFO_CAPS=Caps.$withval
-else
- TERMINFO_CAPS=Caps
-fi;
-test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
-echo "$as_me:7874: result: $TERMINFO_CAPS" >&5
-echo "${ECHO_T}$TERMINFO_CAPS" >&6
-
-### use option --with-chtype to override chtype's type
-echo "$as_me:7878: checking for type of chtype" >&5
-echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
-
-# Check whether --with-chtype or --without-chtype was given.
-if test "${with_chtype+set}" = set; then
- withval="$with_chtype"
- NCURSES_CHTYPE="$withval"
-else
- NCURSES_CHTYPE=auto
-fi;
-echo "$as_me:7888: result: $NCURSES_CHTYPE" >&5
-echo "${ECHO_T}$NCURSES_CHTYPE" >&6
-
-### use option --with-ospeed to override ospeed's type
-echo "$as_me:7892: 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:7902: result: $NCURSES_OSPEED" >&5
-echo "${ECHO_T}$NCURSES_OSPEED" >&6
-
-### use option --with-mmask-t to override mmask_t's type
-echo "$as_me:7906: checking for type of mmask_t" >&5
-echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
-
-# Check whether --with-mmask-t or --without-mmask-t was given.
-if test "${with_mmask_t+set}" = set; then
- withval="$with_mmask_t"
- NCURSES_MMASK_T="$withval"
-else
- NCURSES_MMASK_T=auto
-fi;
-echo "$as_me:7916: result: $NCURSES_MMASK_T" >&5
-echo "${ECHO_T}$NCURSES_MMASK_T" >&6
-
-### Enable compiling-in rcs id's
-echo "$as_me:7920: 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:7930: 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:7938: checking format of man-pages" >&5
-echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
-
-# Check whether --with-manpage-format or --without-manpage-format was given.
-if test "${with_manpage_format+set}" = set; then
- withval="$with_manpage_format"
- MANPAGE_FORMAT=$withval
-else
- MANPAGE_FORMAT=unknown
-fi;
-
-test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
-MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
-
-cf_unknown=
-
-case $MANPAGE_FORMAT in
-unknown)
- if test -z "$MANPATH" ; then
- MANPATH="/usr/man:/usr/share/man"
- fi
-
- # look for the 'date' man-page (it's most likely to be installed!)
- MANPAGE_FORMAT=
- cf_preform=no
- cf_catonly=yes
- cf_example=date
-
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
- for cf_dir in $MANPATH; do
- test -z "$cf_dir" && cf_dir=/usr/man
- for cf_name in $cf_dir/man*/$cf_example.[01]* $cf_dir/cat*/$cf_example.[01]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
- do
- cf_test=`echo $cf_name | sed -e 's/*//'`
- if test "x$cf_test" = "x$cf_name" ; then
-
- case "$cf_name" in
- *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
- *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
- *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
- *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
- esac
-
- case "$cf_name" in
- $cf_dir/man*)
- cf_catonly=no
- ;;
- $cf_dir/cat*)
- cf_preform=yes
- ;;
- esac
- break
- fi
-
- # if we found a match in either man* or cat*, stop looking
- if test -n "$MANPAGE_FORMAT" ; then
- cf_found=no
- test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
- test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
- case "$cf_name" in
- $cf_dir/cat*)
- cf_found=yes
- ;;
- esac
- test $cf_found=yes && break
- fi
- done
- # only check the first directory in $MANPATH where we find manpages
- if test -n "$MANPAGE_FORMAT" ; then
- break
- fi
- done
- # if we did not find the example, just assume it is normal
- test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
- IFS="$ac_save_ifs"
- ;;
-*)
- for cf_option in $MANPAGE_FORMAT; do
- case $cf_option in #(vi
- gzip|compress|BSDI|normal|formatted|catonly)
- ;;
- *)
- cf_unknown="$cf_unknown $cf_option"
- ;;
- esac
- done
- ;;
-esac
-
-echo "$as_me:8027: result: $MANPAGE_FORMAT" >&5
-echo "${ECHO_T}$MANPAGE_FORMAT" >&6
-if test -n "$cf_unknown" ; then
- { echo "$as_me:8030: WARNING: Unexpected manpage-format $cf_unknown" >&5
-echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
-fi
-
-echo "$as_me:8034: 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:8062: error: not a filename: $MANPAGE_RENAMES" >&5
-echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test ! -d man && mkdir man
-
- # Construct a sed-script to perform renaming within man-pages
- if test -n "$MANPAGE_RENAMES" ; then
- test ! -d man && mkdir man
- sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
- fi
-fi
-
-echo "$as_me:8076: result: $MANPAGE_RENAMES" >&5
-echo "${ECHO_T}$MANPAGE_RENAMES" >&6
-
-echo "$as_me:8079: checking if manpage aliases will be installed" >&5
-echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
-
-# Check whether --with-manpage-aliases or --without-manpage-aliases was given.
-if test "${with_manpage_aliases+set}" = set; then
- withval="$with_manpage_aliases"
- MANPAGE_ALIASES=$withval
-else
- MANPAGE_ALIASES=yes
-fi;
-
-echo "$as_me:8090: result: $MANPAGE_ALIASES" >&5
-echo "${ECHO_T}$MANPAGE_ALIASES" >&6
-
-if test "$LN_S" = "ln -s"; then
- cf_use_symlinks=yes
-else
- cf_use_symlinks=no
-fi
-
-MANPAGE_SYMLINKS=no
-if test "$MANPAGE_ALIASES" = yes ; then
-echo "$as_me:8101: checking if manpage symlinks should be used" >&5
-echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
-
-# Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
-if test "${with_manpage_symlinks+set}" = set; then
- withval="$with_manpage_symlinks"
- MANPAGE_SYMLINKS=$withval
-else
- MANPAGE_SYMLINKS=$cf_use_symlinks
-fi;
-
-if test "$$cf_use_symlinks" = no; then
-if test "$MANPAGE_SYMLINKS" = yes ; then
- { echo "$as_me:8114: WARNING: cannot make symlinks" >&5
-echo "$as_me: WARNING: cannot make symlinks" >&2;}
- MANPAGE_SYMLINKS=no
-fi
-fi
-
-echo "$as_me:8120: result: $MANPAGE_SYMLINKS" >&5
-echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
-fi
-
-echo "$as_me:8124: 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:8135: result: $MANPAGE_TBL" >&5
-echo "${ECHO_T}$MANPAGE_TBL" >&6
-
- if test "$prefix" = "NONE" ; then
- cf_prefix="$ac_default_prefix"
- else
- cf_prefix="$prefix"
- fi
-
- case "$MANPAGE_FORMAT" in # (vi
- *catonly*) # (vi
- cf_format=yes
- cf_inboth=no
- ;;
- *formatted*) # (vi
- cf_format=yes
- cf_inboth=yes
- ;;
- *)
- cf_format=no
- cf_inboth=no
- ;;
- esac
-
-test ! -d man && mkdir man
-
-cf_so_strip=
-cf_compress=
-case "$MANPAGE_FORMAT" in #(vi
-*compress*) #(vi
- cf_so_strip="Z"
- cf_compress=compress
- ;;
-*gzip*) #(vi
- cf_so_strip="gz"
- cf_compress=gzip
- ;;
-esac
-
-cf_edit_man=./edit_man.sh
-cf_man_alias=`pwd`/man_alias.sed
-
-cat >$cf_edit_man <<CF_EOF
-#! /bin/sh
-# this script is generated by the configure-script CF_MAN_PAGES macro.
-
-prefix="$cf_prefix"
-datadir="$datadir"
-
-NCURSES_MAJOR="$NCURSES_MAJOR"
-NCURSES_MINOR="$NCURSES_MINOR"
-NCURSES_PATCH="$NCURSES_PATCH"
-
-NCURSES_OSPEED="$NCURSES_OSPEED"
-TERMINFO="$TERMINFO"
-
-MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
-
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-
-transform="$program_transform_name"
-
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
-
-form=\$1
-shift || exit 1
-
-verb=\$1
-shift || exit 1
-
-mandir=\$1
-shift || exit 1
-
-srcdir=\$1
-top_srcdir=\$srcdir/..
-shift || exit 1
-
-if test "\$form" = normal ; then
- if test "$cf_format" = yes ; then
- if test "$cf_inboth" = no ; then
- sh \$0 format \$verb \$mandir \$srcdir \$*
- exit $?
- fi
- fi
- cf_subdir=\$mandir/man
- cf_tables=$MANPAGE_TBL
-else
- cf_subdir=\$mandir/cat
- cf_tables=yes
-fi
-
-# process the list of source-files
-for i in \$* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[0-9]*)
- section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
- if test \$verb = installing ; then
- if test ! -d \$cf_subdir\${section} ; then
- \$MKDIRS \$cf_subdir\$section
- fi
- fi
-
- # replace variables in man page
- if test ! -f $cf_man_alias ; then
-cat >>$cf_man_alias <<-CF_EOF2
- s,@DATADIR@,\$datadir,g
- s,@TERMINFO@,\$TERMINFO,g
- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
-CF_EOF
-
- for cf_name in captoinfo clear infocmp infotocap tic toe tput
- do
- cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- cf_name=`echo $cf_name|sed "$program_transform_name"`
-cat >>$cf_edit_man <<-CF_EOF
- s,@$cf_NAME@,$cf_name,
-CF_EOF
- done
-
-cat >>$cf_edit_man <<CF_EOF
-CF_EOF2
- echo "...made $cf_man_alias"
- fi
-
- aliases=
- cf_source=\`basename \$i\`
- inalias=\$cf_source
- test ! -f \$inalias && inalias="\$srcdir/\$inalias"
- if test ! -f \$inalias ; then
- echo .. skipped \$cf_source
- continue
- fi
-CF_EOF
-
-if test "$MANPAGE_ALIASES" != no ; then
-cat >>$cf_edit_man <<CF_EOF
- aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
-CF_EOF
-fi
-
-if test "$MANPAGE_RENAMES" = no ; then
-cat >>$cf_edit_man <<CF_EOF
- # perform program transformations for section 1 man pages
- if test \$section = 1 ; then
- cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
- else
- cf_target=\$cf_subdir\${section}/\$cf_source
- fi
-CF_EOF
-else
-cat >>$cf_edit_man <<CF_EOF
- cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \$2}'\`
- if test -z "\$cf_target" ; then
- echo '? missing rename for '\$cf_source
- cf_target="\$cf_source"
- fi
- cf_target="\$cf_subdir\${section}/\${cf_target}"
-
-CF_EOF
-fi
-
-cat >>$cf_edit_man <<CF_EOF
- sed -f $cf_man_alias \\
-CF_EOF
-
-if test -f $MANPAGE_RENAMES ; then
-cat >>$cf_edit_man <<CF_EOF
- < \$i | sed -f `pwd`/edit_man.sed >\$TMP
-CF_EOF
-else
-cat >>$cf_edit_man <<CF_EOF
- < \$i >\$TMP
-CF_EOF
-fi
-
-cat >>$cf_edit_man <<CF_EOF
-if test \$cf_tables = yes ; then
- tbl \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-fi
-CF_EOF
-
-if test $with_curses_h != yes ; then
-cat >>$cf_edit_man <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-
-cat >>$cf_edit_man <<CF_EOF
- if test \$form = format ; then
- nroff -man \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
- fi
-CF_EOF
-
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
- if test \$verb = installing ; then
- if ( $cf_compress -f \$TMP )
- then
- mv \$TMP.$cf_so_strip \$TMP
- fi
- fi
- cf_target="\$cf_target.$cf_so_strip"
-CF_EOF
-fi
-
-case "$MANPAGE_FORMAT" in #(vi
-*BSDI*)
-cat >>$cf_edit_man <<CF_EOF
- if test \$form = format ; then
- # BSDI installs only .0 suffixes in the cat directories
- cf_target="\`echo \$cf_target|sed -e 's/\.[1-9]\+[a-z]*/.0/'\`"
- fi
-CF_EOF
- ;;
-esac
-
-cat >>$cf_edit_man <<CF_EOF
- suffix=\`basename \$cf_target | sed -e 's%^[^.]*%%'\`
- if test \$verb = installing ; then
- echo \$verb \$cf_target
- \$INSTALL_DATA \$TMP \$cf_target
- test -d \$cf_subdir\${section} &&
- test -n "\$aliases" && (
- cd \$cf_subdir\${section} && (
- cf_source=\`echo \$cf_target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
- test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
- cf_target=\`basename \$cf_target\`
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- if test "$MANPAGE_SYMLINKS" = yes ; then
- if test -f \$cf_alias\${suffix} ; then
- if ( cmp -s \$cf_target \$cf_alias\${suffix} )
- then
- continue
- fi
- fi
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$cf_target \$cf_alias\${suffix}
- elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
- echo ".so \$cf_source" >\$TMP
-CF_EOF
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
- if test -n "$cf_so_strip" ; then
- $cf_compress -f \$TMP
- mv \$TMP.$cf_so_strip \$TMP
- fi
-CF_EOF
-fi
-cat >>$cf_edit_man <<CF_EOF
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
- fi
- done
- )
- )
- elif test \$verb = removing ; then
- test -f \$cf_target && (
- echo \$verb \$cf_target
- rm -f \$cf_target
- )
- test -d \$cf_subdir\${section} &&
- test -n "\$aliases" && (
- cd \$cf_subdir\${section} && (
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- done
- )
- )
- else
-# echo ".hy 0"
- cat \$TMP
- fi
- ;;
-esac
-done
-
-if test $cf_inboth = yes ; then
-if test \$form != format ; then
- sh \$0 format \$verb \$mandir \$srcdir \$*
-fi
-fi
-
-exit 0
-CF_EOF
-chmod 755 $cf_edit_man
-
-###############################################################################
-
-### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:8446: 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:8456: 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_RESIZE_TERM 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:8493: 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:8503: 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:8510: 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:8520: 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
-
-echo "$as_me:8526: 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 8532 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:8540: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:8546: \$? = $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 8568 "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 8586 "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 8607 "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))
- $ac_main_return(2);
- $ac_main_return (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8633: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:8636: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:8638: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8641: \$? = $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:8654: 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:8670: 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 8676 "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8682: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:8685: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8688: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8691: \$? = $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:8701: 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:8711: checking for signed char" >&5
-echo $ECHO_N "checking for signed char... $ECHO_C" >&6
-if test "${ac_cv_type_signed_char+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 8717 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-if ((signed char *) 0)
- return 0;
-if (sizeof (signed char))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8732: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:8735: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8738: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8741: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_signed_char=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_signed_char=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:8751: result: $ac_cv_type_signed_char" >&5
-echo "${ECHO_T}$ac_cv_type_signed_char" >&6
-
-echo "$as_me:8754: checking size of signed char" >&5
-echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
-if test "${ac_cv_sizeof_signed_char+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$ac_cv_type_signed_char" = yes; then
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-#line 8763 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-int _array_ [1 - 2 * !((sizeof (signed char)) >= 0)]
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8775: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:8778: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8781: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8784: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_lo=0 ac_mid=0
- while :; do
- cat >conftest.$ac_ext <<_ACEOF
-#line 8789 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)]
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8801: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:8804: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8807: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8810: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_hi=$ac_mid; break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- done
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_hi=-1 ac_mid=-1
- while :; do
- cat >conftest.$ac_ext <<_ACEOF
-#line 8826 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-int _array_ [1 - 2 * !((sizeof (signed char)) >= $ac_mid)]
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8838: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:8841: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8844: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8847: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_lo=$ac_mid; break
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid`
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- done
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
- ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
- cat >conftest.$ac_ext <<_ACEOF
-#line 8863 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-int _array_ [1 - 2 * !((sizeof (signed char)) <= $ac_mid)]
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8875: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:8878: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8881: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8884: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_hi=$ac_mid
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_lo=`expr $ac_mid + 1`
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-done
-ac_cv_sizeof_signed_char=$ac_lo
-else
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:8897: 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 8902 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-FILE *f = fopen ("conftest.val", "w");
-if (!f)
- $ac_main_return (1);
-fprintf (f, "%d", (sizeof (signed char)));
-fclose (f);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8918: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:8921: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:8923: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8926: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sizeof_signed_char=`cat conftest.val`
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-rm -f conftest.val
-else
- ac_cv_sizeof_signed_char=0
-fi
-fi
-echo "$as_me:8942: result: $ac_cv_sizeof_signed_char" >&5
-echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
-cat >>confdefs.h <<EOF
-#define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
-EOF
-
-if test "$ac_cv_sizeof_signed_char" = 1 ; then
- NCURSES_SBOOL="signed char"
-else
- NCURSES_SBOOL="char"
-fi
-echo "$as_me:8953: checking if you want to use signed Boolean array in term.h" >&5
-echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
-
-# Check whether --enable-signed-char or --disable-signed-char was given.
-if test "${enable_signed_char+set}" = set; then
- enableval="$enable_signed_char"
- with_signed_char=$enableval
-else
- with_signed_char=no
-fi;
-echo "$as_me:8963: result: $with_signed_char" >&5
-echo "${ECHO_T}$with_signed_char" >&6
-test "$with_signed_char" != yes && NCURSES_SBOOL="char"
-
-### use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo "$as_me:8968: 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:8978: 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:8985: 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:8995: 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:9003: 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:9013: 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:9017: 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"
-
-else
- enable_hard_tabs=$with_develop
-fi;
-echo "$as_me:9027: result: $enable_hard_tabs" >&5
-echo "${ECHO_T}$enable_hard_tabs" >&6
-test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF
-#define USE_HARD_TABS 1
-EOF
-
-### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo "$as_me:9034: 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"
-
-else
- enable_xmc_glitch=$with_develop
-fi;
-echo "$as_me:9044: result: $enable_xmc_glitch" >&5
-echo "${ECHO_T}$enable_xmc_glitch" >&6
-test "$enable_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:9053: 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:9063: 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:9070: 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:9080: 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:9087: 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:9097: result: $with_colorfgbg" >&5
-echo "${ECHO_T}$with_colorfgbg" >&6
-test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
-#define USE_COLORFGBG 1
-EOF
-
-### use option --enable-ext-colors to turn on use of colors beyond 16.
-echo "$as_me:9104: checking if you want to use experimental extended colors" >&5
-echo $ECHO_N "checking if you want to use experimental extended colors... $ECHO_C" >&6
-
-# Check whether --enable-ext-colors or --disable-ext-colors was given.
-if test "${enable_ext_colors+set}" = set; then
- enableval="$enable_ext_colors"
- with_ext_colors=$enableval
-else
- with_ext_colors=no
-fi;
-echo "$as_me:9114: result: $with_ext_colors" >&5
-echo "${ECHO_T}$with_ext_colors" >&6
-NCURSES_EXT_COLORS=0
-if test "$with_ext_colors" = yes ; then
- if test "$with_widec" != yes ; then
- { { echo "$as_me:9119: error: This option applies only to wide-character library" >&5
-echo "$as_me: error: This option applies only to wide-character library" >&2;}
- { (exit 1); exit 1; }; }
- else
- # cannot be ABI 5 since it changes sizeof(cchar_t)
-
-if test "${with_abi_version+set}" != set; then
- case $cf_cv_rel_version in
- 5.*)
- cf_cv_rel_version=6.0
- cf_cv_abi_version=6
- { echo "$as_me:9130: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
-echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
- ;;
- esac
-fi
-
- fi
- NCURSES_EXT_COLORS=1
- cat >>confdefs.h <<\EOF
-#define NCURSES_EXT_COLORS 1
-EOF
-
-fi
-
-### use option --enable-ext-mouse to modify coding to support 5-button mice
-echo "$as_me:9145: checking if you want to use experimental extended mouse encoding" >&5
-echo $ECHO_N "checking if you want to use experimental extended mouse encoding... $ECHO_C" >&6
-
-# Check whether --enable-ext-mouse or --disable-ext-mouse was given.
-if test "${enable_ext_mouse+set}" = set; then
- enableval="$enable_ext_mouse"
- with_ext_mouse=$enableval
-else
- with_ext_mouse=no
-fi;
-echo "$as_me:9155: result: $with_ext_mouse" >&5
-echo "${ECHO_T}$with_ext_mouse" >&6
-NCURSES_MOUSE_VERSION=1
-if test "$with_ext_mouse" = yes ; then
- NCURSES_MOUSE_VERSION=2
-
-if test "${with_abi_version+set}" != set; then
- case $cf_cv_rel_version in
- 5.*)
- cf_cv_rel_version=6.0
- cf_cv_abi_version=6
- { echo "$as_me:9166: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
-echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
- ;;
- esac
-fi
-
-fi
-
-# This is still experimental (20080329), but should ultimately be moved to
-# the script-block --with-normal, etc.
-
-echo "$as_me:9177: checking if you want to link with the pthread library" >&5
-echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
-
-# Check whether --with-pthread or --without-pthread was given.
-if test "${with_pthread+set}" = set; then
- withval="$with_pthread"
- with_pthread=$withval
-else
- with_pthread=no
-fi;
-echo "$as_me:9187: result: $with_pthread" >&5
-echo "${ECHO_T}$with_pthread" >&6
-
-if test "$with_pthread" != no ; then
- echo "$as_me:9191: checking for pthread.h" >&5
-echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
-if test "${ac_cv_header_pthread_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 9197 "configure"
-#include "confdefs.h"
-#include <pthread.h>
-_ACEOF
-if { (eval echo "$as_me:9201: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:9207: \$? = $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_pthread_h=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_pthread_h=no
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:9226: result: $ac_cv_header_pthread_h" >&5
-echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
-if test $ac_cv_header_pthread_h = yes; then
-
- cat >>confdefs.h <<\EOF
-#define HAVE_PTHREADS_H 1
-EOF
-
- echo "$as_me:9234: checking for pthread_create in -lpthread" >&5
-echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6
-if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 9242 "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 pthread_create ();
-int
-main ()
-{
-pthread_create ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9261: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:9264: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9267: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:9270: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_pthread_pthread_create=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_pthread_pthread_create=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:9281: result: $ac_cv_lib_pthread_pthread_create" >&5
-echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6
-if test $ac_cv_lib_pthread_pthread_create = yes; then
-
- LIBS="-lpthread $LIBS"
- cat >>confdefs.h <<\EOF
-#define HAVE_LIBPTHREADS 1
-EOF
-
- with_pthread=yes
-
-else
-
- { { echo "$as_me:9294: error: Cannot link with pthread library" >&5
-echo "$as_me: error: Cannot link with pthread library" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-
-fi
-
-fi
-
-if test "$with_pthread" = "yes" ; then
- cat >>confdefs.h <<\EOF
-#define USE_PTHREADS 1
-EOF
-
- enable_reentrant=yes
-fi
-
-# Reentrant code has to be opaque; there's little advantage to making ncurses
-# opaque outside of that, so there is no --enable-opaque option. We can use
-# this option without --with-pthreads, but this will be always set for
-# pthreads.
-echo "$as_me:9316: checking if you want experimental reentrant code" >&5
-echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
-
-# Check whether --enable-reentrant or --disable-reentrant was given.
-if test "${enable_reentrant+set}" = set; then
- enableval="$enable_reentrant"
- with_reentrant=$enableval
-else
- with_reentrant=no
-fi;
-echo "$as_me:9326: result: $with_reentrant" >&5
-echo "${ECHO_T}$with_reentrant" >&6
-if test "$with_reentrant" = yes ; then
- cf_cv_enable_reentrant=1
- cf_cv_enable_opaque="NCURSES_INTERNALS"
- NCURSES_OPAQUE=1
- NCURSES_SIZE_T=int
- LIB_SUFFIX="t${LIB_SUFFIX}"
- cat >>confdefs.h <<\EOF
-#define USE_REENTRANT 1
-EOF
-
-if test "${with_abi_version+set}" != set; then
- case $cf_cv_rel_version in
- 5.*)
- cf_cv_rel_version=6.0
- cf_cv_abi_version=6
- { echo "$as_me:9343: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
-echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
- ;;
- esac
-fi
-
-else
- cf_cv_enable_reentrant=0
- cf_cv_enable_opaque="NCURSES_OPAQUE"
- NCURSES_OPAQUE=0
- NCURSES_SIZE_T=short
-fi
-
-echo "$as_me:9356: 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:9366: 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:9375: 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:9385: 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
-
-echo "$as_me:9393: checking if you want experimental wgetch-events code" >&5
-echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6
-
-# Check whether --enable-wgetch-events or --disable-wgetch-events was given.
-if test "${enable_wgetch_events+set}" = set; then
- enableval="$enable_wgetch_events"
- with_wgetch_events=$enableval
-else
- with_wgetch_events=no
-fi;
-echo "$as_me:9403: result: $with_wgetch_events" >&5
-echo "${ECHO_T}$with_wgetch_events" >&6
-test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF
-#define NCURSES_WGETCH_EVENTS 1
-EOF
-
-###############################################################################
-
-### use option --disable-echo to suppress full display compiling commands
-echo "$as_me:9412: 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"
- test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
-fi
-echo "$as_me:9429: result: $with_echo" >&5
-echo "${ECHO_T}$with_echo" >&6
-
-### use option --enable-warnings to turn on all gcc warnings
-echo "$as_me:9433: 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:9441: result: $with_warnings" >&5
-echo "${ECHO_T}$with_warnings" >&6
-
-if test "x$with_warnings" = "xyes"; then
- ADAFLAGS="$ADAFLAGS -gnatg"
-
-INTEL_COMPILER=no
-
-if test "$GCC" = yes ; then
- case $host_os in
- linux*|gnu*)
- echo "$as_me:9452: checking if this is really Intel C compiler" >&5
-echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
- cf_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -no-gcc"
- cat >conftest.$ac_ext <<_ACEOF
-#line 9457 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
-#ifdef __INTEL_COMPILER
-#else
-make an error
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9474: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:9477: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9480: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:9483: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- INTEL_COMPILER=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$cf_save_CFLAGS"
- echo "$as_me:9494: result: $INTEL_COMPILER" >&5
-echo "${ECHO_T}$INTEL_COMPILER" >&6
- ;;
- esac
-fi
-
-cat > conftest.$ac_ext <<EOF
-#line 9501 "${as_me-configure}"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
-EOF
-
-if test "$INTEL_COMPILER" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
-
- { echo "$as_me:9519: checking for $CC warning options..." >&5
-echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-Wall"
- for cf_opt in \
- wd1419 \
- wd1682 \
- wd1683 \
- wd1684 \
- wd193 \
- wd279 \
- wd593 \
- wd810 \
- wd869 \
- wd981
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:9536: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:9539: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- test -n "$verbose" && echo "$as_me:9541: result: ... -$cf_opt" >&5
-echo "${ECHO_T}... -$cf_opt" >&6
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-
-elif test "$GCC" = yes
-then
- { echo "$as_me:9550: 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 Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:9570: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:9573: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- test -n "$verbose" && echo "$as_me:9575: result: ... -$cf_opt" >&5
-echo "${ECHO_T}... -$cf_opt" >&6
- case $cf_opt in #(vi
- Wcast-qual) #(vi
- CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
- ;;
- Winline) #(vi
- case $GCC_VERSION in
- 3.3*)
- test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-
-echo "${as_me-configure}:9586: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-
- continue;;
- esac
- ;;
- esac
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-fi
-rm -f conftest*
-
- if test "$cf_with_cxx" = yes ; then
-
-INTEL_CPLUSPLUS=no
-
-if test "$GCC" = yes ; then
- case $host_os in
- linux*|gnu*)
- echo "$as_me:9606: checking if this is really Intel C++ compiler" >&5
-echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
- cf_save_CFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -no-gcc"
- cat >conftest.$ac_ext <<_ACEOF
-#line 9611 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
-#ifdef __INTEL_COMPILER
-#else
-make an error
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9628: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:9631: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9634: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:9637: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- INTEL_CPLUSPLUS=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CXXFLAGS="$cf_save_CFLAGS"
- echo "$as_me:9648: result: $INTEL_CPLUSPLUS" >&5
-echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
- ;;
- esac
-fi
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-ac_main_return=return
-
-cat > conftest.$ac_ext <<EOF
-#line 9662 "configure"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
-EOF
-
-if test "$INTEL_CPLUSPLUS" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
-
- { echo "$as_me:9680: checking for $CC warning options..." >&5
-echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CXXFLAGS="$CXXFLAGS"
- EXTRA_CXXFLAGS="-Wall"
- for cf_opt in \
- wd1419 \
- wd1682 \
- wd1683 \
- wd1684 \
- wd193 \
- wd279 \
- wd593 \
- wd810 \
- wd869 \
- wd981
- do
- CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
- if { (eval echo "$as_me:9697: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:9700: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- test -n "$verbose" && echo "$as_me:9702: result: ... -$cf_opt" >&5
-echo "${ECHO_T}... -$cf_opt" >&6
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
- fi
- done
- CXXFLAGS="$cf_save_CXXFLAGS"
-
-elif test "$GXX" = yes
-then
- { echo "$as_me:9711: checking for $CXX warning options..." >&5
-echo "$as_me: checking for $CXX warning options..." >&6;}
- cf_save_CXXFLAGS="$CXXFLAGS"
- EXTRA_CXXFLAGS="-W -Wall"
- cf_gxx_extra_warnings=""
- test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
- case "$GCC_VERSION" in
- [1-2].*)
- ;;
- *)
- cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
- ;;
- esac
- for cf_opt in \
- Wabi \
- fabi-version=0 \
- Woverloaded-virtual \
- Wsign-promo \
- Wsynth \
- Wold-style-cast \
- Wcast-align \
- Wcast-qual \
- Wmissing-prototypes \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes \
- Wundef $cf_gxx_extra_warnings Wno-unused
- do
- CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
- if { (eval echo "$as_me:9740: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:9743: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- test -n "$verbose" && echo "$as_me:9745: result: ... -$cf_opt" >&5
-echo "${ECHO_T}... -$cf_opt" >&6
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
- else
- test -n "$verbose" && echo "$as_me:9749: result: ... no -$cf_opt" >&5
-echo "${ECHO_T}... no -$cf_opt" >&6
- fi
- done
- CXXFLAGS="$cf_save_CXXFLAGS"
-fi
-
-rm -f conftest*
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ac_main_return=return
-
- 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:9785: checking for $CC __attribute__ directives..." >&5
-echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
-cat > conftest.$ac_ext <<EOF
-#line 9788 "${as_me-configure}"
-#include "confdefs.h"
-#include "conftest.h"
-#include "conftest.i"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
-EOF
- 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:9826: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:9829: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- test -n "$verbose" && echo "$as_me:9831: result: ... $cf_attribute" >&5
-echo "${ECHO_T}... $cf_attribute" >&6
- cat 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:9843: 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:9853: 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
-
-echo "$as_me:9871: checking if you want to use dmalloc for testing" >&5
-echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
-
-# Check whether --with-dmalloc or --without-dmalloc was given.
-if test "${with_dmalloc+set}" = set; then
- withval="$with_dmalloc"
- cat >>confdefs.h <<\EOF
-#define USE_DMALLOC 1
-EOF
-
- : ${with_cflags:=-g}
- : ${with_no_leaks:=yes}
- with_dmalloc=yes
-else
- with_dmalloc=
-fi;
-echo "$as_me:9887: result: ${with_dmalloc:-no}" >&5
-echo "${ECHO_T}${with_dmalloc:-no}" >&6
-
-case .$with_cflags in #(vi
-.*-g*)
- case .$CFLAGS in #(vi
- .*-g*) #(vi
- ;;
- *)
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in -g
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
- ;;
- esac
- ;;
-esac
-
-if test "$with_dmalloc" = yes ; then
- echo "$as_me:9971: checking for dmalloc.h" >&5
-echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
-if test "${ac_cv_header_dmalloc_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 9977 "configure"
-#include "confdefs.h"
-#include <dmalloc.h>
-_ACEOF
-if { (eval echo "$as_me:9981: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:9987: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_dmalloc_h=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_dmalloc_h=no
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:10006: result: $ac_cv_header_dmalloc_h" >&5
-echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
-if test $ac_cv_header_dmalloc_h = yes; then
-
-echo "$as_me:10010: 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 10018 "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:10037: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10040: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10043: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10046: \$? = $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:10057: 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
-
-fi
-
-echo "$as_me:10072: checking if you want to use dbmalloc for testing" >&5
-echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
-
-# Check whether --with-dbmalloc or --without-dbmalloc was given.
-if test "${with_dbmalloc+set}" = set; then
- withval="$with_dbmalloc"
- cat >>confdefs.h <<\EOF
-#define USE_DBMALLOC 1
-EOF
-
- : ${with_cflags:=-g}
- : ${with_no_leaks:=yes}
- with_dbmalloc=yes
-else
- with_dbmalloc=
-fi;
-echo "$as_me:10088: result: ${with_dbmalloc:-no}" >&5
-echo "${ECHO_T}${with_dbmalloc:-no}" >&6
-
-case .$with_cflags in #(vi
-.*-g*)
- case .$CFLAGS in #(vi
- .*-g*) #(vi
- ;;
- *)
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in -g
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
- ;;
- esac
- ;;
-esac
-
-if test "$with_dbmalloc" = yes ; then
- echo "$as_me:10172: checking for dbmalloc.h" >&5
-echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
-if test "${ac_cv_header_dbmalloc_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 10178 "configure"
-#include "confdefs.h"
-#include <dbmalloc.h>
-_ACEOF
-if { (eval echo "$as_me:10182: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:10188: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_dbmalloc_h=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_dbmalloc_h=no
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:10207: result: $ac_cv_header_dbmalloc_h" >&5
-echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
-if test $ac_cv_header_dbmalloc_h = yes; then
-
-echo "$as_me:10211: 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 10219 "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:10238: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10241: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10244: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10247: \$? = $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:10258: 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
-
-fi
-
-echo "$as_me:10273: checking if you want to use valgrind for testing" >&5
-echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
-
-# Check whether --with-valgrind or --without-valgrind was given.
-if test "${with_valgrind+set}" = set; then
- withval="$with_valgrind"
- cat >>confdefs.h <<\EOF
-#define USE_VALGRIND 1
-EOF
-
- : ${with_cflags:=-g}
- : ${with_no_leaks:=yes}
- with_valgrind=yes
-else
- with_valgrind=
-fi;
-echo "$as_me:10289: result: ${with_valgrind:-no}" >&5
-echo "${ECHO_T}${with_valgrind:-no}" >&6
-
-case .$with_cflags in #(vi
-.*-g*)
- case .$CFLAGS in #(vi
- .*-g*) #(vi
- ;;
- *)
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in -g
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
- ;;
- esac
- ;;
-esac
-
-echo "$as_me:10372: checking if you want to perform memory-leak testing" >&5
-echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
-
-# Check whether --enable-leaks or --disable-leaks was given.
-if test "${enable_leaks+set}" = set; then
- enableval="$enable_leaks"
- with_no_leaks=yes
-else
- : ${with_no_leaks:=no}
-fi;
-echo "$as_me:10382: result: $with_no_leaks" >&5
-echo "${ECHO_T}$with_no_leaks" >&6
-
-if test "$with_no_leaks" = yes ; then
- cat >>confdefs.h <<\EOF
-#define NO_LEAKS 1
-EOF
-
-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;
-
-# Normally we only add trace() to the debug-library. Allow this to be
-# extended to all models of the ncurses library:
-cf_all_traces=no
-case "$CFLAGS $CPPFLAGS" in
-*-DTRACE*)
- cf_all_traces=yes
- ;;
-esac
-
-echo "$as_me:10427: checking whether to add trace feature to all models" >&5
-echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
-
-# Check whether --with-trace or --without-trace was given.
-if test "${with_trace+set}" = set; then
- withval="$with_trace"
- cf_with_trace=$withval
-else
- cf_with_trace=$cf_all_traces
-fi;
-echo "$as_me:10437: result: $cf_with_trace" >&5
-echo "${ECHO_T}$cf_with_trace" >&6
-
-if test "$cf_with_trace" = yes ; then
- LIB_TRACING=all
- ADA_TRACE=TRUE
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in -DTRACE
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-else
- LIB_TRACING=DEBUG
- ADA_TRACE=FALSE
-fi
-
-### Checks for libraries.
-echo "$as_me:10518: 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 10524 "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:10555: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10558: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10561: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10564: \$? = $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:10574: 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:10583: 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 10591 "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:10610: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10613: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10616: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10619: \$? = $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:10630: 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:10642: 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 10649 "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:10664: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10667: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10670: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10673: \$? = $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:10683: 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:10691: 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 10697 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:10705: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:10711: \$? = $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 10733 "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 10751 "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 10772 "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))
- $ac_main_return(2);
- $ac_main_return (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10798: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10801: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:10803: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10806: \$? = $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:10819: 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:10832: 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 10838 "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:10853: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:10856: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:10859: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10862: \$? = $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:10872: 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:10885: 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 10893 "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:10912: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10915: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10918: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10921: \$? = $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:10932: 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:10939: 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 10947 "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:10966: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:10969: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10972: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:10975: \$? = $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:10986: 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:10994: 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 11000 "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:11016: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11019: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11022: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11025: \$? = $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:11035: 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:11045: 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 11052 "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:11070: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:11073: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:11076: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11079: \$? = $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 11087 "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:11102: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:11105: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:11108: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11111: \$? = $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 11121 "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:11136: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:11139: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:11142: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11145: \$? = $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:11161: 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 \
-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 \
-wctype.h \
-
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:11197: 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 11203 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:11207: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:11213: \$? = $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:11232: 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:11246: 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 11254 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-main ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11266: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:11269: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:11272: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11275: \$? = $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:11286: 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:11297: 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 11305 "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:11324: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:11327: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:11330: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11333: \$? = $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:11344: 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:11351: 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 11358 "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:11378: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11381: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11384: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11387: \$? = $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:11399: result: $cf_cv_sys_time_select" >&5
-echo "${ECHO_T}$cf_cv_sys_time_select" >&6
-test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
-#define HAVE_SYS_TIME_SELECT 1
-EOF
-
-### checks for compiler characteristics
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ac_main_return=return
-
-echo "$as_me:11413: 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 11421 "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:11470: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11473: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11476: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11479: \$? = $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:11496: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:11499: 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:11504: 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 11510 "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:11568: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11571: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11574: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11577: \$? = $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:11587: 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:11597: 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 11605 "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:11614: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11617: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11620: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11623: \$? = $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:11634: 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
-
-NCURSES_INLINE=
-if test "$ac_cv_c_inline" != no ; then
- NCURSES_INLINE=inline
- if test "$INTEL_COMPILER" = yes
- then
- :
- elif test "$GCC" = yes
- then
- echo "$as_me:11657: checking if gcc supports options to tune inlining" >&5
-echo $ECHO_N "checking if gcc supports options to tune inlining... $ECHO_C" >&6
-if test "${cf_cv_gcc_inline+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cf_save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
- cat >conftest.$ac_ext <<_ACEOF
-#line 11666 "configure"
-#include "confdefs.h"
-inline int foo(void) { return 1; }
-int
-main ()
-{
-${cf_cv_main_return:-return} foo()
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11678: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11681: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11684: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11687: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gcc_inline=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_gcc_inline=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$cf_save_CFLAGS
-
-fi
-echo "$as_me:11699: result: $cf_cv_gcc_inline" >&5
-echo "${ECHO_T}$cf_cv_gcc_inline" >&6
- if test "$cf_cv_gcc_inline" = yes ; then
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in --param max-inline-insns-single=1200
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
- fi
- fi
-fi
-
-echo "$as_me:11775: checking for signal global datatype" >&5
-echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
-if test "${cf_cv_sig_atomic_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- for cf_type in \
- "volatile sig_atomic_t" \
- "sig_atomic_t" \
- "int"
- do
- cat >conftest.$ac_ext <<_ACEOF
-#line 11787 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <signal.h>
-#include <stdio.h>
-
-extern $cf_type x;
-$cf_type x;
-static void handler(int sig)
-{
- x = 5;
-}
-int
-main ()
-{
-signal(SIGINT, handler);
- x = 1
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11810: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11813: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11816: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11819: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_sig_atomic_t=$cf_type
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_sig_atomic_t=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- test "$cf_cv_sig_atomic_t" != no && break
- done
-
-fi
-
-echo "$as_me:11833: result: $cf_cv_sig_atomic_t" >&5
-echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
-test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
-#define SIG_ATOMIC_T $cf_cv_sig_atomic_t
-EOF
-
-if test $NCURSES_CHTYPE = auto ; then
-
-echo "$as_me:11841: 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 11851 "configure"
-#include "confdefs.h"
-
-#define WANT_BITS 31
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- char *result = "long";
- if (sizeof(unsigned long) > sizeof(unsigned int)) {
- int n;
- unsigned int x, y;
- for (n = 0; n < WANT_BITS; n++) {
- x = (1 << n);
- 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);
- }
- ${cf_cv_main_return:-return}(0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11886: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:11889: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:11891: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11894: \$? = $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:11909: result: $cf_cv_typeof_chtype" >&5
-echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
-
-cat >>confdefs.h <<EOF
-#define TYPEOF_CHTYPE $cf_cv_typeof_chtype
-EOF
-
-else
- cf_cv_typeof_chtype=$NCURSES_CHTYPE
-fi
-test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
-
-echo "$as_me:11921: 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 11928 "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:11940: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:11943: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11946: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:11949: \$? = $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:11961: result: $cf_cv_unsigned_literals" >&5
-echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
-
-cf_cv_1UL="1"
-test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
-test ".$cf_cv_typeof_chtype" = .long && cf_cv_1UL="${cf_cv_1UL}L"
-
-if test $NCURSES_MMASK_T = auto ; then
- cf_cv_typeof_mmask_t=long
-else
- cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
-fi
-test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
-
-### Checks for external-data
-
-echo "$as_me:11977: 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 11984 "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:12002: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:12005: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:12008: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12011: \$? = $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:12022: 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:12037: 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 12044 "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:12059: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12062: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12065: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12068: \$? = $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:12079: 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:12092: 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 12100 "configure"
-int testdata[3] = { 123, 456, 789 };
-EOF
- if { (eval echo "$as_me:12103: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:12106: \$? = $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 12113 "configure"
-int testfunc()
-{
-#if defined(NeXT)
- ${cf_cv_main_return:-return}(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:12126: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:12129: \$? = $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 $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 12142 "configure"
-#include "confdefs.h"
-
- int main()
- {
- extern int testfunc();
- ${cf_cv_main_return:-return} (!testfunc());
- }
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:12153: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12156: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:12158: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12161: \$? = $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:12176: 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 \
-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:12211: 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 12217 "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:12248: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12251: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12254: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12257: \$? = $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:12267: 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:12279: 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 12286 "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:12306: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12309: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12312: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12315: \$? = $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:12327: 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:12335: 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 12342 "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:12354: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12357: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12360: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12363: \$? = $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:12374: 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:12381: 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 12384 "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:12398: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:12401: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:12404: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12407: \$? = $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 12415 "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:12430: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:12433: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:12436: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12439: \$? = $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:12454: result: $sigact_bad" >&5
-echo "${ECHO_T}$sigact_bad" >&6
-fi
-
-echo "$as_me:12458: checking if nanosleep really works" >&5
-echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
-if test "${cf_cv_func_nanosleep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-if test "$cross_compiling" = yes; then
- cf_cv_func_nanosleep=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 12468 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <errno.h>
-#include <time.h>
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-int main() {
- struct timespec ts1, ts2;
- int code;
- ts1.tv_sec = 0;
- ts1.tv_nsec = 750000000;
- ts2.tv_sec = 0;
- ts2.tv_nsec = 0;
- errno = 0;
- code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
- ${cf_cv_main_return:-return}(code != 0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:12493: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12496: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:12498: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12501: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_func_nanosleep=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_func_nanosleep=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:12513: result: $cf_cv_func_nanosleep" >&5
-echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
-
-test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
-#define HAVE_NANOSLEEP 1
-EOF
-
-for ac_header in \
-termio.h \
-termios.h \
-unistd.h \
-
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:12527: 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 12533 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:12537: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:12543: \$? = $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:12562: 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:12577: 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 12583 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:12587: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:12593: \$? = $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:12612: 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:12630: 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 12633 "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:12645: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:12648: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:12651: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12654: \$? = $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 12662 "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:12676: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:12679: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:12682: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12685: \$? = $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:12700: result: $termios_bad" >&5
-echo "${ECHO_T}$termios_bad" >&6
- fi
-fi
-
-echo "$as_me:12705: 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 12712 "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:12740: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12743: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12746: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12749: \$? = $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:12759: 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:12765: 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 12772 "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:12788: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12791: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12794: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12797: \$? = $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 12805 "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:12827: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12830: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12833: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12836: \$? = $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 12844 "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:12866: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12869: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12872: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12875: \$? = $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:12890: 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:12908: 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:12916: 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 12922 "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:12953: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:12956: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:12959: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:12962: \$? = $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:12972: result: $ac_cv_func_mkstemp" >&5
-echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 12977 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-int main()
-{
- char *tmpl = "conftestXXXXXX";
- char name[2][80];
- int n;
- int result = 0;
- int fd;
- struct stat sb;
-
- umask(077);
- for (n = 0; n < 2; ++n) {
- strcpy(name[n], tmpl);
- if ((fd = mkstemp(name[n])) >= 0) {
- if (!strcmp(name[n], tmpl)
- || stat(name[n], &sb) != 0
- || (sb.st_mode & S_IFMT) != S_IFREG
- || (sb.st_mode & 077) != 0) {
- result = 1;
- }
- close(fd);
- }
- }
- if (result == 0
- && !strcmp(name[0], name[1]))
- result = 1;
- ${cf_cv_main_return:-return}(result);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13015: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13018: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:13020: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13023: \$? = $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:13038: 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:13056: 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:13059: 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:13065: 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 13070 "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)
- $ac_main_return(1);
- putc('\r', stdout);
- $ac_main_return(0); /* Non-reversed systems segv here. */
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13087: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13090: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:13092: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13095: \$? = $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:13108: 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:13119: 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 13125 "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:13147: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:13150: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:13153: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13156: \$? = $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:13166: 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:13173: 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 13180 "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:13193: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:13196: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:13199: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13202: \$? = $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:13213: 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:13219: 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 13234 "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:13278: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:13281: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:13284: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13287: \$? = $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:13306: 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:13323: 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 13329 "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:13360: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13363: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:13366: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13369: \$? = $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:13379: 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:13385: 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 13391 "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:13422: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13425: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:13428: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13431: \$? = $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:13441: 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:13445: 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 13455 "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);
- ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13469: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13472: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:13474: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13477: \$? = $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:13490: 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:13511: 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 13521 "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);
- ${cf_cv_main_return:-return}(ret != 0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13542: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13545: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:13547: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13550: \$? = $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:13562: 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
-
-# special check for test/ditto.c
-
-echo "$as_me:13570: checking for openpty in -lutil" >&5
-echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
-if test "${ac_cv_lib_util_openpty+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lutil $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 13578 "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 openpty ();
-int
-main ()
-{
-openpty ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13597: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13600: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:13603: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13606: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_util_openpty=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_util_openpty=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:13617: result: $ac_cv_lib_util_openpty" >&5
-echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
-if test $ac_cv_lib_util_openpty = yes; then
- cf_cv_lib_util=yes
-else
- cf_cv_lib_util=no
-fi
-
-echo "$as_me:13625: checking for openpty header" >&5
-echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
-if test "${cf_cv_func_openpty+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cf_save_LIBS="$LIBS"
- test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
- for cf_header in pty.h libutil.h util.h
- do
- cat >conftest.$ac_ext <<_ACEOF
-#line 13636 "configure"
-#include "confdefs.h"
-
-#include <$cf_header>
-
-int
-main ()
-{
-
- int x = openpty((int *)0, (int *)0, (char *)0,
- (struct termios *)0, (struct winsize *)0);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13653: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:13656: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:13659: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13662: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_func_openpty=$cf_header
- break
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- cf_cv_func_openpty=no
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- done
- LIBS="$cf_save_LIBS"
-
-fi
-echo "$as_me:13680: result: $cf_cv_func_openpty" >&5
-echo "${ECHO_T}$cf_cv_func_openpty" >&6
-
-if test "$cf_cv_func_openpty" != no ; then
- cat >>confdefs.h <<EOF
-#define USE_OPENPTY_HEADER <$cf_cv_func_openpty>
-EOF
-
- cat >>confdefs.h <<\EOF
-#define USE_XTERM_PTY 1
-EOF
-
- if test "$cf_cv_lib_util" = yes ; then
- TEST_LIBS="-lutil $TEST_LIBS"
- fi
-fi
-
-if test "$with_hashed_db" != no ; then
- cat >>confdefs.h <<\EOF
-#define USE_HASHED_DB 1
-EOF
-
-case $with_hashed_db in #(vi
-yes|*able*) #(vi
- ;;
-*)
- if test -d "$with_hashed_db" ; then
-
-if test -n "$with_hashed_db/include" ; then
- for cf_add_incdir in $with_hashed_db/include
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
-#line 13732 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello")
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13744: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:13747: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:13750: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13753: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_have_incdir=yes
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-echo "${as_me-configure}:13770: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-
-if test -n "$with_hashed_db/lib" ; then
- for cf_add_libdir in $with_hashed_db/lib
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
- elif test -d $cf_add_libdir
- then
- cf_have_libdir=no
- if test -n "$LDFLAGS$LIBS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_libdir in $LDFLAGS $LIBS ; do
- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
- cf_have_libdir=yes; break
- fi
- done
- fi
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
-echo "${as_me-configure}:13804: testing adding $cf_add_libdir to library-path ..." 1>&5
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
- fi
- done
-fi
-
- fi
-esac
-
-echo "$as_me:13815: checking for db.h" >&5
-echo $ECHO_N "checking for db.h... $ECHO_C" >&6
-if test "${ac_cv_header_db_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 13821 "configure"
-#include "confdefs.h"
-#include <db.h>
-_ACEOF
-if { (eval echo "$as_me:13825: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:13831: \$? = $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_db_h=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_db_h=no
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:13850: result: $ac_cv_header_db_h" >&5
-echo "${ECHO_T}$ac_cv_header_db_h" >&6
-if test $ac_cv_header_db_h = yes; then
-
-echo "$as_me:13854: checking for version of db" >&5
-echo $ECHO_N "checking for version of db... $ECHO_C" >&6
-if test "${cf_cv_hashed_db_version+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cf_cv_hashed_db_version=unknown
-
-for cf_db_version in 1 2 3 4 5
-do
-
-echo "${as_me-configure}:13865: testing checking for db version $cf_db_version ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 13868 "configure"
-#include "confdefs.h"
-
-$ac_includes_default
-#include <db.h>
-
-#ifdef DB_VERSION_MAJOR
- /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
-#if $cf_db_version == DB_VERSION_MAJOR
- /* ok */
-#else
- make an error
-#endif
-#else
-#if $cf_db_version == 1
- /* ok: assuming this is DB 1.8.5 */
-#else
- make an error
-#endif
-#endif
-
-int
-main ()
-{
-DBT *foo = 0
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13898: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:13901: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:13904: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:13907: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_hashed_db_version=$cf_db_version
- 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:13921: result: $cf_cv_hashed_db_version" >&5
-echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
-
-if test "$cf_cv_hashed_db_version" = unknown ; then
- { { echo "$as_me:13925: error: Cannot determine version of db" >&5
-echo "$as_me: error: Cannot determine version of db" >&2;}
- { (exit 1); exit 1; }; }
-else
-
-echo "$as_me:13930: checking for db libraries" >&5
-echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
-if test "${cf_cv_hashed_db_libs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cf_cv_hashed_db_libs=unknown
-for cf_db_libs in db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
-do
- cf_save_libs="$LIBS"
- if test -n "$cf_db_libs"; then
- LIBS="-l$cf_db_libs $LIBS"
- fi
-
-echo "${as_me-configure}:13944: testing checking for library "$cf_db_libs" ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 13947 "configure"
-#include "confdefs.h"
-
-$ac_includes_default
-#include <db.h>
-
-int
-main ()
-{
-
- char *path = "/tmp/foo";
-#ifdef DB_VERSION_MAJOR
-#if DB_VERSION_MAJOR >= 4
- DB *result = 0;
- db_create(&result, NULL, 0);
- result->open(result,
- NULL,
- path,
- path,
- DB_HASH,
- DB_CREATE,
- 0644);
-#elif DB_VERSION_MAJOR >= 3
- DB *result = 0;
- db_create(&result, NULL, 0);
- result->open(result,
- path,
- path,
- DB_HASH,
- DB_CREATE,
- 0644);
-#elif DB_VERSION_MAJOR >= 2
- DB *result = 0;
- db_open(path,
- DB_HASH,
- DB_CREATE,
- 0644,
- (DB_ENV *) 0,
- (DB_INFO *) 0,
- &result);
-#endif /* DB_VERSION_MAJOR */
-#else
- DB *result = dbopen(path,
- 2,
- 0644,
- DB_HASH,
- 0);
-#endif
- ${cf_cv_main_return:-return}(result != 0)
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14002: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:14005: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:14008: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14011: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- if test -n "$cf_db_libs" ; then
- cf_cv_hashed_db_libs=$cf_db_libs
- else
- cf_cv_hashed_db_libs=default
- fi
- LIBS="$cf_save_libs"
- break
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS="$cf_save_libs"
-done
-
-fi
-echo "$as_me:14031: result: $cf_cv_hashed_db_libs" >&5
-echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
-
- if test "$cf_cv_hashed_db_libs" = unknown ; then
- { { echo "$as_me:14035: error: Cannot determine library for db" >&5
-echo "$as_me: error: Cannot determine library for db" >&2;}
- { (exit 1); exit 1; }; }
- elif test "$cf_cv_hashed_db_libs" != default ; then
- LIBS="-l$cf_cv_hashed_db_libs $LIBS"
- fi
-fi
-
-else
-
- { { echo "$as_me:14045: error: Cannot find db.h" >&5
-echo "$as_me: error: Cannot find db.h" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-
-fi
-
-if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
- CFLAGS=`echo ${CFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
- CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
-fi
-
-# Just in case, check if the C compiler has a bool type.
-
-echo "$as_me:14060: checking if we should include stdbool.h" >&5
-echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
-
-if test "${cf_cv_header_stdbool_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 14068 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-bool foo = false
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14080: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:14083: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:14086: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14089: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=0
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 14096 "configure"
-#include "confdefs.h"
-
-#ifndef __BEOS__
-#include <stdbool.h>
-#endif
-
-int
-main ()
-{
-bool foo = false
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14112: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:14115: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:14118: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14121: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=1
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_header_stdbool_h=0
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-if test "$cf_cv_header_stdbool_h" = 1
-then echo "$as_me:14135: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else echo "$as_me:14137: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-echo "$as_me:14141: 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 14149 "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:14164: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:14167: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:14170: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14173: \$? = $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:14186: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else echo "$as_me:14188: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-# Check for C++ compiler characteristics (and ensure that it's there!)
-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
-ac_main_return=return
-
-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:14210: 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 14219 "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:14235: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:14238: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:14241: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14244: \$? = $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:14256: result: $cf_cv_libstdcpp" >&5
-echo "${ECHO_T}$cf_cv_libstdcpp" >&6
-test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
-fi
-
- echo "$as_me:14261: checking whether $CXX understands -c and -o together" >&5
-echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
-if test "${cf_cv_prog_CXX_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cat > conftest.$ac_ext <<CF_EOF
-#include <stdio.h>
-int main()
-{
- ${cf_cv_main_return:-return}(0);
-}
-CF_EOF
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:14277: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14280: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- test -f conftest2.$ac_objext && { (eval echo "$as_me:14282: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14285: \$? = $ac_status" >&5
- (exit $ac_status); };
-then
- eval cf_cv_prog_CXX_c_o=yes
-else
- eval cf_cv_prog_CXX_c_o=no
-fi
-rm -f conftest*
-
-fi
-if test $cf_cv_prog_CXX_c_o = yes; then
- echo "$as_me:14296: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me:14299: result: no" >&5
-echo "${ECHO_T}no" >&6
-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 "$GXX" = yes; then
- echo "$as_me:14319: 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 14324 "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:14338: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:14341: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:14344: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14347: \$? = $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 14366 "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:14380: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:14383: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:14386: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14389: \$? = $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:14406: 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
-ac_main_return=return
-echo "$as_me:14422: 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 14439 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:14444: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:14450: \$? = $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 14473 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:14477: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:14483: \$? = $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:14520: 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 14530 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:14535: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:14541: \$? = $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 14564 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:14568: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:14574: \$? = $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:14602: 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
-ac_main_return=return
-
-for ac_header in iostream typeinfo
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:14617: 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 14623 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:14627: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:14633: \$? = $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:14652: 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:14662: checking if we should include stdbool.h" >&5
-echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
-
-if test "${cf_cv_header_stdbool_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 14670 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-bool foo = false
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14682: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:14685: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:14688: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14691: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=0
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 14698 "configure"
-#include "confdefs.h"
-
-#ifndef __BEOS__
-#include <stdbool.h>
-#endif
-
-int
-main ()
-{
-bool foo = false
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14714: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:14717: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:14720: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14723: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=1
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_header_stdbool_h=0
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-if test "$cf_cv_header_stdbool_h" = 1
-then echo "$as_me:14737: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else echo "$as_me:14739: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-echo "$as_me:14743: 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 14751 "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:14766: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:14769: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:14772: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14775: \$? = $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:14788: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else echo "$as_me:14790: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-echo "$as_me:14794: 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 14805 "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);
- }
- ${cf_cv_main_return:-return}(0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:14847: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:14850: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:14852: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14855: \$? = $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:14873: 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:14879: 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:14884: 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 -I${srcdir}/include"
- test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
- test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
-cat >conftest.$ac_ext <<_ACEOF
-#line 14896 "configure"
-#include "confdefs.h"
-
-#include <etip.h.in>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14910: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:14913: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:14916: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14919: \$? = $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:14940: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
-CXXFLAGS="$cf_save_CXXFLAGS"
-
-if test -n "$CXX"; then
-echo "$as_me:14945: 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
-ac_main_return=return
-
- if test "$cross_compiling" = yes; then
- cf_cv_cpp_param_init=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 14962 "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:14981: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:14984: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:14986: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:14989: \$? = $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
-ac_main_return=return
-
-fi
-echo "$as_me:15008: 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
-
-echo "$as_me:15017: checking if $CXX accepts static_cast" >&5
-echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
-if test "${cf_cv_cpp_static_cast+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-ac_main_return=return
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 15031 "configure"
-#include "confdefs.h"
-
-class NCursesPanel
-{
-public:
- NCursesPanel(int nlines,
- int ncols,
- int begin_y = 0,
- int begin_x = 0)
- {
- }
-
- ~NCursesPanel();
-};
-
-template<class T> class NCursesUserPanel : public NCursesPanel
-{
-public:
- NCursesUserPanel (int nlines,
- int ncols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = static_cast<T*>(0))
- : NCursesPanel (nlines, ncols, begin_y, begin_x)
- {
- };
- NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
- {
- };
-
- virtual ~NCursesUserPanel() {};
-};
-
-int
-main ()
-{
-
- const char* p_UserData = static_cast<char*>(0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:15075: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:15078: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:15081: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:15084: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_cpp_static_cast=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_cpp_static_cast=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-ac_main_return=return
-
-fi
-echo "$as_me:15102: result: $cf_cv_cpp_static_cast" >&5
-echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
-
-fi
-
-test "$cf_cv_cpp_static_cast" = yes && cat >>confdefs.h <<\EOF
-#define CPP_HAS_STATIC_CAST 1
-EOF
-
- 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_BOOL
- cf_cv_header_stdbool_h=0
- else
- if test "$cf_cv_header_stdbool_h" = 1 ; then
-
-echo "$as_me:15150: 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 15161 "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);
- }
- ${cf_cv_main_return:-return}(0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:15203: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:15206: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:15208: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:15211: \$? = $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:15229: 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:15235: 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:15241: 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:15247: result: $cf_cv_type_of_bool" >&5
-echo "${ECHO_T}$cf_cv_type_of_bool" >&6
- fi
- fi
-fi
-
-# If the C compiler did not declare bool, and we did not determine that the C++
-# compiler does not declare bool, turn on an ifdef in curses.h that makes the
-# ncurses library use the same type as C++ bool. Note that this allows one to
-# specify the type of bool in a configure-script option and postpone
-# integration with the C++ compiler provided that the types are compatible.
-USE_CXX_BOOL=1
-if test $cf_cv_cc_bool_type = 1
-then
- # oops: C has a bool. Unlikely, but C++ could differ.
- USE_CXX_BOOL=0
-elif test $cf_cv_builtin_bool = 0
-then
- # C++ has no bool
- USE_CXX_BOOL=0
-else
- # this is the normal case
- USE_CXX_BOOL='defined(__cplusplus)'
-fi
-
-if test -f "${srcdir}/Ada95/Makefile.in" ; then
-
-if test "$cf_with_ada" != "no" ; then
- if test "$with_libtool" != "no"; then
- { echo "$as_me:15276: WARNING: libtool does not support Ada - disabling feature" >&5
-echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
- cf_with_ada=no
- fi
-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:15286: 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:15301: 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:15310: result: $gnat_exists" >&5
-echo "${ECHO_T}$gnat_exists" >&6
-else
- echo "$as_me:15313: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-if test "$ac_cv_prog_gnat_exists" = no; then
- cf_ada_make=
-else
-
-echo "$as_me:15321: checking for gnat version" >&5
-echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
-cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
- sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
-echo "$as_me:15325: result: $cf_gnat_version" >&5
-echo "${ECHO_T}$cf_gnat_version" >&6
-
-case $cf_gnat_version in
- 3.1[1-9]*|3.[2-9]*|[4-9].*)
- cf_cv_prog_gnat_correct=yes
- ;;
- *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
- cf_cv_prog_gnat_correct=no
- ;;
-esac
-case $cf_gnat_version in
- 3.[1-9]*|[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:15348: 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:15363: 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:15372: result: $M4_exists" >&5
-echo "${ECHO_T}$M4_exists" >&6
-else
- echo "$as_me:15375: 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:15384: 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 $ADAFLAGS 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:15412: result: $cf_cv_prog_gnat_correct" >&5
-echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
- fi
-fi
-if test "$cf_cv_prog_gnat_correct" = yes; then
- ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
-
- echo "$as_me:15419: checking if GNAT pragma Unreferenced works" >&5
-echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
-
-rm -f conftest*
-cat >>conftest.ads <<CF_EOF
-procedure conftest;
-CF_EOF
-cat >>conftest.adb <<CF_EOF
-with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
- test : Integer;
- pragma Unreferenced (test);
-begin
- test := 1;
- Text_IO.Put ("Hello World");
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (0);
-end conftest;
-CF_EOF
-if ( $cf_ada_make $ADAFLAGS conftest 1>&5 2>&1 ) ; then
- cf_cv_pragma_unreferenced=yes
-else
- cf_cv_pragma_unreferenced=no
-fi
-rm -f conftest*
-
- echo "$as_me:15446: result: $cf_cv_pragma_unreferenced" >&5
-echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
-
- # if the pragma is supported, use it (needed in the Trace code).
- if test $cf_cv_pragma_unreferenced = yes ; then
- PRAGMA_UNREF=TRUE
- else
- PRAGMA_UNREF=FALSE
- fi
-
-# Check whether --with-ada-compiler or --without-ada-compiler was given.
-if test "${with_ada_compiler+set}" = set; then
- withval="$with_ada_compiler"
- 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; if test -n "$prefix/lib/ada/adainclude" ; then
-
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- { { echo "$as_me:15499: error: expected a pathname, not \"$withval\"" >&5
-echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-esac
-
-fi
-ADA_INCLUDE="$withval"
-
-# 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; if test -n "$prefix/lib/ada/adalib" ; then
-
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- { { echo "$as_me:15541: error: expected a pathname, not \"$withval\"" >&5
-echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-esac
-
-fi
-ADA_OBJECTS="$withval"
-
-fi
-fi
-else
- cf_with_ada=no
-fi
-
-### Construct the ncurses library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
-###
-### ticlib modules may be a separate library, otherwise contained in termlib.
-### termlib modules may be a separate library, otherwise contained in ncurses.
-###
-### The of "+" or " " between the tokens controls the way the script
-### chooses to split module lists into libraries.
-###
-### (see CF_LIB_RULES).
-echo "$as_me:15566: checking for library subsets" >&5
-echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
-LIB_SUBSETS=
-
-if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
- LIB_SUBSETS="${LIB_SUBSETS}ticlib"
- if test "$with_ticlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
- else
- LIB_SUBSETS="${LIB_SUBSETS}+"
- fi
-fi
-
-LIB_SUBSETS="${LIB_SUBSETS}termlib"
-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
-if test "$with_termlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
-else
- LIB_SUBSETS="${LIB_SUBSETS}+"
-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:15591: result: $LIB_SUBSETS" >&5
-echo "${ECHO_T}$LIB_SUBSETS" >&6
-
-### Construct the list of include-directories to be generated
-
-CPPFLAGS="-I. -I../include $CPPFLAGS"
-if test "$srcdir" != "."; then
- CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
-fi
-if test "$GCC" != yes; then
- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- CPPFLAGS="$CPPFLAGS -I\${includedir}"
- fi
- else
- CPPFLAGS="$CPPFLAGS -I\${includedir}"
- fi
-fi
-
-ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
-if test "$srcdir" != "."; then
- ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
-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:15629: 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:15640: result: $DFT_ARG_SUFFIX" >&5
-echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
-
-echo "$as_me:15643: 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*)
- case $target in
- ia64*) DFT_DEP_SUFFIX='.so' ;;
- *) DFT_DEP_SUFFIX='.sl' ;;
- esac
- ;;
- *) DFT_DEP_SUFFIX='.so' ;;
- esac
- esac
- test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
-DFT_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"
- DFT_LIB_SUFFIX=".dll"
- ;;
- esac
-fi
-echo "$as_me:15674: result: $DFT_DEP_SUFFIX" >&5
-echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
-
-echo "$as_me:15677: 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:15693: result: $DFT_OBJ_SUBDIR" >&5
-echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
-
-# libtool thinks it can make c++ shared libraries (perhaps only g++)
-if test "$cf_with_cxx" = yes ; then
-echo "$as_me:15698: checking c++ library-dependency suffix" >&5
-echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
-if test "$with_libtool" != "no"; then
- CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
-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*)
- case $target in
- ia64*) CXX_LIB_SUFFIX='.so' ;;
- *) CXX_LIB_SUFFIX='.sl' ;;
- esac
- ;;
- *) CXX_LIB_SUFFIX='.so' ;;
- esac
- esac
- test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
-fi
-echo "$as_me:15724: result: $CXX_LIB_SUFFIX" >&5
-echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
-
-fi
-
-# do not want -ldl in build except as needed for -lncurses dependency
-if test "$with_dlsym" = yes ; then
-if test $DFT_LWR_MODEL = shared || \
- test $DFT_LWR_MODEL = libtool ; then
-
-# remove dl library from $LIBS
-LIBS=`echo "$LIBS" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'`
-
-fi
-fi
-### Set up low-level terminfo dependencies for makefiles.
-
-# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
-# do not need libdl
-TICS_LIST=
-if test "$with_dlsym" = yes ; then
-
-# remove dl library from $SHLIB_LIST
-TINFO_LIST=`echo "$SHLIB_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'`
-
-fi
-
-if test "$with_ticlib" != no ; then
-
- if test "$with_ticlib" != yes ; then
- TICS_NAME=$with_ticlib
- TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TICS_LIB_SUFFIX="${with_ticlib}"
- else
- TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
- TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
- TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
- fi
- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
-else
- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-fi
-
-if test "$with_termlib" != no ; then
-
- if test "$with_termlib" != yes ; then
- TINFO_NAME=$with_termlib
- TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_LIB_SUFFIX="${with_termlib}"
- else
- TINFO_SUFFIX=${DFT_LIB_SUFFIX}
- TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
- TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
- TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
- fi
-
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
- TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
- else
- TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
- TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
- SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
- fi
-else
- # the next lines are needed for linking libtic over libncurses
- TINFO_NAME=${LIB_NAME}
- TINFO_SUFFIX=${DFT_LIB_SUFFIX}
- TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
- TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-
- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-fi
-
-if test "$DFT_LWR_MODEL" = shared ; then
- case $cf_cv_system_name in #(vi
- cygwin*)
- # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
- TINFO_SUFFIX=.dll
- ;;
- esac
-fi
-
-if test "$with_dlsym" = yes ; then
-
-# remove dl library from $TICS_LIST
-TICS_LIST=`echo "$TICS_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'`
-
-fi
-
-if test "$DFT_LWR_MODEL" = "libtool"; then
- OBJEXT=lo
-fi
-
-# needed for Ada95
-TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
-
-case $DFT_LWR_MODEL in
-normal|debug|profile)
-
-if test "$GCC" = yes ; then
- LDFLAGS_STATIC=-static
- LDFLAGS_SHARED=-dynamic
-else
- case $cf_cv_system_name in #(
- aix[45]*) #( from ld manpage
- LDFLAGS_STATIC=-bstatic
- LDFLAGS_SHARED=-bdynamic
- ;;
- hpux*) #( from ld manpage for hpux10.20, hpux11.11
- # We could also use just "archive" and "shared".
- LDFLAGS_STATIC=-Wl,-a,archive_shared
- LDFLAGS_SHARED=-Wl,-a,shared_archive
- ;;
- irix*) #( from ld manpage IRIX64
- LDFLAGS_STATIC=-Bstatic
- LDFLAGS_SHARED=-Bdynamic
- ;;
- osf[45]*) #( from ld manpage osf4.0d, osf5.1
- # alternative "-oldstyle_liblookup" (not in cc manpage)
- LDFLAGS_STATIC=-noso
- LDFLAGS_SHARED=-so_archive
- ;;
- solaris2*)
- LDFLAGS_STATIC=-Bstatic
- LDFLAGS_SHARED=-Bdynamic
- ;;
- esac
-fi
-
- ;;
-esac
-
-echo "$as_me:15865: 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:15870: 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:15878: 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
-
-# used to separate tack out of the tree
-NCURSES_TREE=
-
-### predefined stuff for the test programs
-cat >>confdefs.h <<\EOF
-#define HAVE_SLK_COLOR 1
-EOF
-
-### Construct the list of subdirectories for which we'll customize makefiles
-### with the appropriate compile-rules.
-
-echo "$as_me:15894: checking for src modules" >&5
-echo $ECHO_N "checking for src modules... $ECHO_C" >&6
-
-# dependencies and linker-arguments for test-programs
-TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
-TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
-if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
-else
- TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
- TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
-fi
-
-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"
- TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
- else
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
- fi
- fi
- fi
-done
-echo "$as_me:15957: result: $cf_cv_src_modules" >&5
-echo "${ECHO_T}$cf_cv_src_modules" >&6
-
-TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
-TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
-
-SRC_SUBDIRS="man include"
-for cf_dir in $cf_cv_src_modules
-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
-
-if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
-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
-
-cat >>confdefs.h <<EOF
-#define NCURSES_VERSION_STRING "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}"
-EOF
-
-### Now that we're done running tests, add the compiler-warnings, if any
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $EXTRA_CFLAGS
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-### If we're building with rpath, try to link non-standard libs that way too.
-if test "$DFT_LWR_MODEL" = "shared"; then
-
-echo "$as_me:16106: checking for updated LDFLAGS" >&5
-echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
-if test -n "$LDFLAGS" ; then
-echo "$as_me:16109: result: maybe" >&5
-echo "${ECHO_T}maybe" >&6
-test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6
-
-echo "${as_me-configure}:16113: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
-
-test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-
-echo "${as_me-configure}:16117: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-
-case "$EXTRA_LDFLAGS" in #(vi
--Wl,-rpath,*) #(vi
- cf_rpath_hack="-Wl,-rpath,"
- ;;
--R\ *)
- cf_rpath_hack="-R "
- ;;
--R*)
- cf_rpath_hack="-R"
- ;;
-*)
- cf_rpath_hack=
- ;;
-esac
-if test -n "$cf_rpath_hack" ; then
- cf_rpath_dst=
- for cf_rpath_src in $LDFLAGS
- do
- test -n "$verbose" && echo " Filtering $cf_rpath_src" 1>&6
-
-echo "${as_me-configure}:16139: testing Filtering $cf_rpath_src ..." 1>&5
-
- case $cf_rpath_src in #(vi
- -L*) #(vi
- if test "$cf_rpath_hack" = "-R " ; then
- cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
- else
- cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
- fi
- test -n "$verbose" && echo " ...Filter $cf_rpath_tmp" 1>&6
-
-echo "${as_me-configure}:16150: testing ...Filter $cf_rpath_tmp ..." 1>&5
-
- EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
- ;;
- *)
- cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
- ;;
- esac
- done
- LDFLAGS=$cf_rpath_dst
- test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6
-
-echo "${as_me-configure}:16162: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
-
- test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-
-echo "${as_me-configure}:16166: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-
-fi
-else
-echo "$as_me:16170: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-
-### Define substitutions for header files to avoid name-pollution
-
-if test "$cf_cv_have_tcgetattr" = yes ; then
- HAVE_TCGETATTR=1
-else
- HAVE_TCGETATTR=0
-fi
-
-if test "$ac_cv_header_termio_h" = yes ; then
- HAVE_TERMIO_H=1
-else
- HAVE_TERMIO_H=0
-fi
-
-if test "$ac_cv_header_termios_h" = yes ; then
- HAVE_TERMIOS_H=1
-else
- HAVE_TERMIOS_H=0
-fi
-
-################################################################################
-test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
-SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
-ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/termcap.h include/unctrl.h $SUB_MAKEFILES Makefile"
-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:16280: 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.20080325,
- 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:16456: 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:16475: 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.20080325, 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"
-DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
-DFT_LWR_MODEL="$DFT_LWR_MODEL"
-ECHO_LINK="$ECHO_LINK"
-LDCONFIG="$LDCONFIG"
-LIB_NAME="$LIB_NAME"
-LIB_SUBSETS="$LIB_SUBSETS"
-LIB_SUFFIX="$LIB_SUFFIX"
-LIB_TRACING="$LIB_TRACING"
-MAKE_TERMINFO="$MAKE_TERMINFO"
-NCURSES_MAJOR="$NCURSES_MAJOR"
-NCURSES_MINOR="$NCURSES_MINOR"
-NCURSES_OSPEED="$NCURSES_OSPEED"
-NCURSES_PATCH="$NCURSES_PATCH"
-SRC_SUBDIRS="$SRC_SUBDIRS"
-TERMINFO="$TERMINFO"
-TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
-TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
-TINFO_NAME="$TINFO_NAME"
-TINFO_SUFFIX="$TINFO_SUFFIX"
-TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
-TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
-TICS_NAME="$TICS_NAME"
-WITH_CURSES_H="$with_curses_h"
-WITH_ECHO="$with_echo"
-WITH_OVERWRITE="$with_overwrite"
-cf_LIST_MODELS="$cf_list_models"
-cf_cv_abi_version="$cf_cv_abi_version"
-cf_cv_do_relink="$cf_cv_do_relink"
-cf_cv_do_symlinks="$cf_cv_do_symlinks"
-cf_cv_enable_lp64="$cf_cv_enable_lp64"
-cf_cv_enable_opaque="$cf_cv_enable_opaque"
-cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
-cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
-cf_cv_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"
-host="$host"
-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" ;;
- "$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:16571: 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,@top_builddir@,$top_builddir,;t t
-s,@EGREP@,$EGREP,;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_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,@CPP@,$CPP,;t t
-s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
-s,@PROG_EXT@,$PROG_EXT,;t t
-s,@LDCONFIG@,$LDCONFIG,;t t
-s,@CXX@,$CXX,;t t
-s,@CXXFLAGS@,$CXXFLAGS,;t t
-s,@ac_ct_CXX@,$ac_ct_CXX,;t t
-s,@AWK@,$AWK,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@LINT@,$LINT,;t t
-s,@LINT_OPTS@,$LINT_OPTS,;t t
-s,@LN_S@,$LN_S,;t t
-s,@SET_MAKE@,$SET_MAKE,;t t
-s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
-s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t
-s,@cf_cv_makeflags@,$cf_cv_makeflags,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@LD@,$LD,;t t
-s,@ac_ct_LD@,$ac_ct_LD,;t t
-s,@AR@,$AR,;t t
-s,@ac_ct_AR@,$ac_ct_AR,;t t
-s,@AR_OPTS@,$AR_OPTS,;t t
-s,@DESTDIR@,$DESTDIR,;t t
-s,@BUILD_CC@,$BUILD_CC,;t t
-s,@BUILD_CPP@,$BUILD_CPP,;t t
-s,@BUILD_CFLAGS@,$BUILD_CFLAGS,;t t
-s,@BUILD_CPPFLAGS@,$BUILD_CPPFLAGS,;t t
-s,@BUILD_LDFLAGS@,$BUILD_LDFLAGS,;t t
-s,@BUILD_LIBS@,$BUILD_LIBS,;t t
-s,@BUILD_EXEEXT@,$BUILD_EXEEXT,;t t
-s,@BUILD_OBJEXT@,$BUILD_OBJEXT,;t t
-s,@cf_list_models@,$cf_list_models,;t t
-s,@LIBTOOL@,$LIBTOOL,;t t
-s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
-s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t
-s,@LIB_CREATE@,$LIB_CREATE,;t t
-s,@LIB_OBJECT@,$LIB_OBJECT,;t t
-s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t
-s,@LIB_PREP@,$LIB_PREP,;t t
-s,@LIB_CLEAN@,$LIB_CLEAN,;t t
-s,@LIB_COMPILE@,$LIB_COMPILE,;t t
-s,@LIB_LINK@,$LIB_LINK,;t t
-s,@LIB_INSTALL@,$LIB_INSTALL,;t t
-s,@LIB_UNINSTALL@,$LIB_UNINSTALL,;t t
-s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t
-s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t
-s,@TICS_NAME@,$TICS_NAME,;t t
-s,@TINFO_NAME@,$TINFO_NAME,;t t
-s,@LIB_NAME@,$LIB_NAME,;t t
-s,@LIB_PREFIX@,$LIB_PREFIX,;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,@WHICH_XTERM@,$WHICH_XTERM,;t t
-s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
-s,@TERMINFO@,$TERMINFO,;t t
-s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t
-s,@USE_BIG_STRINGS@,$USE_BIG_STRINGS,;t t
-s,@TERMPATH@,$TERMPATH,;t t
-s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
-s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t
-s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t
-s,@NEED_WCHAR_H@,$NEED_WCHAR_H,;t t
-s,@NCURSES_MBSTATE_T@,$NCURSES_MBSTATE_T,;t t
-s,@NCURSES_WCHAR_T@,$NCURSES_WCHAR_T,;t t
-s,@NCURSES_WINT_T@,$NCURSES_WINT_T,;t t
-s,@NCURSES_OK_WCHAR_T@,$NCURSES_OK_WCHAR_T,;t t
-s,@NCURSES_OK_WINT_T@,$NCURSES_OK_WINT_T,;t t
-s,@cf_cv_enable_lp64@,$cf_cv_enable_lp64,;t t
-s,@NCURSES_TPARM_VARARGS@,$NCURSES_TPARM_VARARGS,;t t
-s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t
-s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
-s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
-s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
-s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
-s,@NCURSES_CONST@,$NCURSES_CONST,;t t
-s,@NCURSES_SBOOL@,$NCURSES_SBOOL,;t t
-s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
-s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLORS,;t t
-s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
-s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t
-s,@cf_cv_enable_opaque@,$cf_cv_enable_opaque,;t t
-s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t
-s,@NCURSES_SIZE_T@,$NCURSES_SIZE_T,;t t
-s,@ECHO_LINK@,$ECHO_LINK,;t t
-s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
-s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
-s,@ADA_TRACE@,$ADA_TRACE,;t t
-s,@MATH_LIB@,$MATH_LIB,;t t
-s,@NCURSES_INLINE@,$NCURSES_INLINE,;t t
-s,@cf_cv_typeof_chtype@,$cf_cv_typeof_chtype,;t t
-s,@cf_cv_1UL@,$cf_cv_1UL,;t t
-s,@cf_cv_typeof_mmask_t@,$cf_cv_typeof_mmask_t,;t t
-s,@HAVE_VSSCANF@,$HAVE_VSSCANF,;t t
-s,@TEST_LIBS@,$TEST_LIBS,;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,@USE_CXX_BOOL@,$USE_CXX_BOOL,;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,@PRAGMA_UNREF@,$PRAGMA_UNREF,;t t
-s,@ADA_INCLUDE@,$ADA_INCLUDE,;t t
-s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t
-s,@ACPPFLAGS@,$ACPPFLAGS,;t t
-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,@TICS_ARG_SUFFIX@,$TICS_ARG_SUFFIX,;t t
-s,@TICS_DEP_SUFFIX@,$TICS_DEP_SUFFIX,;t t
-s,@TICS_LIB_SUFFIX@,$TICS_LIB_SUFFIX,;t t
-s,@TICS_ARGS@,$TICS_ARGS,;t t
-s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t
-s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t
-s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t
-s,@TINFO_ARGS@,$TINFO_ARGS,;t t
-s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
-s,@LDFLAGS_STATIC@,$LDFLAGS_STATIC,;t t
-s,@LDFLAGS_SHARED@,$LDFLAGS_SHARED,;t t
-s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t
-s,@TICS_LIST@,$TICS_LIST,;t t
-s,@TINFO_LIST@,$TINFO_LIST,;t t
-s,@SHLIB_LIST@,$SHLIB_LIST,;t t
-s,@NCURSES_TREE@,$NCURSES_TREE,;t t
-s,@TEST_ARGS@,$TEST_ARGS,;t t
-s,@TEST_DEPS@,$TEST_DEPS,;t t
-s,@TEST_ARG2@,$TEST_ARG2,;t t
-s,@TEST_DEP2@,$TEST_DEP2,;t t
-s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t
-s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t
-s,@HAVE_TCGETATTR@,$HAVE_TCGETATTR,;t t
-s,@HAVE_TERMIO_H@,$HAVE_TERMIO_H,;t t
-s,@HAVE_TERMIOS_H@,$HAVE_TERMIOS_H,;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:16953: 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:16971: 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:16984: 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:17050: 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:17061: 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:17074: 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 | sed -e 's/#ifdef.*/#if 0/' >> $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:17132: $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 )
-
-for cf_dir in test
-do
- if test ! -d $srcdir/$cf_dir; then
- continue
- elif test -f $srcdir/$cf_dir/programs; then
- $AWK -f $srcdir/test/mk-test.awk ECHO_LINK="$ECHO_LINK" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
- fi
-done
-
- 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 ! -d $srcdir/$cf_dir ; then
- continue
- elif test -f $srcdir/$cf_dir/modules; then
-
- 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*)
- case $target in
- ia64*) cf_suffix='.so' ;;
- *) cf_suffix='.sl' ;;
- esac
- ;;
- *) 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*)
- case .${LIB_SUFFIX} in
- .w*)
- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
- cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
- ;;
- *)
- cf_suffix='.${REL_VERSION}'"$cf_suffix"
- ;;
- esac
- ;; #(vi
- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
- esac
- ;;
- abi)
- case "$cf_cv_system_name" in #(vi
- darwin*)
- case .${LIB_SUFFIX} in
- .w*)
- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
- ;;
- *)
- cf_suffix='.${ABI_VERSION}'"$cf_suffix"
- ;;
- esac
- ;; #(vi
- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
- esac
- ;;
- esac
- fi
- # cygwin needs import library, and has unique naming convention
- # use autodetected ${cf_prefix} for import lib and static lib, but
- # use 'cyg' prefix for shared lib.
- if test $cf_cv_shlib_version = cygdll ; then
- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
- 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"
- cf_r_parts="$cf_subsets"
-
- while test -n "$cf_r_parts"
- do
- cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
- cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[^ ]* //'`
- if test "$cf_l_parts" != "$cf_r_parts" ; then
- case $cf_l_parts in #(vi
- *termlib*) #(vi
- cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
- ;;
- *ticlib*)
- cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
- ;;
- *)
- break
- ;;
- esac
- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
- else
- break
- fi
- done
- else
- cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
- fi
-
- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
- -e "s%@SHARED_LIB@%$SHARED_LIB%" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
- $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*)
- case $target in
- ia64*) cf_suffix='.so' ;;
- *) cf_suffix='.sl' ;;
- esac
- ;;
- *) 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
-
- # Test for case where we build libtinfo with a different name.
- cf_libname=$cf_dir
- if test $cf_dir = ncurses ; then
- case $cf_subset in
- *base*)
- ;;
- *termlib*)
- cf_libname=$TINFO_LIB_SUFFIX
- if test -n "${DFT_ARG_SUFFIX}" ; then
- # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
- cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
- fi
- ;;
- ticlib*)
- cf_libname=$TICS_LIB_SUFFIX
- if test -n "${DFT_ARG_SUFFIX}" ; then
- # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
- cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
- fi
- ;;
- esac
- fi
-
- # These dependencies really are for development, not
- # builds, but they are useful in porting, too.
- cf_depend="../include/ncurses_cfg.h"
- 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
-
- cf_dir_suffix=
- old_cf_suffix="$cf_suffix"
- if test "$cf_cv_shlib_version_infix" = yes ; then
- if test -n "$LIB_SUFFIX" ; then
- case $LIB_SUFFIX in
- w*)
- cf_libname=`echo $cf_libname | sed 's/w$//'`
- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
- cf_dir_suffix=w
- ;;
- esac
- fi
- fi
-
- $AWK -f $srcdir/mk-1st.awk \
- name=${cf_libname}${cf_dir_suffix} \
- traces=$LIB_TRACING \
- MODEL=$cf_ITEM \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
- TermlibRoot=$TINFO_NAME \
- TermlibSuffix=$TINFO_SUFFIX \
- ShlibVer=$cf_cv_shlib_version \
- ShlibVerInfix=$cf_cv_shlib_version_infix \
- ReLink=${cf_cv_do_relink-no} \
- DoLinks=$cf_cv_do_symlinks \
- rmSoLocs=$cf_cv_rm_so_locs \
- ldconfig="$LDCONFIG" \
- overwrite=$WITH_OVERWRITE \
- depend="$cf_depend" \
- host="$host" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- cf_suffix="$old_cf_suffix"
-
- for cf_subdir2 in $cf_subdirs lib
- do
- test $cf_subdir = $cf_subdir2 && break
- 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 \
- crenames=$cf_cv_prog_CC_c_o \
- cxxrenames=$cf_cv_prog_CXX_c_o \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- cf_subdirs="$cf_subdirs $cf_subdir"
- done
- done
- fi
-
- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >>Makefile
-done
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test ! -d $srcdir/$cf_dir ; then
- continue
- fi
-
- 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.libs uninstall.libs \\
-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 mk_shared_lib.sh
- 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 ! -d $srcdir/$cf_dir ; then
- continue
- fi
-
- if test -f $srcdir/$cf_dir/headers; then
- $AWK -f $srcdir/mk-hdr.awk \
- subset="$LIB_SUBSETS" \
- compat="$WITH_CURSES_H" \
- $srcdir/$cf_dir/headers >>$cf_dir/Makefile
- 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/contrib/ncurses/configure.in b/contrib/ncurses/configure.in
deleted file mode 100644
index 8fa5e4eaaa56..000000000000
--- a/contrib/ncurses/configure.in
+++ /dev/null
@@ -1,1782 +0,0 @@
-dnl***************************************************************************
-dnl Copyright (c) 1998-2006,2007 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: configure.in,v 1.433 2008/04/12 23:39:06 tom Exp $
-dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl See http://invisible-island.net/autoconf/ for additional information.
-dnl
-dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20020210)
-AC_REVISION($Revision: 1.433 $)
-AC_INIT(ncurses/base/lib_initscr.c)
-AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
-
-CF_TOP_BUILDDIR
-CF_SUBST_NCURSES_VERSION
-
-CF_WITH_REL_VERSION(NCURSES)
-CF_WITH_ABI_VERSION
-
-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
-AC_ARG_WITH(system-type,
-[ --with-system-type=XXX test: override derived host system-type],
-[AC_MSG_WARN(overriding system type to $withval)
- cf_cv_system_name=$withval])
-
-### Save the given $CFLAGS to allow user-override.
-cf_user_CFLAGS="$CFLAGS"
-
-### Default install-location
-CF_CFG_DEFAULTS
-
-### Checks for programs.
-AC_PROG_CC
-CF_GCC_VERSION
-
-AC_PROG_CPP
-AC_PROG_GCC_TRADITIONAL
-CF_PROG_CC_C_O(CC)
-AC_ISC_POSIX
-CF_ANSI_CC_REQD
-CF_PROG_EXT
-CF_PROG_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
- # with autoconf 2.13, we can change the error to a warning:
- pushdef([AC_MSG_ERROR],
- [AC_MSG_RESULT(no)
- AC_MSG_WARN([You don't have any C++ compiler, too bad])
- cf_with_cxx=no; CXX=""; GXX="";])dnl
- AC_PROG_CXX
- popdef([AC_MSG_ERROR])dnl
- # autoconf 2.5x removed the error - by hardcoding it to g++.
- if test "$CXX" = "g++" ; then
- AC_PATH_PROG(CXX,g++)
- fi
- if test "$CXX" = "g++" ; then
- AC_MSG_WARN(ignoring hardcoded g++)
- cf_with_cxx=no; CXX=""; GXX="";
- fi
-fi
-
-CF_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
-
-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
-
-CF_PROG_AWK
-CF_PROG_EGREP
-CF_PROG_INSTALL
-CF_PROG_LINT
-AC_PROG_LN_S
-
-AC_SYS_LONG_FILE_NAMES
-
-AC_MSG_CHECKING(if we should assume mixed-case filenames)
-AC_ARG_ENABLE(mixed-case,
- [ --enable-mixed-case tic should assume mixed-case filenames],
- [enable_mixedcase=$enableval],
- [enable_mixedcase=auto])
-AC_MSG_RESULT($enable_mixedcase)
-if test "$enable_mixedcase" = "auto" ; then
- CF_MIXEDCASE_FILENAMES
-else
- cf_cv_mixedcase=$enable_mixedcase
- if test "$enable_mixedcase" = "yes" ; then
- AC_DEFINE(MIXEDCASE_FILENAMES)
- fi
-fi
-
-# do this after mixed-case option (tags/TAGS is not as important as tic).
-AC_PROG_MAKE_SET
-CF_MAKE_TAGS
-CF_MAKEFLAGS
-
-dnl These are standard among *NIX systems, but not when cross-compiling
-AC_CHECK_TOOL(RANLIB, ranlib, ':')
-AC_CHECK_TOOL(LD, ld, ld)
-AC_CHECK_TOOL(AR, ar, ar)
-CF_SUBST(archiver options,AR_OPTS,rv)
-
-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(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:)
-# If we're cross-compiling, allow the user to override the tools and their
-# options. The configure script is oriented toward identifying the host
-# compiler, etc., but we need a build compiler to generate parts of the source.
-CF_BUILD_CC
-
-###############################################################################
-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")
-
-CF_WITH_LIBTOOL
-if test "$with_libtool" != "no" ; then
-
-cf_list_models="$cf_list_models libtool"
-
-else
-
-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"
-
-fi
-
-###############################################################################
-
-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" != "no" && 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")
-
-TICS_NAME=tic
-AC_SUBST(TICS_NAME)
-
-TINFO_NAME=tinfo
-AC_SUBST(TINFO_NAME)
-
-LIB_NAME=ncurses
-AC_SUBST(LIB_NAME)
-
-LIB_DIR=../lib
-LIB_2ND=../../lib
-
-CF_LIB_PREFIX(cf_prefix)
-LIB_PREFIX=$cf_prefix
-AC_SUBST(LIB_PREFIX)
-
-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)
-
-AC_MSG_CHECKING(if you want to build a separate tic library)
-AC_ARG_WITH(ticlib,
- [ --with-ticlib generate separate tic library],
- [with_ticlib=$withval],
- [with_ticlib=no])
-AC_MSG_RESULT($with_ticlib)
-
-### Checks for special libraries, must be done up-front.
-SHLIB_LIST=""
-CF_WITH_GPM
-if test "$with_gpm" != no ; then
- AC_MSG_CHECKING(if you want to load GPM dynamically)
- AC_ARG_WITH(dlsym,
- [ --without-dlsym do not use dlsym() to load GPM dynamically],
- [with_dlsym=$withval],
- [with_dlsym=yes])
- AC_MSG_RESULT($with_dlsym)
- if test "$with_dlsym" = yes ; then
- CF_FUNC_DLSYM
- if test "$with_gpm" != yes ; then
- CF_VERBOSE(assuming soname for gpm is $with_gpm)
- cf_cv_gpm_soname="$with_gpm"
- else
- CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
- fi
- test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname")
- SHLIB_LIST="-ldl $SHLIB_LIST"
- else
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- fi
- AC_DEFINE(HAVE_LIBGPM)
- CF_CHECK_GPM_WGETCH
-fi
-
-CF_WITH_SYSMOUSE
-
-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)
-
-case $DFT_LWR_MODEL in
-shared)
-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)
-AC_MSG_CHECKING(if shared libraries should be relinked during install)
-AC_ARG_ENABLE(relink,
-[ --disable-relink relink shared libraries during install],
-[cf_cv_do_relink=$enableval],
-[cf_cv_do_relink=yes])
-AC_MSG_RESULT($cf_cv_do_relink)
- ;;
-esac
-
-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)
-
- AC_MSG_CHECKING(whether to use hashed database instead of directory/tree)
- AC_ARG_WITH(hashed-db,
- [ --with-hashed-db specify hashed-database library],,
- [with_hashed_db=no])
- AC_MSG_RESULT($with_hashed_db)
-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)
-
-AC_MSG_CHECKING(if you want modern xterm or antique)
-AC_ARG_WITH(xterm-new,
- [ --without-xterm-new specify if xterm terminfo should be old version],
- [with_xterm_new=$withval],
- [with_xterm_new=yes])
-case $with_xterm_new in
-no) with_xterm_new=xterm-old;;
-*) with_xterm_new=xterm-new;;
-esac
-AC_MSG_RESULT($with_xterm_new)
-WHICH_XTERM=$with_xterm_new
-AC_SUBST(WHICH_XTERM)
-
-MAKE_TERMINFO=
-if test "$use_database" = no ; then
- TERMINFO="${datadir}/terminfo"
- 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;
- ${cf_cv_main_return:-return}(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)
-
-### ISO C only guarantees 512-char strings, we have tables which load faster
-### when constructed using "big" strings.
-AC_MSG_CHECKING(if big-strings option selected)
-AC_ARG_ENABLE(big-strings,
- [ --disable-big-strings assume compiler has only standard-size strings],
- [with_big_strings=no],
- [with_big_strings=yes])
-AC_MSG_RESULT($with_big_strings)
-
-USE_BIG_STRINGS=0
-test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
-AC_SUBST(USE_BIG_STRINGS)
-
-### 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
-
-if test "$with_ticlib" != no ; then
- AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
-fi
-
-AC_DEFINE(USE_TERMCAP)
-AC_MSG_CHECKING(for list of termcap files)
-CF_WITH_PATHLIST(termpath,
- [ --with-termpath=XXX specify list of termcap files],
- TERMPATH,
- /etc/termcap:/usr/share/misc/termcap)
-AC_MSG_RESULT($TERMPATH)
-test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH")
-
-### use option --enable-getcap to use a hacked getcap for reading termcaps
-AC_MSG_CHECKING(if fast termcap-loader is needed)
-AC_ARG_ENABLE(getcap,
- [ --enable-getcap fast termcap load, no xrefs to terminfo],
- [with_getcap=$enableval],
- [with_getcap=no])
-AC_MSG_RESULT($with_getcap)
-test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)
-
-AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
-AC_ARG_ENABLE(getcap-cache,
- [ --enable-getcap-cache cache translated termcaps in ~/.terminfo],
- [with_getcap_cache=$enableval],
- [with_getcap_cache=no])
-AC_MSG_RESULT($with_getcap_cache)
-test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)
-
-fi
-
-### Use option --disable-home-terminfo to completely remove ~/.terminfo
-AC_MSG_CHECKING(if ~/.terminfo is wanted)
-AC_ARG_ENABLE(home-terminfo,
- [ --disable-home-terminfo drop ~/.terminfo from terminfo search-path],
- [with_home_terminfo=$enableval],
- [with_home_terminfo=yes])
-AC_MSG_RESULT($with_home_terminfo)
-test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO)
-
-AC_MSG_CHECKING(if you want to use restricted environment when running as root)
-AC_ARG_ENABLE(root-environ,
- [ --disable-root-environ restrict environment when running as root],
- [with_root_environ=$enableval],
- [with_root_environ=yes])
-AC_MSG_RESULT($with_root_environ)
-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
-
-### Use option --enable-symlinks to make tic use symlinks, not hard links
-### to reduce storage requirements for the terminfo database.
-CF_LINK_FUNCS
-
-with_links=no
-with_symlinks=no
-
-# soft links (symbolic links) are useful for some systems where hard links do
-# not work, or to make it simpler to copy terminfo trees around.
-if test "$ac_cv_func_symlink" = yes ; then
- 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
-
-# If we have hard links and did not choose to use soft links instead, there is
-# no reason to make this choice optional - use the hard links.
-if test "$with_symlinks" = no ; then
- 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)
-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-no}])
-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 --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)
-
-### use option --enable-widec to turn on use of wide-character support
-NCURSES_CH_T=chtype
-NCURSES_LIBUTF8=0
-
-NEED_WCHAR_H=0
-NCURSES_MBSTATE_T=0
-NCURSES_WCHAR_T=0
-NCURSES_WINT_T=0
-
-# Check to define _XOPEN_SOURCE "automatically"
-CF_XOPEN_SOURCE
-
-# Work around breakage on OS X
-CF_SIGWINCH
-
-# Checks for CODESET support.
-AM_LANGINFO_CODESET
-
-# use these variables to work around a defect in gcc's fixincludes.
-NCURSES_OK_WCHAR_T=
-NCURSES_OK_WINT_T=
-
-AC_MSG_CHECKING(if you want wide-character code)
-AC_ARG_ENABLE(widec,
- [ --enable-widec compile with wide-char/UTF-8 code],
- [with_widec=$enableval],
- [with_widec=no])
-AC_MSG_RESULT($with_widec)
-if test "$with_widec" = yes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
- AC_DEFINE(USE_WIDEC_SUPPORT)
- CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
- # with_overwrite=no
- NCURSES_CH_T=cchar_t
- AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
- if test "$ac_cv_func_putwc" != yes ; then
- CF_LIBUTF8
- if test "$cf_cv_libutf8" = yes ; then
- NCURSES_LIBUTF8=1
- fi
- fi
- CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T)
- CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
- CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
-
- if test "$NCURSES_MBSTATE_T" != 0; then
- AC_DEFINE(NEED_MBSTATE_T_DEF)
- fi
-fi
-AC_SUBST(NCURSES_CH_T)
-AC_SUBST(NCURSES_LIBUTF8)
-
-AC_SUBST(NEED_WCHAR_H)
-AC_SUBST(NCURSES_MBSTATE_T)
-AC_SUBST(NCURSES_WCHAR_T)
-AC_SUBST(NCURSES_WINT_T)
-
-AC_SUBST(NCURSES_OK_WCHAR_T)
-AC_SUBST(NCURSES_OK_WINT_T)
-
-### use option --disable-lp64 to allow long chtype
-case $cf_cv_abi_version in
-[[345]]*)
- default_with_lp64=no
- ;;
-*)
- default_with_lp64=yes
- ;;
-esac
-
-AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h)
-AC_ARG_ENABLE(lp64,
- [ --disable-lp64 allow chtype to be long (ignore _LP64)],
- [with_lp64=$enableval],
- [with_lp64=$default_with_lp64])
-AC_MSG_RESULT($with_lp64)
-
-if test "$with_lp64" = yes ; then
- cf_cv_enable_lp64=1
-else
- cf_cv_enable_lp64=0
-fi
-AC_SUBST(cf_cv_enable_lp64)
-
-CF_LARGEFILE
-
-### use option --disable-tparm-varargs to make tparm() conform to X/Open
-AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list)
-AC_ARG_ENABLE(tparm-varargs,
- [ --disable-tparm-varargs compile tparm() without varargs interface],
- [with_tparm_varargs=$enableval],
- [with_tparm_varargs=yes])
-AC_MSG_RESULT($with_tparm_varargs)
-NCURSES_TPARM_VARARGS=0
-test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
-AC_SUBST(NCURSES_TPARM_VARARGS)
-
-### 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)
-
-AC_MSG_CHECKING(for alternate terminal capabilities file)
-AC_ARG_WITH(caps,
- [ --with-caps=alt compile with alternate Caps file],
- [TERMINFO_CAPS=Caps.$withval],
- [TERMINFO_CAPS=Caps])
-test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
-AC_MSG_RESULT($TERMINFO_CAPS)
-AC_SUBST(TERMINFO_CAPS)
-
-### use option --with-chtype to override chtype's type
-AC_MSG_CHECKING(for type of chtype)
-AC_ARG_WITH(chtype,
- [ --with-chtype=TYPE override type of chtype],
- [NCURSES_CHTYPE="$withval"],
- [NCURSES_CHTYPE=auto])
-AC_MSG_RESULT($NCURSES_CHTYPE)
-
-### use option --with-ospeed to override ospeed's type
-AC_MSG_CHECKING(for type of ospeed)
-AC_ARG_WITH(ospeed,
- [ --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 --with-mmask-t to override mmask_t's type
-AC_MSG_CHECKING(for type of mmask_t)
-AC_ARG_WITH(mmask-t,
- [ --with-mmask-t=TYPE override type of mmask_t],
- [NCURSES_MMASK_T="$withval"],
- [NCURSES_MMASK_T=auto])
-AC_MSG_RESULT($NCURSES_MMASK_T)
-
-### 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_RESIZE_TERM)
- 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)
-
-AC_CHECK_SIZEOF([signed char], 0)
-if test "$ac_cv_sizeof_signed_char" = 1 ; then
- NCURSES_SBOOL="signed char"
-else
- NCURSES_SBOOL="char"
-fi
-AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
-AC_ARG_ENABLE(signed-char,
- [ --enable-signed-char compile using signed Boolean's in term.h],
- [with_signed_char=$enableval],
- [with_signed_char=no])
-AC_MSG_RESULT($with_signed_char)
-test "$with_signed_char" != yes && NCURSES_SBOOL="char"
-AC_SUBST(NCURSES_SBOOL)
-
-### 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,
- [ --without-develop disable 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],,
- [enable_hard_tabs=$with_develop])
-AC_MSG_RESULT($enable_hard_tabs)
-test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS)
-
-### 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 support for xmc (magic-cookie)],,
- [enable_xmc_glitch=$with_develop])
-AC_MSG_RESULT($enable_xmc_glitch)
-test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)
-
-###############################################################################
-# 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)
-
-### use option --enable-ext-colors to turn on use of colors beyond 16.
-AC_MSG_CHECKING(if you want to use experimental extended colors)
-AC_ARG_ENABLE(ext-colors,
- [ --enable-ext-colors compile for experimental 256-color support],
- [with_ext_colors=$enableval],
- [with_ext_colors=no])
-AC_MSG_RESULT($with_ext_colors)
-NCURSES_EXT_COLORS=0
-if test "$with_ext_colors" = yes ; then
- if test "$with_widec" != yes ; then
- AC_MSG_ERROR(This option applies only to wide-character library)
- else
- # cannot be ABI 5 since it changes sizeof(cchar_t)
- CF_NCURSES_ABI_6
- fi
- NCURSES_EXT_COLORS=1
- AC_DEFINE(NCURSES_EXT_COLORS)
-fi
-AC_SUBST(NCURSES_EXT_COLORS)
-
-### use option --enable-ext-mouse to modify coding to support 5-button mice
-AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
-AC_ARG_ENABLE(ext-mouse,
- [ --enable-ext-mouse compile for experimental mouse-encoding],
- [with_ext_mouse=$enableval],
- [with_ext_mouse=no])
-AC_MSG_RESULT($with_ext_mouse)
-NCURSES_MOUSE_VERSION=1
-if test "$with_ext_mouse" = yes ; then
- NCURSES_MOUSE_VERSION=2
- CF_NCURSES_ABI_6
-fi
-AC_SUBST(NCURSES_MOUSE_VERSION)
-
-# This is still experimental (20080329), but should ultimately be moved to
-# the script-block --with-normal, etc.
-CF_WITH_PTHREAD
-if test "$with_pthread" = "yes" ; then
- AC_DEFINE(USE_PTHREADS)
- enable_reentrant=yes
-fi
-
-# Reentrant code has to be opaque; there's little advantage to making ncurses
-# opaque outside of that, so there is no --enable-opaque option. We can use
-# this option without --with-pthreads, but this will be always set for
-# pthreads.
-AC_MSG_CHECKING(if you want experimental reentrant code)
-AC_ARG_ENABLE(reentrant,
- [ --enable-reentrant compile with experimental reentrant code],
- [with_reentrant=$enableval],
- [with_reentrant=no])
-AC_MSG_RESULT($with_reentrant)
-if test "$with_reentrant" = yes ; then
- cf_cv_enable_reentrant=1
- cf_cv_enable_opaque="NCURSES_INTERNALS"
- NCURSES_OPAQUE=1
- NCURSES_SIZE_T=int
- LIB_SUFFIX="t${LIB_SUFFIX}"
- AC_DEFINE(USE_REENTRANT)
- CF_NCURSES_ABI_6
-else
- cf_cv_enable_reentrant=0
- cf_cv_enable_opaque="NCURSES_OPAQUE"
- NCURSES_OPAQUE=0
- NCURSES_SIZE_T=short
-fi
-AC_SUBST(cf_cv_enable_reentrant)
-AC_SUBST(cf_cv_enable_opaque)
-AC_SUBST(NCURSES_OPAQUE)
-AC_SUBST(NCURSES_SIZE_T)
-
-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
-
-AC_MSG_CHECKING(if you want experimental wgetch-events code)
-AC_ARG_ENABLE(wgetch-events,
- [ --enable-wgetch-events compile with experimental wgetch-events code],
- [with_wgetch_events=$enableval],
- [with_wgetch_events=no])
-AC_MSG_RESULT($with_wgetch_events)
-test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS)
-
-###############################################################################
-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"
- test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
-fi
-AC_MSG_RESULT($with_echo)
-AC_SUBST(ECHO_LINK)
-
-### use option --enable-warnings to turn on all gcc warnings
-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 "x$with_warnings" = "xyes"; then
- ADAFLAGS="$ADAFLAGS -gnatg"
- CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
- if test "$cf_with_cxx" = yes ; then
- CF_GXX_WARNINGS(Wno-unused)
- fi
-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
-CF_DISABLE_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)])
-
-# Normally we only add trace() to the debug-library. Allow this to be
-# extended to all models of the ncurses library:
-cf_all_traces=no
-case "$CFLAGS $CPPFLAGS" in
-*-DTRACE*)
- cf_all_traces=yes
- ;;
-esac
-
-AC_MSG_CHECKING(whether to add trace feature to all models)
-AC_ARG_WITH(trace,
-[ --with-trace test: add trace() function to all models of ncurses],
-[cf_with_trace=$withval],
-[cf_with_trace=$cf_all_traces])
-AC_MSG_RESULT($cf_with_trace)
-
-if test "$cf_with_trace" = yes ; then
- LIB_TRACING=all
- ADA_TRACE=TRUE
- CF_ADD_CFLAGS(-DTRACE)
-else
- LIB_TRACING=DEBUG
- ADA_TRACE=FALSE
-fi
-
-AC_SUBST(ADA_TRACE)
-
-### 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
-AC_HEADER_TIME
-CF_REGEX
-
-dnl These are some other potentially nonportable headers.
-AC_CHECK_HEADERS( \
-fcntl.h \
-getopt.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 \
-wctype.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
-CF_C_INLINE(NCURSES_INLINE,1200)
-CF_SIG_ATOMIC_T
-
-if test $NCURSES_CHTYPE = auto ; then
- CF_TYPEOF_CHTYPE
-else
- cf_cv_typeof_chtype=$NCURSES_CHTYPE
-fi
-test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
-AC_SUBST(cf_cv_typeof_chtype)
-
-CF_UNSIGNED_LITERALS
-cf_cv_1UL="1"
-test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
-test ".$cf_cv_typeof_chtype" = .long && cf_cv_1UL="${cf_cv_1UL}L"
-AC_SUBST(cf_cv_1UL)
-
-if test $NCURSES_MMASK_T = auto ; then
- cf_cv_typeof_mmask_t=long
-else
- cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
-fi
-test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
-AC_SUBST(cf_cv_typeof_mmask_t)
-
-### Checks for external-data
-CF_ERRNO
-CF_LINK_DATAONLY
-
-### Checks for library functions.
-AC_CHECK_FUNCS( \
-getcwd \
-getegid \
-geteuid \
-getttynam \
-issetugid \
-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_NANOSLEEP
-CF_FUNC_TERMIOS
-CF_FUNC_VSSCANF
-CF_MKSTEMP
-
-# setup for prototype of fallback for vsscanf()
-CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0)
-
-dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
-if test "$cross_compiling" = yes ; then
- 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
-
-# special check for test/ditto.c
-CF_FUNC_OPENPTY
-if test "$cf_cv_func_openpty" != no ; then
- AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>)
- AC_DEFINE(USE_XTERM_PTY)
- if test "$cf_cv_lib_util" = yes ; then
- TEST_LIBS="-lutil $TEST_LIBS"
- fi
-fi
-AC_SUBST(TEST_LIBS)
-
-if test "$with_hashed_db" != no ; then
- AC_DEFINE(USE_HASHED_DB)
- CF_HASHED_DB($with_hashed_db)
-fi
-
-dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
-if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
- CF_STRIP_G_OPT(CFLAGS)
- CF_STRIP_G_OPT(CXXFLAGS)
-fi
-
-# Just in case, check if the C compiler has a bool type.
-CF_BOOL_DECL(cf_cv_cc_bool_type)
-
-# Check for C++ compiler characteristics (and ensure that it's there!)
-if test -n "$CXX" ; then
- AC_LANG_CPLUSPLUS
- CF_STDCPP_LIBRARY
- CF_PROG_CC_C_O(CXX)
-
- case $GXX_VERSION in
- 1*|2.[0-6]*)
- cf_cxx_library=yes
- ;;
- *-2.7*|2.7*)
- CF_GPP_LIBRARY
- ;;
- *)
- cf_cxx_library=no
- ;;
- esac
-
- AC_CHECK_HEADERS(iostream typeinfo)
-
- CF_BOOL_DECL
- CF_BOOL_SIZE
- CF_ETIP_DEFINES
- CF_CPP_PARAM_INIT
- CF_CPP_STATIC_CAST
-
- 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_BOOL
- cf_cv_header_stdbool_h=0
- 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)
-
-# If the C compiler did not declare bool, and we did not determine that the C++
-# compiler does not declare bool, turn on an ifdef in curses.h that makes the
-# ncurses library use the same type as C++ bool. Note that this allows one to
-# specify the type of bool in a configure-script option and postpone
-# integration with the C++ compiler provided that the types are compatible.
-USE_CXX_BOOL=1
-if test $cf_cv_cc_bool_type = 1
-then
- # oops: C has a bool. Unlikely, but C++ could differ.
- USE_CXX_BOOL=0
-elif test $cf_cv_builtin_bool = 0
-then
- # C++ has no bool
- USE_CXX_BOOL=0
-else
- # this is the normal case
- USE_CXX_BOOL='defined(__cplusplus)'
-fi
-AC_SUBST(USE_CXX_BOOL)
-
-CF_HELP_MESSAGE(Ada95 Binding Options:)
-
-dnl If the Ada95 source-tree is present, add that to the build unless it will
-dnl not work, or was not requested.
-if test -f "${srcdir}/Ada95/Makefile.in" ; then
-
-dnl libtool does not know anything about GNAT, though a change made in 1998
-dnl provided for it "someday". Disable the ada subtree if we are using
-dnl libtool -TD 20070714
-if test "$cf_with_ada" != "no" ; then
- if test "$with_libtool" != "no"; then
- AC_MSG_WARN(libtool does not support Ada - disabling feature)
- cf_with_ada=no
- fi
-fi
-
-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_MSG_CHECKING(if GNAT pragma Unreferenced works)
- CF_GNAT_TRY_LINK([procedure conftest;],
-[with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
- test : Integer;
- pragma Unreferenced (test);
-begin
- test := 1;
- Text_IO.Put ("Hello World");
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (0);
-end conftest;],[cf_cv_pragma_unreferenced=yes],[cf_cv_pragma_unreferenced=no])
- AC_MSG_RESULT($cf_cv_pragma_unreferenced)
-
- # if the pragma is supported, use it (needed in the Trace code).
- if test $cf_cv_pragma_unreferenced = yes ; then
- PRAGMA_UNREF=TRUE
- else
- PRAGMA_UNREF=FALSE
- fi
-
- AC_ARG_WITH(ada-compiler,
- [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
- [cf_ada_compiler=$withval],
- [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)
- AC_SUBST(PRAGMA_UNREF)
-
- 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
-else
- cf_with_ada=no
-fi
-
-### Construct the ncurses library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
-###
-### ticlib modules may be a separate library, otherwise contained in termlib.
-### termlib modules may be a separate library, otherwise contained in ncurses.
-###
-### The of "+" or " " between the tokens controls the way the script
-### chooses to split module lists into libraries.
-###
-### (see CF_LIB_RULES).
-AC_MSG_CHECKING(for library subsets)
-LIB_SUBSETS=
-
-if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
- LIB_SUBSETS="${LIB_SUBSETS}ticlib"
- if test "$with_ticlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
- else
- LIB_SUBSETS="${LIB_SUBSETS}+"
- fi
-fi
-
-LIB_SUBSETS="${LIB_SUBSETS}termlib"
-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
-if test "$with_termlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
-else
- LIB_SUBSETS="${LIB_SUBSETS}+"
-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)
-
-### 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
-DFT_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"
- DFT_LIB_SUFFIX=".dll"
- ;;
- 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++)
-if test "$cf_with_cxx" = yes ; then
-AC_MSG_CHECKING(c++ library-dependency suffix)
-if test "$with_libtool" != "no"; 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)
-fi
-
-# do not want -ldl in build except as needed for -lncurses dependency
-if test "$with_dlsym" = yes ; then
-if test $DFT_LWR_MODEL = shared || \
- test $DFT_LWR_MODEL = libtool ; then
- CF_REMOVE_LIB(LIBS,$LIBS,dl)
-fi
-fi
-### Set up low-level terminfo dependencies for makefiles.
-
-# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
-# do not need libdl
-TICS_LIST=
-if test "$with_dlsym" = yes ; then
- CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
-fi
-
-if test "$with_ticlib" != no ; then
-
- if test "$with_ticlib" != yes ; then
- TICS_NAME=$with_ticlib
- TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TICS_LIB_SUFFIX="${with_ticlib}"
- else
- TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
- TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
- TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
- fi
- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
-else
- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-fi
-AC_SUBST(TICS_ARG_SUFFIX)
-AC_SUBST(TICS_DEP_SUFFIX)
-AC_SUBST(TICS_LIB_SUFFIX)
-AC_SUBST(TICS_ARGS)
-
-if test "$with_termlib" != no ; then
-
- if test "$with_termlib" != yes ; then
- TINFO_NAME=$with_termlib
- TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_LIB_SUFFIX="${with_termlib}"
- else
- TINFO_SUFFIX=${DFT_LIB_SUFFIX}
- TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
- TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
- TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
- fi
-
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
- TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
- else
- TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
- TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
- SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
- fi
-else
- # the next lines are needed for linking libtic over libncurses
- TINFO_NAME=${LIB_NAME}
- TINFO_SUFFIX=${DFT_LIB_SUFFIX}
- TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
- TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-
- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-fi
-
-if test "$DFT_LWR_MODEL" = shared ; then
- case $cf_cv_system_name in #(vi
- cygwin*)
- # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
- TINFO_SUFFIX=.dll
- ;;
- esac
-fi
-
-AC_SUBST(TINFO_ARG_SUFFIX)
-AC_SUBST(TINFO_DEP_SUFFIX)
-AC_SUBST(TINFO_LIB_SUFFIX)
-AC_SUBST(TINFO_ARGS)
-
-if test "$with_dlsym" = yes ; then
- CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
-fi
-
-if test "$DFT_LWR_MODEL" = "libtool"; then
- OBJEXT=lo
-fi
-
-# needed for Ada95
-TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
-AC_SUBST(TINFO_ARGS2)
-
-case $DFT_LWR_MODEL in
-normal|debug|profile)
- CF_LDFLAGS_STATIC
- ;;
-esac
-
-AC_MSG_CHECKING(where we will install curses.h)
-test "$with_overwrite" = no && \
-test "x$includedir" = 'x${prefix}/include' && \
- includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
-AC_MSG_RESULT($includedir)
-
-### 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(WITH_OVERWRITE)
-AC_SUBST(TICS_LIST)
-AC_SUBST(TINFO_LIST)
-AC_SUBST(SHLIB_LIST)
-
-# used to separate tack out of the tree
-NCURSES_TREE=
-AC_SUBST(NCURSES_TREE)
-
-### predefined stuff for the test programs
-AC_DEFINE(HAVE_SLK_COLOR)
-
-### Construct the list of subdirectories for which we'll customize makefiles
-### with the appropriate compile-rules.
-
-CF_SRC_MODULES($modules_to_build)
-
-if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
-fi
-
-CF_DIRS_TO_MAKE
-
-AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
-
-AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}")
-
-### Now that we're done running tests, add the compiler-warnings, if any
-CF_ADD_CFLAGS($EXTRA_CFLAGS)
-
-### If we're building with rpath, try to link non-standard libs that way too.
-if test "$DFT_LWR_MODEL" = "shared"; then
- CF_RPATH_HACK
-fi
-
-### Define substitutions for header files to avoid name-pollution
-CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
-CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
-CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0)
-
-################################################################################
-test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
-SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
-AC_OUTPUT( \
- include/MKterm.h.awk \
- include/curses.head:include/curses.h.in \
- include/termcap.h \
- include/unctrl.h \
- $SUB_MAKEFILES \
- Makefile,[
-CF_PRG_RULES([$srcdir/test/mk-test.awk ECHO_LINK="$ECHO_LINK"], test)
-CF_LIB_RULES($SRC_SUBDIRS)
-],[
-### Special initialization commands, used to pass information from the
-### configuration-run into config.status
-
-AWK="$AWK"
-DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
-DFT_LWR_MODEL="$DFT_LWR_MODEL"
-ECHO_LINK="$ECHO_LINK"
-LDCONFIG="$LDCONFIG"
-LIB_NAME="$LIB_NAME"
-LIB_SUBSETS="$LIB_SUBSETS"
-LIB_SUFFIX="$LIB_SUFFIX"
-LIB_TRACING="$LIB_TRACING"
-MAKE_TERMINFO="$MAKE_TERMINFO"
-NCURSES_MAJOR="$NCURSES_MAJOR"
-NCURSES_MINOR="$NCURSES_MINOR"
-NCURSES_OSPEED="$NCURSES_OSPEED"
-NCURSES_PATCH="$NCURSES_PATCH"
-SRC_SUBDIRS="$SRC_SUBDIRS"
-TERMINFO="$TERMINFO"
-TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
-TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
-TINFO_NAME="$TINFO_NAME"
-TINFO_SUFFIX="$TINFO_SUFFIX"
-TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
-TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
-TICS_NAME="$TICS_NAME"
-WITH_CURSES_H="$with_curses_h"
-WITH_ECHO="$with_echo"
-WITH_OVERWRITE="$with_overwrite"
-cf_LIST_MODELS="$cf_list_models"
-cf_cv_abi_version="$cf_cv_abi_version"
-cf_cv_do_relink="$cf_cv_do_relink"
-cf_cv_do_symlinks="$cf_cv_do_symlinks"
-cf_cv_enable_lp64="$cf_cv_enable_lp64"
-cf_cv_enable_opaque="$cf_cv_enable_opaque"
-cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
-cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
-cf_cv_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"
-host="$host"
-target="$target"
-
-],cat)dnl
-${MAKE-make} preinstall
diff --git a/contrib/ncurses/convert_configure.pl b/contrib/ncurses/convert_configure.pl
deleted file mode 100644
index 911bdc77bbf3..000000000000
--- a/contrib/ncurses/convert_configure.pl
+++ /dev/null
@@ -1,119 +0,0 @@
-extproc perl -S -w
-
-# $Id: convert_configure.pl,v 1.3 2006/04/22 23:04:06 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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 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/contrib/ncurses/dist.mk b/contrib/ncurses/dist.mk
deleted file mode 100644
index f4becd9bdfc6..000000000000
--- a/contrib/ncurses/dist.mk
+++ /dev/null
@@ -1,160 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: dist.mk,v 1.641 2008/05/03 12:31:08 tom Exp $
-# 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 = 6
-NCURSES_PATCH = 20080503
-
-# We don't append the patch to the version, since this only applies to releases
-VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
-
-# The most recent html files were generated with lynx 2.8.6, using ncurses
-# configured with
-# --without-manpage-renames
-# on Debian/testing. The -scrollbar and -width options are used to make lynx
-# use 79 columns as it did in 2.8.5 and before.
-DUMP = lynx -dump -scrollbar=0 -width=79
-DUMP2 = $(DUMP) -nolist
-
-GNATHTML= `type -p gnathtml || type -p gnathtml.pl`
-
-# 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). Newer
-# versions of 'man' on Linux leave no margin (and make it harder to sync with
-# pages).
-MAN2HTML= man2html -botm=0 -topm=0 -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
-
-# 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 > $@
-
-# This is the original command:
-# MANPROG = tbl | nroff -man
-#
-# This happens to work for groff 1.18.1 on Debian. At some point groff's
-# maintainer changed the line-length (we do not want/need that here).
-#
-# The distributed html files are formatted using
-# configure --without-manpage-renames
-MANPROG = tbl | nroff -mandoc -rLL=65n -rLT=71n -Tascii
-
-manhtml:
- @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:
- @cat man_alias.sed >> subst.tmp
- @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
- @misc/csort < 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 ;\
- ./edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \
- sed -f subst.sed |\
- sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \
- >> doc/html/man/$$g ;\
- done
- @rm -f subst.sed
-
-#
-# 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:
- if [ ! -z "$(GNATHTML)" ]; then \
- (cd ./Ada95/gen ; make html) ;\
- fi
-
-# This only works on a clean source tree, of course.
-MANIFEST:
- -rm -f $@
- touch $@
- find . -type f -print |misc/csort | fgrep -v .lsm |fgrep -v .spec >$@
-
-TAGS:
- etags */*.[ch]
-
-# Makefile ends here
diff --git a/contrib/ncurses/doc/hackguide.doc b/contrib/ncurses/doc/hackguide.doc
deleted file mode 100644
index 8e0ba5c0f85b..000000000000
--- a/contrib/ncurses/doc/hackguide.doc
+++ /dev/null
@@ -1,682 +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.
-
- 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 reason.
-
- 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 possible.
-
- 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/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html b/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html
deleted file mode 100644
index 3a1010635ff0..000000000000
--- a/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html
+++ /dev/null
@@ -1,6413 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta name="generator" content=
-"HTML Tidy for Linux/x86 (vers 1st December 2004), see www.w3.org">
-<title>NCURSES Programming HOWTO</title>
-<meta name="GENERATOR" content=
-"Modular DocBook HTML Stylesheet Version 1.7">
-</head>
-<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
-"#0000FF" vlink="#840084" alink="#0000FF">
-<div class="ARTICLE">
-<div class="TITLEPAGE">
-<h1 class="TITLE"><a name="AEN2" id="AEN2">NCURSES Programming
-HOWTO</a></h1>
-<h3 class="AUTHOR"><a name="AEN4" id="AEN4">Pradeep Padala</a></h3>
-<div class="AFFILIATION">
-<div class="ADDRESS">
-<p class="ADDRESS"><code class="EMAIL">&lt;<a href=
-"mailto:ppadala@gmail.com">ppadala@gmail.com</a>&gt;</code></p>
-</div>
-</div>
-<p class="PUBDATE">v1.9, 2005-06-20<br></p>
-<div class="REVHISTORY">
-<table width="100%" border="0">
-<tr>
-<th align="left" valign="top" colspan="3"><b>Revision
-History</b></th>
-</tr>
-<tr>
-<td align="left">Revision 1.9</td>
-<td align="left">2005-06-20</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">The license has been changed to the
-MIT-style license used by NCURSES. Note that the programs are also
-re-licensed under this.</td>
-</tr>
-<tr>
-<td align="left">Revision 1.8</td>
-<td align="left">2005-06-17</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Lots of updates. Added references and
-perl examples. Changes to examples. Many grammatical and stylistic
-changes to the content. Changes to NCURSES history.</td>
-</tr>
-<tr>
-<td align="left">Revision 1.7.1</td>
-<td align="left">2002-06-25</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Added a README file for building and
-instructions for building from source.</td>
-</tr>
-<tr>
-<td align="left">Revision 1.7</td>
-<td align="left">2002-06-25</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Added "Other formats" section and made
-a lot of fancy changes to the programs. Inlining of programs is
-gone.</td>
-</tr>
-<tr>
-<td align="left">Revision 1.6.1</td>
-<td align="left">2002-02-24</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Removed the old Changelog section,
-cleaned the makefiles</td>
-</tr>
-<tr>
-<td align="left">Revision 1.6</td>
-<td align="left">2002-02-16</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Corrected a lot of spelling mistakes,
-added ACS variables section</td>
-</tr>
-<tr>
-<td align="left">Revision 1.5</td>
-<td align="left">2002-01-05</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Changed structure to present proper
-TOC</td>
-</tr>
-<tr>
-<td align="left">Revision 1.3.1</td>
-<td align="left">2001-07-26</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Corrected maintainers paragraph,
-Corrected stable release number</td>
-</tr>
-<tr>
-<td align="left">Revision 1.3</td>
-<td align="left">2001-07-24</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Added copyright notices to main
-document (LDP license) and programs (GPL), Corrected
-printw_example.</td>
-</tr>
-<tr>
-<td align="left">Revision 1.2</td>
-<td align="left">2001-06-05</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Incorporated ravi's changes. Mainly to
-introduction, menu, form, justforfun sections</td>
-</tr>
-<tr>
-<td align="left">Revision 1.1</td>
-<td align="left">2001-05-22</td>
-<td align="left">Revised by: ppadala</td>
-</tr>
-<tr>
-<td align="left" colspan="3">Added "a word about window" section,
-Added scanw_example.</td>
-</tr>
-</table>
-</div>
-<div>
-<div class="ABSTRACT"><a name="AEN67" id="AEN67"></a>
-<p><em>This document is intended to be an "All in One" guide for
-programming with ncurses and its sister libraries. We graduate from
-a simple "Hello World" program to more complex form manipulation.
-No prior experience in ncurses is assumed. Send comments to
-<a href="mailto:ppadala@gmail.com" target="_top">this
-address</a></em></p>
-</div>
-</div>
-<hr></div>
-<div class="TOC">
-<dl>
-<dt><b>Table of Contents</b></dt>
-<dt>1. <a href="#INTRO">Introduction</a></dt>
-<dd>
-<dl>
-<dt>1.1. <a href="#WHATIS">What is NCURSES?</a></dt>
-<dt>1.2. <a href="#WHATCANWEDO">What we can do with
-NCURSES</a></dt>
-<dt>1.3. <a href="#WHERETOGETIT">Where to get it</a></dt>
-<dt>1.4. <a href="#PURPOSE">Purpose/Scope of the document</a></dt>
-<dt>1.5. <a href="#ABOUTPROGRAMS">About the Programs</a></dt>
-<dt>1.6. <a href="#OTHERFORMATS">Other Formats of the
-document</a></dt>
-<dt>1.7. <a href="#CREDITS">Credits</a></dt>
-<dt>1.8. <a href="#WISHLIST">Wish List</a></dt>
-<dt>1.9. <a href="#COPYRIGHT">Copyright</a></dt>
-</dl>
-</dd>
-<dt>2. <a href="#HELLOWORLD">Hello World !!!</a></dt>
-<dd>
-<dl>
-<dt>2.1. <a href="#COMPILECURSES">Compiling With the NCURSES
-Library</a></dt>
-<dt>2.2. <a href="#DISSECTION">Dissection</a></dt>
-</dl>
-</dd>
-<dt>3. <a href="#GORY">The Gory Details</a></dt>
-<dt>4. <a href="#INIT">Initialization</a></dt>
-<dd>
-<dl>
-<dt>4.1. <a href="#ABOUTINIT">Initialization functions</a></dt>
-<dt>4.2. <a href="#RAWCBREAK">raw() and cbreak()</a></dt>
-<dt>4.3. <a href="#ECHONOECHO">echo() and noecho()</a></dt>
-<dt>4.4. <a href="#KEYPAD">keypad()</a></dt>
-<dt>4.5. <a href="#HALFDELAY">halfdelay()</a></dt>
-<dt>4.6. <a href="#MISCINIT">Miscellaneous Initialization
-functions</a></dt>
-<dt>4.7. <a href="#INITEX">An Example</a></dt>
-</dl>
-</dd>
-<dt>5. <a href="#AWORDWINDOWS">A Word about Windows</a></dt>
-<dt>6. <a href="#PRINTW">Output functions</a></dt>
-<dd>
-<dl>
-<dt>6.1. <a href="#ADDCHCLASS">addch() class of functions</a></dt>
-<dt>6.2. <a href="#AEN298">mvaddch(), waddch() and
-mvwaddch()</a></dt>
-<dt>6.3. <a href="#PRINTWCLASS">printw() class of
-functions</a></dt>
-<dt>6.4. <a href="#ADDSTRCLASS">addstr() class of
-functions</a></dt>
-<dt>6.5. <a href="#ACAUTION">A word of caution</a></dt>
-</dl>
-</dd>
-<dt>7. <a href="#SCANW">Input functions</a></dt>
-<dd>
-<dl>
-<dt>7.1. <a href="#GETCHCLASS">getch() class of functions</a></dt>
-<dt>7.2. <a href="#SCANWCLASS">scanw() class of functions</a></dt>
-<dt>7.3. <a href="#GETSTRCLASS">getstr() class of
-functions</a></dt>
-<dt>7.4. <a href="#GETSTREX">Some examples</a></dt>
-</dl>
-</dd>
-<dt>8. <a href="#ATTRIB">Attributes</a></dt>
-<dd>
-<dl>
-<dt>8.1. <a href="#ATTRIBDETAILS">The details</a></dt>
-<dt>8.2. <a href="#ATTRONVSATTRSET">attron() vs attrset()</a></dt>
-<dt>8.3. <a href="#ATTR_GET">attr_get()</a></dt>
-<dt>8.4. <a href="#ATTR_FUNCS">attr_ functions</a></dt>
-<dt>8.5. <a href="#WATTRFUNCS">wattr functions</a></dt>
-<dt>8.6. <a href="#CHGAT">chgat() functions</a></dt>
-</dl>
-</dd>
-<dt>9. <a href="#WINDOWS">Windows</a></dt>
-<dd>
-<dl>
-<dt>9.1. <a href="#WINDOWBASICS">The basics</a></dt>
-<dt>9.2. <a href="#LETBEWINDOW">Let there be a Window !!!</a></dt>
-<dt>9.3. <a href="#BORDEREXEXPL">Explanation</a></dt>
-<dt>9.4. <a href="#OTHERSTUFF">The other stuff in the
-example</a></dt>
-<dt>9.5. <a href="#OTHERBORDERFUNCS">Other Border
-functions</a></dt>
-</dl>
-</dd>
-<dt>10. <a href="#COLOR">Colors</a></dt>
-<dd>
-<dl>
-<dt>10.1. <a href="#COLORBASICS">The basics</a></dt>
-<dt>10.2. <a href="#CHANGECOLORDEFS">Changing Color
-Definitions</a></dt>
-<dt>10.3. <a href="#COLORCONTENT">Color Content</a></dt>
-</dl>
-</dd>
-<dt>11. <a href="#KEYS">Interfacing with the key board</a></dt>
-<dd>
-<dl>
-<dt>11.1. <a href="#KEYSBASICS">The Basics</a></dt>
-<dt>11.2. <a href="#SIMPLEKEYEX">A Simple Key Usage
-example</a></dt>
-</dl>
-</dd>
-<dt>12. <a href="#MOUSE">Interfacing with the mouse</a></dt>
-<dd>
-<dl>
-<dt>12.1. <a href="#MOUSEBASICS">The Basics</a></dt>
-<dt>12.2. <a href="#GETTINGEVENTS">Getting the events</a></dt>
-<dt>12.3. <a href="#MOUSETOGETHER">Putting it all Together</a></dt>
-<dt>12.4. <a href="#MISCMOUSEFUNCS">Miscellaneous
-Functions</a></dt>
-</dl>
-</dd>
-<dt>13. <a href="#SCREEN">Screen Manipulation</a></dt>
-<dd>
-<dl>
-<dt>13.1. <a href="#GETYX">getyx() functions</a></dt>
-<dt>13.2. <a href="#SCREENDUMP">Screen Dumping</a></dt>
-<dt>13.3. <a href="#WINDOWDUMP">Window Dumping</a></dt>
-</dl>
-</dd>
-<dt>14. <a href="#MISC">Miscellaneous features</a></dt>
-<dd>
-<dl>
-<dt>14.1. <a href="#CURSSET">curs_set()</a></dt>
-<dt>14.2. <a href="#TEMPLEAVE">Temporarily Leaving Curses
-mode</a></dt>
-<dt>14.3. <a href="#ACSVARS">ACS_ variables</a></dt>
-</dl>
-</dd>
-<dt>15. <a href="#OTHERLIB">Other libraries</a></dt>
-<dt>16. <a href="#PANELS">Panel Library</a></dt>
-<dd>
-<dl>
-<dt>16.1. <a href="#PANELBASICS">The Basics</a></dt>
-<dt>16.2. <a href="#COMPILEPANELS">Compiling With the Panels
-Library</a></dt>
-<dt>16.3. <a href="#PANELBROWSING">Panel Window Browsing</a></dt>
-<dt>16.4. <a href="#USERPTRUSING">Using User Pointers</a></dt>
-<dt>16.5. <a href="#PANELMOVERESIZE">Moving and Resizing
-Panels</a></dt>
-<dt>16.6. <a href="#PANELSHOWHIDE">Hiding and Showing
-Panels</a></dt>
-<dt>16.7. <a href="#PANELABOVE">panel_above() and panel_below()
-Functions</a></dt>
-</dl>
-</dd>
-<dt>17. <a href="#MENUS">Menus Library</a></dt>
-<dd>
-<dl>
-<dt>17.1. <a href="#MENUBASICS">The Basics</a></dt>
-<dt>17.2. <a href="#COMPILEMENUS">Compiling With the Menu
-Library</a></dt>
-<dt>17.3. <a href="#MENUDRIVER">Menu Driver: The work horse of the
-menu system</a></dt>
-<dt>17.4. <a href="#MENUWINDOWS">Menu Windows</a></dt>
-<dt>17.5. <a href="#SCROLLMENUS">Scrolling Menus</a></dt>
-<dt>17.6. <a href="#MULTICOLUMN">Multi Columnar Menus</a></dt>
-<dt>17.7. <a href="#MULTIVALUEMENUS">Multi Valued Menus</a></dt>
-<dt>17.8. <a href="#MENUOPT">Menu Options</a></dt>
-<dt>17.9. <a href="#MENUUSERPTR">The useful User Pointer</a></dt>
-</dl>
-</dd>
-<dt>18. <a href="#FORMS">Forms Library</a></dt>
-<dd>
-<dl>
-<dt>18.1. <a href="#FORMBASICS">The Basics</a></dt>
-<dt>18.2. <a href="#COMPILEFORMS">Compiling With the Forms
-Library</a></dt>
-<dt>18.3. <a href="#PLAYFIELDS">Playing with Fields</a></dt>
-<dt>18.4. <a href="#FORMWINDOWS">Form Windows</a></dt>
-<dt>18.5. <a href="#FILEDVALIDATE">Field Validation</a></dt>
-<dt>18.6. <a href="#FORMDRIVER">Form Driver: The work horse of the
-forms system</a></dt>
-</dl>
-</dd>
-<dt>19. <a href="#TOOLS">Tools and Widget Libraries</a></dt>
-<dd>
-<dl>
-<dt>19.1. <a href="#CDK">CDK (Curses Development Kit)</a></dt>
-<dt>19.2. <a href="#DIALOG">The dialog</a></dt>
-<dt>19.3. <a href="#PERLCURSES">Perl Curses Modules CURSES::FORM
-and CURSES::WIDGETS</a></dt>
-</dl>
-</dd>
-<dt>20. <a href="#JUSTFORFUN">Just For Fun !!!</a></dt>
-<dd>
-<dl>
-<dt>20.1. <a href="#GAMEOFLIFE">The Game of Life</a></dt>
-<dt>20.2. <a href="#MAGIC">Magic Square</a></dt>
-<dt>20.3. <a href="#HANOI">Towers of Hanoi</a></dt>
-<dt>20.4. <a href="#QUEENS">Queens Puzzle</a></dt>
-<dt>20.5. <a href="#SHUFFLE">Shuffle</a></dt>
-<dt>20.6. <a href="#TT">Typing Tutor</a></dt>
-</dl>
-</dd>
-<dt>21. <a href="#REF">References</a></dt>
-</dl>
-</div>
-<div class="SECT1">
-<h2 class="SECT1"><a name="INTRO" id="INTRO">1.
-Introduction</a></h2>
-<p>In the olden days of teletype terminals, terminals were away
-from computers and were connected to them through serial cables.
-The terminals could be configured by sending a series of bytes. All
-the capabilities (such as moving the cursor to a new location,
-erasing part of the screen, scrolling the screen, changing modes
-etc.) of terminals could be accessed through these series of bytes.
-These control seeuqnces are usually called escape sequences,
-because they start with an escape(0x1B) character. Even today, with
-proper emulation, we can send escape sequences to the emulator and
-achieve the same effect on a terminal window.</p>
-<p>Suppose you wanted to print a line in color. Try typing this on
-your console.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000">echo "^[[0;31;40mIn Color"</font>
-</pre></td>
-</tr>
-</table>
-<p>The first character is an escape character, which looks like two
-characters ^ and [. To be able to print it, you have to press
-CTRL+V and then the ESC key. All the others are normal printable
-characters. You should be able to see the string "In Color" in red.
-It stays that way and to revert back to the original mode type
-this.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000">echo "^[[0;37;40m"</font>
-</pre></td>
-</tr>
-</table>
-<p>Now, what do these magic characters mean? Difficult to
-comprehend? They might even be different for different terminals.
-So the designers of UNIX invented a mechanism named <var class=
-"LITERAL">termcap</var>. It is a file that lists all the
-capabilities of a particular terminal, along with the escape
-sequences needed to achieve a particular effect. In the later
-years, this was replaced by <var class="LITERAL">terminfo</var>.
-Without delving too much into details, this mechanism allows
-application programs to query the terminfo database and obtain the
-control characters to be sent to a terminal or terminal
-emulator.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="WHATIS" id="WHATIS">1.1. What is
-NCURSES?</a></h3>
-<p>You might be wondering, what the import of all this technical
-gibberish is. In the above scenario, every application program is
-supposed to query the terminfo and perform the necessary stuff
-(sending control characters etc.). It soon became difficult to
-manage this complexity and this gave birth to 'CURSES'. Curses is a
-pun on the name "cursor optimization". The Curses library forms a
-wrapper over working with raw terminal codes, and provides highly
-flexible and efficient API (Application Programming Interface). It
-provides functions to move the cursor, create windows, produce
-colors, play with mouse etc. The application programs need not
-worry about the underlying terminal capabilities.</p>
-<p>So what is NCURSES? NCURSES is a clone of the original System V
-Release 4.0 (SVr4) curses. It is a freely distributable library,
-fully compatible with older version of curses. In short, it is a
-library of functions that manages an application's display on
-character-cell terminals. In the remainder of the document, the
-terms curses and ncurses are used interchangeably.</p>
-<p>A detailed history of NCURSES can be found in the NEWS file from
-the source distribution. The current package is maintained by
-<a href="mailto:dickey@his.com" target="_top">Thomas Dickey</a>.
-You can contact the maintainers at <a href=
-"mailto:bug-ncurses@gnu.org" target=
-"_top">bug-ncurses@gnu.org</a>.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="WHATCANWEDO" id="WHATCANWEDO">1.2. What
-we can do with NCURSES</a></h3>
-<p>NCURSES not only creates a wrapper over terminal capabilities,
-but also gives a robust framework to create nice looking UI (User
-Interface)s in text mode. It provides functions to create windows
-etc. Its sister libraries panel, menu and form provide an extension
-to the basic curses library. These libraries usually come along
-with curses. One can create applications that contain multiple
-windows, menus, panels and forms. Windows can be managed
-independently, can provide 'scrollability' and even can be
-hidden.</p>
-<p>Menus provide the user with an easy command selection option.
-Forms allow the creation of easy-to-use data entry and display
-windows. Panels extend the capabilities of ncurses to deal with
-overlapping and stacked windows.</p>
-<p>These are just some of the basic things we can do with ncurses.
-As we move along, We will see all the capabilities of these
-libraries.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="WHERETOGETIT" id="WHERETOGETIT">1.3.
-Where to get it</a></h3>
-<p>All right, now that you know what you can do with ncurses, you
-must be rearing to get started. NCURSES is usually shipped with
-your installation. In case you don't have the library or want to
-compile it on your own, read on.</p>
-<p><em>Compiling the package</em></p>
-<p>NCURSES can be obtained from <a href=
-"ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz" target=
-"_top">ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</a> or any
-of the ftp sites mentioned in <a href=
-"http://www.gnu.org/order/ftp.html" target=
-"_top">http://www.gnu.org/order/ftp.html</a>.</p>
-<p>Read the README and INSTALL files for details on to how to
-install it. It usually involves the following operations.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"> tar zxvf ncurses&lt;version&gt;.tar.gz # unzip and untar the archive
- cd ncurses&lt;version&gt; # cd to the directory
- ./configure # configure the build according to your
- # environment
- make # make it
- su root # become root
- make install # install it</font>
-</pre></td>
-</tr>
-</table>
-<p><em>Using the RPM</em></p>
-<p>NCURSES RPM can be found and downloaded from <a href=
-"http://rpmfind.net" target="_top">http://rpmfind.net</a> . The RPM
-can be installed with the following command after becoming
-root.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> rpm -i &lt;downloaded rpm&gt;</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PURPOSE" id="PURPOSE">1.4. Purpose/Scope
-of the document</a></h3>
-<p>This document is intended to be a "All in One" guide for
-programming with ncurses and its sister libraries. We graduate from
-a simple "Hello World" program to more complex form manipulation.
-No prior experience in ncurses is assumed. The writing is informal,
-but a lot of detail is provided for each of the examples.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ABOUTPROGRAMS" id="ABOUTPROGRAMS">1.5.
-About the Programs</a></h3>
-<p>All the programs in the document are available in zipped form
-<a href=
-"http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz"
-target="_top">here</a>. Unzip and untar it. The directory structure
-looks like this.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000">ncurses
- |
- |----&gt; JustForFun -- just for fun programs
- |----&gt; basics -- basic programs
- |----&gt; demo -- output files go into this directory after make
- | |
- | |----&gt; exe -- exe files of all example programs
- |----&gt; forms -- programs related to form library
- |----&gt; menus -- programs related to menus library
- |----&gt; panels -- programs related to panels library
- |----&gt; perl -- perl equivalents of the examples (contributed
- | by Anuradha Ratnaweera)
- |----&gt; Makefile -- the top level Makefile
- |----&gt; README -- the top level README file. contains instructions
- |----&gt; COPYING -- copyright notice</font>
-</pre></td>
-</tr>
-</table>
-<p>The individual directories contain the following files.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000">Description of files in each directory
---------------------------------------
-JustForFun
- |
- |----&gt; hanoi.c -- The Towers of Hanoi Solver
- |----&gt; life.c -- The Game of Life demo
- |----&gt; magic.c -- An Odd Order Magic Square builder
- |----&gt; queens.c -- The famous N-Queens Solver
- |----&gt; shuffle.c -- A fun game, if you have time to kill
- |----&gt; tt.c -- A very trivial typing tutor
-
- basics
- |
- |----&gt; acs_vars.c -- ACS_ variables example
- |----&gt; hello_world.c -- Simple "Hello World" Program
- |----&gt; init_func_example.c -- Initialization functions example
- |----&gt; key_code.c -- Shows the scan code of the key pressed
- |----&gt; mouse_menu.c -- A menu accessible by mouse
- |----&gt; other_border.c -- Shows usage of other border functions apa
- | -- rt from box()
- |----&gt; printw_example.c -- A very simple printw() example
- |----&gt; scanw_example.c -- A very simple getstr() example
- |----&gt; simple_attr.c -- A program that can print a c file with
- | -- comments in attribute
- |----&gt; simple_color.c -- A simple example demonstrating colors
- |----&gt; simple_key.c -- A menu accessible with keyboard UP, DOWN
- | -- arrows
- |----&gt; temp_leave.c -- Demonstrates temporarily leaving curses mode
- |----&gt; win_border.c -- Shows Creation of windows and borders
- |----&gt; with_chgat.c -- chgat() usage example
-
- forms
- |
- |----&gt; form_attrib.c -- Usage of field attributes
- |----&gt; form_options.c -- Usage of field options
- |----&gt; form_simple.c -- A simple form example
- |----&gt; form_win.c -- Demo of windows associated with forms
-
- menus
- |
- |----&gt; menu_attrib.c -- Usage of menu attributes
- |----&gt; menu_item_data.c -- Usage of item_name() etc.. functions
- |----&gt; menu_multi_column.c -- Creates multi columnar menus
- |----&gt; menu_scroll.c -- Demonstrates scrolling capability of menus
- |----&gt; menu_simple.c -- A simple menu accessed by arrow keys
- |----&gt; menu_toggle.c -- Creates multi valued menus and explains
- | -- REQ_TOGGLE_ITEM
- |----&gt; menu_userptr.c -- Usage of user pointer
- |----&gt; menu_win.c -- Demo of windows associated with menus
-
- panels
- |
- |----&gt; panel_browse.c -- Panel browsing through tab. Usage of user
- | -- pointer
- |----&gt; panel_hide.c -- Hiding and Un hiding of panels
- |----&gt; panel_resize.c -- Moving and resizing of panels
- |----&gt; panel_simple.c -- A simple panel example
-
- perl
- |----&gt; 01-10.pl -- Perl equivalents of first ten example programs</font>
-</pre></td>
-</tr>
-</table>
-<p>There is a top level Makefile included in the main directory. It
-builds all the files and puts the ready-to-use exes in demo/exe
-directory. You can also do selective make by going into the
-corresponding directory. Each directory contains a README file
-explaining the purpose of each c file in the directory.</p>
-<p>For every example, I have included path name for the file
-relative to the examples directory.</p>
-<p>If you prefer browsing individual programs, point your browser
-to <a href=
-"http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/"
-target=
-"_top">http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</a></p>
-<p>All the programs are released under the same license that is
-used by ncurses (MIT-style). This gives you the ability to do
-pretty much anything other than claiming them as yours. Feel free
-to use them in your programs as appropriate.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="OTHERFORMATS" id="OTHERFORMATS">1.6.
-Other Formats of the document</a></h3>
-<p>This howto is also availabe in various other formats on the
-tldp.org site. Here are the links to other formats of this
-document.</p>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="LISTFORMATS" id="LISTFORMATS">1.6.1.
-Readily available formats from tldp.org</a></h4>
-<ul>
-<li>
-<p><a href=
-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf"
-target="_top">Acrobat PDF Format</a></p>
-</li>
-<li>
-<p><a href=
-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz"
-target="_top">PostScript Format</a></p>
-</li>
-<li>
-<p><a href=
-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz"
-target="_top">In Multiple HTML pages</a></p>
-</li>
-<li>
-<p><a href=
-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html"
-target="_top">In One big HTML format</a></p>
-</li>
-</ul>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="BUILDSOURCE" id="BUILDSOURCE">1.6.2.
-Building from source</a></h4>
-<p>If above links are broken or if you want to experiment with sgml
-read on.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">&#13; Get both the source and the tar,gzipped programs, available at
- http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
- NCURSES-HOWTO/NCURSES-Programming-HOWTO.sgml
- http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
- NCURSES-HOWTO/ncurses_programs.tar.gz
-
- Unzip ncurses_programs.tar.gz with
- tar zxvf ncurses_programs.tar.gz
-
- Use jade to create various formats. For example if you just want to create
- the multiple html files, you would use
- jade -t sgml -i html -d &lt;path to docbook html stylesheet&gt;
- NCURSES-Programming-HOWTO.sgml
- to get pdf, first create a single html file of the HOWTO with
- jade -t sgml -i html -d &lt;path to docbook html stylesheet&gt; -V nochunks
- NCURSES-Programming-HOWTO.sgml &gt; NCURSES-ONE-BIG-FILE.html
- then use htmldoc to get pdf file with
- htmldoc --size universal -t pdf --firstpage p1 -f &lt;output file name.pdf&gt;
- NCURSES-ONE-BIG-FILE.html
- for ps, you would use
- htmldoc --size universal -t ps --firstpage p1 -f &lt;output file name.ps&gt;
- NCURSES-ONE-BIG-FILE.html</font>
-</pre></td>
-</tr>
-</table>
-<p>See <a href="http://www.tldp.org/LDP/LDP-Author-Guide/" target=
-"_top">LDP Author guide</a> for more details. If all else failes,
-mail me at <a href="ppadala@gmail.com" target=
-"_top">ppadala@gmail.com</a></p>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="CREDITS" id="CREDITS">1.7.
-Credits</a></h3>
-<p>I thank <a href="mailto:sharath_1@usa.net" target=
-"_top">Sharath</a> and Emre Akbas for helping me with few sections.
-The introduction was initially written by sharath. I rewrote it
-with few excerpts taken from his initial work. Emre helped in
-writing printw and scanw sections.</p>
-<p>Perl equivalents of the example programs are contributed by
-<a href="mailto:Aratnaweera@virtusa.com" target="_top">Anuradha
-Ratnaweera</a>.</p>
-<p>Then comes <a href="mailto:parimi@ece.arizona.edu" target=
-"_top">Ravi Parimi</a>, my dearest friend, who has been on this
-project before even one line was written. He constantly bombarded
-me with suggestions and patiently reviewed the whole text. He also
-checked each program on Linux and Solaris.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="WISHLIST" id="WISHLIST">1.8. Wish
-List</a></h3>
-<p>This is the wish list, in the order of priority. If you have a
-wish or you want to work on completing the wish, mail <a href=
-"mailto:ppadala@gmail.com" target="_top">me</a>.</p>
-<ul>
-<li>
-<p>Add examples to last parts of forms section.</p>
-</li>
-<li>
-<p>Prepare a Demo showing all the programs and allow the user to
-browse through description of each program. Let the user compile
-and see the program in action. A dialog based interface is
-preferred.</p>
-</li>
-<li>
-<p>Add debug info. _tracef, _tracemouse stuff.</p>
-</li>
-<li>
-<p>Accessing termcap, terminfo using functions provided by ncurses
-package.</p>
-</li>
-<li>
-<p>Working on two terminals simultaneously.</p>
-</li>
-<li>
-<p>Add more stuff to miscellaneous section.</p>
-</li>
-</ul>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="COPYRIGHT" id="COPYRIGHT">1.9.
-Copyright</a></h3>
-<p>Copyright &copy; 2001 by Pradeep Padala.</p>
-<p>Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use, copy,
-modify, merge, publish, distribute, distribute with modifications,
-sublicense, and/or sell copies of the Software, and to permit
-persons to whom the Software is furnished to do so, subject to the
-following conditions:</p>
-<p>The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.</p>
-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.</p>
-<p>Except as contained in this notice, the name(s) of the above
-copyright holders shall not be used in advertising or otherwise to
-promote the sale, use or other dealings in this Software without
-prior written authorization.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="HELLOWORLD" id="HELLOWORLD">2. Hello
-World !!!</a></h2>
-<p>Welcome to the world of curses. Before we plunge into the
-library and look into its various features, let's write a simple
-program and say hello to the world.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="COMPILECURSES" id="COMPILECURSES">2.1.
-Compiling With the NCURSES Library</a></h3>
-<p>To use ncurses library functions, you have to include ncurses.h
-in your programs. To link the program with ncurses the flag
--lncurses should be added.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> #include &lt;ncurses.h&gt;
- .
- .
- .
-
- compile and link: gcc &lt;program file&gt; -lncurses</font>
-</pre></td>
-</tr>
-</table>
-<div class="EXAMPLE"><a name="BHW" id="BHW"></a>
-<p><b>Example 1. The Hello World !!! Program</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-int main()
-{
- initscr(); /* Start curses mode */
- printw("Hello World !!!"); /* Print Hello World */
- refresh(); /* Print it on to the real screen */
- getch(); /* Wait for user input */
- endwin(); /* End curses mode */
-
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="DISSECTION" id="DISSECTION">2.2.
-Dissection</a></h3>
-<p>The above program prints "Hello World !!!" to the screen and
-exits. This program shows how to initialize curses and do screen
-manipulation and end curses mode. Let's dissect it line by
-line.</p>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="ABOUT-INITSCR" id="ABOUT-INITSCR">2.2.1.
-About initscr()</a></h4>
-<p>The function initscr() initializes the terminal in curses mode.
-In some implementations, it clears the screen and presents a blank
-screen. To do any screen manipulation using curses package this has
-to be called first. This function initializes the curses system and
-allocates memory for our present window (called <var class=
-"LITERAL">stdscr</var>) and some other data-structures. Under
-extreme cases this function might fail due to insufficient memory
-to allocate memory for curses library's data structures.</p>
-<p>After this is done, we can do a variety of initializations to
-customize our curses settings. These details will be explained
-<a href="#INIT">later</a> .</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="MYST-REFRESH" id="MYST-REFRESH">2.2.2.
-The mysterious refresh()</a></h4>
-<p>The next line printw prints the string "Hello World !!!" on to
-the screen. This function is analogous to normal printf in all
-respects except that it prints the data on a window called stdscr
-at the current (y,x) co-ordinates. Since our present co-ordinates
-are at 0,0 the string is printed at the left hand corner of the
-window.</p>
-<p>This brings us to that mysterious refresh(). Well, when we
-called printw the data is actually written to an imaginary window,
-which is not updated on the screen yet. The job of printw is to
-update a few flags and data structures and write the data to a
-buffer corresponding to stdscr. In order to show it on the screen,
-we need to call refresh() and tell the curses system to dump the
-contents on the screen.</p>
-<p>The philosophy behind all this is to allow the programmer to do
-multiple updates on the imaginary screen or windows and do a
-refresh once all his screen update is done. refresh() checks the
-window and updates only the portion which has been changed. This
-improves performance and offers greater flexibility too. But, it is
-sometimes frustrating to beginners. A common mistake committed by
-beginners is to forget to call refresh() after they did some update
-through printw() class of functions. I still forget to add it
-sometimes :-)</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="ABOUT-ENDWIN" id="ABOUT-ENDWIN">2.2.3.
-About endwin()</a></h4>
-<p>And finally don't forget to end the curses mode. Otherwise your
-terminal might behave strangely after the program quits. endwin()
-frees the memory taken by curses sub-system and its data structures
-and puts the terminal in normal mode. This function must be called
-after you are done with the curses mode.</p>
-</div>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="GORY" id="GORY">3. The Gory
-Details</a></h2>
-<p>Now that we have seen how to write a simple curses program let's
-get into the details. There are many functions that help customize
-what you see on screen and many features which can be put to full
-use.</p>
-<p>Here we go...</p>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="INIT" id="INIT">4.
-Initialization</a></h2>
-<p>We now know that to initialize curses system the function
-initscr() has to be called. There are functions which can be called
-after this initialization to customize our curses session. We may
-ask the curses system to set the terminal in raw mode or initialize
-color or initialize the mouse etc.. Let's discuss some of the
-functions that are normally called immediately after initscr();</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ABOUTINIT" id="ABOUTINIT">4.1.
-Initialization functions</a></h3>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="RAWCBREAK" id="RAWCBREAK">4.2. raw() and
-cbreak()</a></h3>
-<p>Normally the terminal driver buffers the characters a user types
-until a new line or carriage return is encountered. But most
-programs require that the characters be available as soon as the
-user types them. The above two functions are used to disable line
-buffering. The difference between these two functions is in the way
-control characters like suspend (CTRL-Z), interrupt and quit
-(CTRL-C) are passed to the program. In the raw() mode these
-characters are directly passed to the program without generating a
-signal. In the <var class="LITERAL">cbreak()</var> mode these
-control characters are interpreted as any other character by the
-terminal driver. I personally prefer to use raw() as I can exercise
-greater control over what the user does.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ECHONOECHO" id="ECHONOECHO">4.3. echo()
-and noecho()</a></h3>
-<p>These functions control the echoing of characters typed by the
-user to the terminal. <var class="LITERAL">noecho()</var> switches
-off echoing. The reason you might want to do this is to gain more
-control over echoing or to suppress unnecessary echoing while
-taking input from the user through the getch() etc. functions. Most
-of the interactive programs call <var class=
-"LITERAL">noecho()</var> at initialization and do the echoing of
-characters in a controlled manner. It gives the programmer the
-flexibility of echoing characters at any place in the window
-without updating current (y,x) co-ordinates.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="KEYPAD" id="KEYPAD">4.4.
-keypad()</a></h3>
-<p>This is my favorite initialization function. It enables the
-reading of function keys like F1, F2, arrow keys etc. Almost every
-interactive program enables this, as arrow keys are a major part of
-any User Interface. Do <var class="LITERAL">keypad(stdscr,
-TRUE)</var> to enable this feature for the regular screen (stdscr).
-You will learn more about key management in later sections of this
-document.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="HALFDELAY" id="HALFDELAY">4.5.
-halfdelay()</a></h3>
-<p>This function, though not used very often, is a useful one at
-times. halfdelay()is called to enable the half-delay mode, which is
-similar to the cbreak() mode in that characters typed are
-immediately available to program. However, it waits for 'X' tenths
-of a second for input and then returns ERR, if no input is
-available. 'X' is the timeout value passed to the function
-halfdelay(). This function is useful when you want to ask the user
-for input, and if he doesn't respond with in certain time, we can
-do some thing else. One possible example is a timeout at the
-password prompt.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MISCINIT" id="MISCINIT">4.6.
-Miscellaneous Initialization functions</a></h3>
-<p>There are few more functions which are called at initialization
-to customize curses behavior. They are not used as extensively as
-those mentioned above. Some of them are explained where
-appropriate.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="INITEX" id="INITEX">4.7. An
-Example</a></h3>
-<p>Let's write a program which will clarify the usage of these
-functions.</p>
-<div class="EXAMPLE"><a name="BINFU" id="BINFU"></a>
-<p><b>Example 2. Initialization Function Usage example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-int main()
-{ int ch;
-
- initscr(); /* Start curses mode */
- raw(); /* Line buffering disabled */
- keypad(stdscr, TRUE); /* We get F1, F2 etc.. */
- noecho(); /* Don't echo() while we do getch */
-
- printw("Type any character to see it in bold\n");
- ch = getch(); /* If raw() hadn't been called
- * we have to press enter before it
- * gets to the program */
- if(ch == KEY_F(1)) /* Without keypad enabled this will */
- printw("F1 Key pressed");/* not get to us either */
- /* Without noecho() some ugly escape
- * charachters might have been printed
- * on screen */
- else
- { printw("The pressed key is ");
- attron(A_BOLD);
- printw("%c", ch);
- attroff(A_BOLD);
- }
- refresh(); /* Print it on to the real screen */
- getch(); /* Wait for user input */
- endwin(); /* End curses mode */
-
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>This program is self-explanatory. But I used functions which
-aren't explained yet. The function <var class=
-"LITERAL">getch()</var> is used to get a character from user. It is
-equivalent to normal <var class="LITERAL">getchar()</var> except
-that we can disable the line buffering to avoid &lt;enter&gt; after
-input. Look for more about <var class="LITERAL">getch()</var>and
-reading keys in the <a href="#KEYS">key management section</a> .
-The functions attron and attroff are used to switch some attributes
-on and off respectively. In the example I used them to print the
-character in bold. These functions are explained in detail
-later.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="AWORDWINDOWS" id="AWORDWINDOWS">5. A
-Word about Windows</a></h2>
-<p>Before we plunge into the myriad ncurses functions, let me clear
-few things about windows. Windows are explained in detail in
-following <a href="#WINDOWS">sections</a></p>
-<p>A Window is an imaginary screen defined by curses system. A
-window does not mean a bordered window which you usually see on
-Win9X platforms. When curses is initialized, it creates a default
-window named <var class="LITERAL">stdscr</var> which represents
-your 80x25 (or the size of window in which you are running) screen.
-If you are doing simple tasks like printing few strings, reading
-input etc., you can safely use this single window for all of your
-purposes. You can also create windows and call functions which
-explicitly work on the specified window.</p>
-<p>For example, if you call</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> printw("Hi There !!!");
- refresh();</font>
-</pre></td>
-</tr>
-</table>
-<p>It prints the string on stdscr at the present cursor position.
-Similarly the call to refresh(), works on stdscr only.</p>
-<p>Say you have created <a href="#WINDOWS">windows</a> then you
-have to call a function with a 'w' added to the usual function.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> wprintw(win, "Hi There !!!");
- wrefresh(win);</font>
-</pre></td>
-</tr>
-</table>
-<p>As you will see in the rest of the document, naming of functions
-follow the same convention. For each function there usually are
-three more functions.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"> printw(string); /* Print on stdscr at present cursor position */
- mvprintw(y, x, string);/* Move to (y, x) then print string */
- wprintw(win, string); /* Print on window win at present cursor position */
- /* in the window */
- mvwprintw(win, y, x, string); /* Move to (y, x) relative to window */
- /* co-ordinates and then print */</font>
-</pre></td>
-</tr>
-</table>
-<p>Usually the w-less functions are macros which expand to
-corresponding w-function with stdscr as the window parameter.</p>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="PRINTW" id="PRINTW">6. Output
-functions</a></h2>
-<p>I guess you can't wait any more to see some action. Back to our
-odyssey of curses functions. Now that curses is initialized, let's
-interact with world.</p>
-<p>There are three classes of functions which you can use to do
-output on screen.</p>
-<ol type="1">
-<li>
-<p>addch() class: Print single character with attributes</p>
-</li>
-<li>
-<p>printw() class: Print formatted output similar to printf()</p>
-</li>
-<li>
-<p>addstr() class: Print strings</p>
-</li>
-</ol>
-<p>These functions can be used interchangeably and it's a matter of
-style as to which class is used. Let's see each one in detail.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ADDCHCLASS" id="ADDCHCLASS">6.1. addch()
-class of functions</a></h3>
-<p>These functions put a single character into the current cursor
-location and advance the position of the cursor. You can give the
-character to be printed but they usually are used to print a
-character with some attributes. Attributes are explained in detail
-in later <a href="#ATTRIB">sections</a> of the document. If a
-character is associated with an attribute(bold, reverse video
-etc.), when curses prints the character, it is printed in that
-attribute.</p>
-<p>In order to combine a character with some attributes, you have
-two options:</p>
-<ul>
-<li>
-<p>By OR'ing a single character with the desired attribute macros.
-These attribute macros could be found in the header file
-<var class="LITERAL">ncurses.h</var>. For example, you want to
-print a character ch(of type char) bold and underlined, you would
-call addch() as below.</p>
-<table border="0" bgcolor="#E0E0E0" width="90%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> addch(ch | A_BOLD | A_UNDERLINE);</font>
-</pre></td>
-</tr>
-</table>
-</li>
-<li>
-<p>By using functions like <var class=
-"LITERAL">attrset(),attron(),attroff()</var>. These functions are
-explained in the <a href="#ATTRIB">Attributes</a> section. Briefly,
-they manipulate the current attributes of the given window. Once
-set, the character printed in the window are associated with the
-attributes until it is turned off.</p>
-</li>
-</ul>
-<p>Additionally, <var class="LITERAL">curses</var> provides some
-special characters for character-based graphics. You can draw
-tables, horizontal or vertical lines, etc. You can find all
-avaliable characters in the header file <var class=
-"LITERAL">ncurses.h</var>. Try looking for macros beginning with
-<var class="LITERAL">ACS_</var> in this file.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="AEN298" id="AEN298">6.2. mvaddch(),
-waddch() and mvwaddch()</a></h3>
-<p><var class="LITERAL">mvaddch()</var> is used to move the cursor
-to a given point, and then print. Thus, the calls:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"> move(row,col); /* moves the cursor to row<em>th</em> row and col<em>th</em> column */
- addch(ch);</font>
-</pre></td>
-</tr>
-</table>
-can be replaced by
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> mvaddch(row,col,ch);</font>
-</pre></td>
-</tr>
-</table>
-<p><var class="LITERAL">waddch()</var> is similar to <var class=
-"LITERAL">addch()</var>, except that it adds a character into the
-given window. (Note that <var class="LITERAL">addch()</var> adds a
-character into the window <var class="LITERAL">stdscr</var>.)</p>
-<p>In a similar fashion <var class="LITERAL">mvwaddch()</var>
-function is used to add a character into the given window at the
-given coordinates.</p>
-<p>Now, we are familiar with the basic output function <var class=
-"LITERAL">addch()</var>. But, if we want to print a string, it
-would be very annoying to print it character by character.
-Fortunately, <var class="LITERAL">ncurses</var> provides
-<var class="LITERAL">printf</var><em>-like</em> or <var class=
-"LITERAL">puts</var><em>-like</em> functions.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PRINTWCLASS" id="PRINTWCLASS">6.3.
-printw() class of functions</a></h3>
-<p>These functions are similar to <var class=
-"LITERAL">printf()</var> with the added capability of printing at
-any position on the screen.</p>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="PRINTWMVPRINTW" id=
-"PRINTWMVPRINTW">6.3.1. printw() and mvprintw</a></h4>
-<p>These two functions work much like <var class=
-"LITERAL">printf()</var>. <var class="LITERAL">mvprintw()</var> can
-be used to move the cursor to a position and then print. If you
-want to move the cursor first and then print using <var class=
-"LITERAL">printw()</var> function, use <var class=
-"LITERAL">move()</var> first and then use <var class=
-"LITERAL">printw()</var> though I see no point why one should avoid
-using <var class="LITERAL">mvprintw()</var>, you have the
-flexibility to manipulate.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="WPRINTWMVWPRINTW" id=
-"WPRINTWMVWPRINTW">6.3.2. wprintw() and mvwprintw</a></h4>
-<p>These two functions are similar to above two except that they
-print in the corresponding window given as argument.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="VWPRINTW" id="VWPRINTW">6.3.3.
-vwprintw()</a></h4>
-<p>This function is similar to <var class=
-"LITERAL">vprintf()</var>. This can be used when variable number of
-arguments are to be printed.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="SIMPLEPRINTWEX" id=
-"SIMPLEPRINTWEX">6.3.4. A Simple printw example</a></h4>
-<div class="EXAMPLE"><a name="BPREX" id="BPREX"></a>
-<p><b>Example 3. A Simple printw example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */
-#include &lt;string.h&gt;
-
-int main()
-{
- char mesg[]="Just a string"; /* message to be appeared on the screen */
- int row,col; /* to store the number of rows and *
- * the number of colums of the screen */
- initscr(); /* start the curses mode */
- getmaxyx(stdscr,row,col); /* get the number of rows and columns */
- mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
- /* print the message at the center of the screen */
- mvprintw(row-2,0,"This screen has %d rows and %d columns\n",row,col);
- printw("Try resizing your window(if possible) and then run this program again");
- refresh();
- getch();
- endwin();
-
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>Above program demonstrates how easy it is to use <var class=
-"LITERAL">printw</var>. You just feed the coordinates and the
-message to be appeared on the screen, then it does what you
-want.</p>
-<p>The above program introduces us to a new function <var class=
-"LITERAL">getmaxyx()</var>, a macro defined in <var class=
-"LITERAL">ncurses.h</var>. It gives the number of columns and the
-number of rows in a given window. <var class=
-"LITERAL">getmaxyx()</var> does this by updating the variables
-given to it. Since <var class="LITERAL">getmaxyx()</var> is not a
-function we don't pass pointers to it, we just give two integer
-variables.</p>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ADDSTRCLASS" id="ADDSTRCLASS">6.4.
-addstr() class of functions</a></h3>
-<p><var class="LITERAL">addstr()</var> is used to put a character
-string into a given window. This function is similar to calling
-<var class="LITERAL">addch()</var> once for each character in a
-given string. This is true for all output functions. There are
-other functions from this family such as <var class=
-"LITERAL">mvaddstr(),mvwaddstr()</var> and <var class=
-"LITERAL">waddstr()</var>, which obey the naming convention of
-curses.(e.g. mvaddstr() is similar to the respective calls move()
-and then addstr().) Another function of this family is addnstr(),
-which takes an integer parameter(say n) additionally. This function
-puts at most n characters into the screen. If n is negative, then
-the entire string will be added.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ACAUTION" id="ACAUTION">6.5. A word of
-caution</a></h3>
-<p>All these functions take y co-ordinate first and then x in their
-arguments. A common mistake by beginners is to pass x,y in that
-order. If you are doing too many manipulations of (y,x)
-co-ordinates, think of dividing the screen into windows and
-manipulate each one separately. Windows are explained in the
-<a href="#WINDOWS">windows</a> section.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="SCANW" id="SCANW">7. Input
-functions</a></h2>
-<p>Well, printing without taking input, is boring. Let's see
-functions which allow us to get input from user. These functions
-also can be divided into three categories.</p>
-<ol type="1">
-<li>
-<p>getch() class: Get a character</p>
-</li>
-<li>
-<p>scanw() class: Get formatted input</p>
-</li>
-<li>
-<p>getstr() class: Get strings</p>
-</li>
-</ol>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="GETCHCLASS" id="GETCHCLASS">7.1. getch()
-class of functions</a></h3>
-<p>These functions read a single character from the terminal. But
-there are several subtle facts to consider. For example if you
-don't use the function cbreak(), curses will not read your input
-characters contiguously but will begin read them only after a new
-line or an EOF is encountered. In order to avoid this, the cbreak()
-function must used so that characters are immediately available to
-your program. Another widely used function is noecho(). As the name
-suggests, when this function is set (used), the characters that are
-keyed in by the user will not show up on the screen. The two
-functions cbreak() and noecho() are typical examples of key
-management. Functions of this genre are explained in the <a href=
-"#KEYS">key management section</a> .</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="SCANWCLASS" id="SCANWCLASS">7.2. scanw()
-class of functions</a></h3>
-<p>These functions are similar to <var class=
-"LITERAL">scanf()</var> with the added capability of getting the
-input from any location on the screen.</p>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="SCANWMVSCANW" id="SCANWMVSCANW">7.2.1.
-scanw() and mvscanw</a></h4>
-<p>The usage of these functions is similar to that of <var class=
-"LITERAL">sscanf()</var>, where the line to be scanned is provided
-by <var class="LITERAL">wgetstr()</var> function. That is, these
-functions call to <var class="LITERAL">wgetstr()</var>
-function(explained below) and uses the resulting line for a
-scan.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="WSCANWMVWSCANW" id=
-"WSCANWMVWSCANW">7.2.2. wscanw() and mvwscanw()</a></h4>
-<p>These are similar to above two functions except that they read
-from a window, which is supplied as one of the arguments to these
-functions.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="VWSCANW" id="VWSCANW">7.2.3.
-vwscanw()</a></h4>
-<p>This function is similar to <var class="LITERAL">vscanf()</var>.
-This can be used when a variable number of arguments are to be
-scanned.</p>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="GETSTRCLASS" id="GETSTRCLASS">7.3.
-getstr() class of functions</a></h3>
-<p>These functions are used to get strings from the terminal. In
-essence, this function performs the same task as would be achieved
-by a series of calls to <var class="LITERAL">getch()</var> until a
-newline, carriage return, or end-of-file is received. The resulting
-string of characters are pointed to by <var class=
-"LITERAL">str</var>, which is a character pointer provided by the
-user.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="GETSTREX" id="GETSTREX">7.4. Some
-examples</a></h3>
-<div class="EXAMPLE"><a name="BSCEX" id="BSCEX"></a>
-<p><b>Example 4. A Simple scanw example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */
-#include &lt;string.h&gt;
-
-int main()
-{
- char mesg[]="Enter a string: "; /* message to be appeared on the screen */
- char str[80];
- int row,col; /* to store the number of rows and *
- * the number of colums of the screen */
- initscr(); /* start the curses mode */
- getmaxyx(stdscr,row,col); /* get the number of rows and columns */
- mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
- /* print the message at the center of the screen */
- getstr(str);
- mvprintw(LINES - 2, 0, "You Entered: %s", str);
- getch();
- endwin();
-
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="ATTRIB" id="ATTRIB">8.
-Attributes</a></h2>
-<p>We have seen an example of how attributes can be used to print
-characters with some special effects. Attributes, when set
-prudently, can present information in an easy, understandable
-manner. The following program takes a C file as input and prints
-the file with comments in bold. Scan through the code.</p>
-<div class="EXAMPLE"><a name="BSIAT" id="BSIAT"></a>
-<p><b>Example 5. A Simple Attributes example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">/* pager functionality by Joseph Spainhour" &lt;spainhou@bellsouth.net&gt; */
-#include &lt;ncurses.h&gt;
-#include &lt;stdlib.h&gt;
-
-int main(int argc, char *argv[])
-{
- int ch, prev, row, col;
- prev = EOF;
- FILE *fp;
- int y, x;
-
- if(argc != 2)
- {
- printf("Usage: %s &lt;a c file name&gt;\n", argv[0]);
- exit(1);
- }
- fp = fopen(argv[1], "r");
- if(fp == NULL)
- {
- perror("Cannot open input file");
- exit(1);
- }
- initscr(); /* Start curses mode */
- getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */
- while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */
- {
- getyx(stdscr, y, x); /* get the current curser position */
- if(y == (row - 1)) /* are we are at the end of the screen */
- {
- printw("&lt;-Press Any Key-&gt;"); /* tell the user to press a key */
- getch();
- clear(); /* clear the screen */
- move(0, 0); /* start at the beginning of the screen */
- }
- if(prev == '/' &amp;&amp; ch == '*') /* If it is / and * then only
- * switch bold on */
- {
- attron(A_BOLD); /* cut bold on */
- getyx(stdscr, y, x); /* get the current curser position */
- move(y, x - 1); /* back up one space */
- printw("%c%c", '/', ch); /* The actual printing is done here */
- }
- else
- printw("%c", ch);
- refresh();
- if(prev == '*' &amp;&amp; ch == '/')
- attroff(A_BOLD); /* Switch it off once we got *
- * and then / */
- prev = ch;
- }
- endwin(); /* End curses mode */
- fclose(fp);
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>Don't worry about all those initialization and other crap.
-Concentrate on the while loop. It reads each character in the file
-and searches for the pattern /*. Once it spots the pattern, it
-switches the BOLD attribute on with <var class=
-"LITERAL">attron()</var> . When we get the pattern */ it is
-switched off by <var class="LITERAL">attroff()</var> .</p>
-<p>The above program also introduces us to two useful functions
-<var class="LITERAL">getyx()</var> and <var class=
-"LITERAL">move()</var>. The first function gets the co-ordinates of
-the present cursor into the variables y, x. Since getyx() is a
-macro we don't have to pass pointers to variables. The function
-<var class="LITERAL">move()</var> moves the cursor to the
-co-ordinates given to it.</p>
-<p>The above program is really a simple one which doesn't do much.
-On these lines one could write a more useful program which reads a
-C file, parses it and prints it in different colors. One could even
-extend it to other languages as well.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ATTRIBDETAILS" id="ATTRIBDETAILS">8.1.
-The details</a></h3>
-<p>Let's get into more details of attributes. The functions
-<var class="LITERAL">attron(), attroff(), attrset()</var> , and
-their sister functions <var class="LITERAL">attr_get()</var> etc..
-can be used to switch attributes on/off , get attributes and
-produce a colorful display.</p>
-<p>The functions attron and attroff take a bit-mask of attributes
-and switch them on or off, respectively. The following video
-attributes, which are defined in &lt;curses.h&gt; can be passed to
-these functions.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000">
- A_NORMAL Normal display (no highlight)
- A_STANDOUT Best highlighting mode of the terminal.
- A_UNDERLINE Underlining
- A_REVERSE Reverse video
- A_BLINK Blinking
- A_DIM Half bright
- A_BOLD Extra bright or bold
- A_PROTECT Protected mode
- A_INVIS Invisible or blank mode
- A_ALTCHARSET Alternate character set
- A_CHARTEXT Bit-mask to extract a character
- COLOR_PAIR(n) Color-pair number n
- </font>
-</pre></td>
-</tr>
-</table>
-<p>The last one is the most colorful one :-) Colors are explained
-in the <a href="#color" target="_top">next sections</a>.</p>
-<p>We can OR(|) any number of above attributes to get a combined
-effect. If you wanted reverse video with blinking characters you
-can use</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> attron(A_REVERSE | A_BLINK);</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ATTRONVSATTRSET" id=
-"ATTRONVSATTRSET">8.2. attron() vs attrset()</a></h3>
-<p>Then what is the difference between attron() and attrset()?
-attrset sets the attributes of window whereas attron just switches
-on the attribute given to it. So attrset() fully overrides whatever
-attributes the window previously had and sets it to the new
-attribute(s). Similarly attroff() just switches off the
-attribute(s) given to it as an argument. This gives us the
-flexibility of managing attributes easily.But if you use them
-carelessly you may loose track of what attributes the window has
-and garble the display. This is especially true while managing
-menus with colors and highlighting. So decide on a consistent
-policy and stick to it. You can always use <var class=
-"LITERAL">standend()</var> which is equivalent to <var class=
-"LITERAL">attrset(A_NORMAL)</var> which turns off all attributes
-and brings you to normal mode.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ATTR_GET" id="ATTR_GET">8.3.
-attr_get()</a></h3>
-<p>The function attr_get() gets the current attributes and color
-pair of the window. Though we might not use this as often as the
-above functions, this is useful in scanning areas of screen. Say we
-wanted to do some complex update on screen and we are not sure what
-attribute each character is associated with. Then this function can
-be used with either attrset or attron to produce the desired
-effect.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ATTR_FUNCS" id="ATTR_FUNCS">8.4. attr_
-functions</a></h3>
-<p>There are series of functions like attr_set(), attr_on etc..
-These are similar to above functions except that they take
-parameters of type <var class="LITERAL">attr_t</var>.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="WATTRFUNCS" id="WATTRFUNCS">8.5. wattr
-functions</a></h3>
-<p>For each of the above functions we have a corresponding function
-with 'w' which operates on a particular window. The above functions
-operate on stdscr.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="CHGAT" id="CHGAT">8.6. chgat()
-functions</a></h3>
-<p>The function chgat() is listed in the end of the man page
-curs_attr. It actually is a useful one. This function can be used
-to set attributes for a group of characters without moving. I mean
-it !!! without moving the cursor :-) It changes the attributes of a
-given number of characters starting at the current cursor
-location.</p>
-<p>We can give -1 as the character count to update till end of
-line. If you want to change attributes of characters from current
-position to end of line, just use this.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> chgat(-1, A_REVERSE, 0, NULL);</font>
-</pre></td>
-</tr>
-</table>
-<p>This function is useful when changing attributes for characters
-that are already on the screen. Move to the character from which
-you want to change and change the attribute.</p>
-<p>Other functions wchgat(), mvchgat(), wchgat() behave similarly
-except that the w functions operate on the particular window. The
-mv functions first move the cursor then perform the work given to
-them. Actually chgat is a macro which is replaced by a wchgat()
-with stdscr as the window. Most of the "w-less" functions are
-macros.</p>
-<div class="EXAMPLE"><a name="BWICH" id="BWICH"></a>
-<p><b>Example 6. Chgat() Usage example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-int main(int argc, char *argv[])
-{ initscr(); /* Start curses mode */
- start_color(); /* Start color functionality */
-
- init_pair(1, COLOR_CYAN, COLOR_BLACK);
- printw("A Big string which i didn't care to type fully ");
- mvchgat(0, 0, -1, A_BLINK, 1, NULL);
- /*
- * First two parameters specify the position at which to start
- * Third parameter number of characters to update. -1 means till
- * end of line
- * Forth parameter is the normal attribute you wanted to give
- * to the charcter
- * Fifth is the color index. It is the index given during init_pair()
- * use 0 if you didn't want color
- * Sixth one is always NULL
- */
- refresh();
- getch();
- endwin(); /* End curses mode */
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>This example also introduces us to the color world of curses.
-Colors will be explained in detail later. Use 0 for no color.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="WINDOWS" id="WINDOWS">9.
-Windows</a></h2>
-<p>Windows form the most important concept in curses. You have seen
-the standard window stdscr above where all the functions implicitly
-operated on this window. Now to make design even a simplest GUI,
-you need to resort to windows. The main reason you may want to use
-windows is to manipulate parts of the screen separately, for better
-efficiency, by updating only the windows that need to be changed
-and for a better design. I would say the last reason is the most
-important in going for windows. You should always strive for a
-better and easy-to-manage design in your programs. If you are
-writing big, complex GUIs this is of pivotal importance before you
-start doing anything.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="WINDOWBASICS" id="WINDOWBASICS">9.1. The
-basics</a></h3>
-<p>A Window can be created by calling the function <var class=
-"LITERAL">newwin()</var>. It doesn't create any thing on the screen
-actually. It allocates memory for a structure to manipulate the
-window and updates the structure with data regarding the window
-like it's size, beginy, beginx etc.. Hence in curses, a window is
-just an abstraction of an imaginary window, which can be
-manipulated independent of other parts of screen. The function
-newwin() returns a pointer to structure WINDOW, which can be passed
-to window related functions like wprintw() etc.. Finally the window
-can be destroyed with delwin(). It will deallocate the memory
-associated with the window structure.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="LETBEWINDOW" id="LETBEWINDOW">9.2. Let
-there be a Window !!!</a></h3>
-<p>What fun is it, if a window is created and we can't see it. So
-the fun part begins by displaying the window. The function
-<var class="LITERAL">box()</var> can be used to draw a border
-around the window. Let's explore these functions in more detail in
-this example.</p>
-<div class="EXAMPLE"><a name="BWIBO" id="BWIBO"></a>
-<p><b>Example 7. Window Border example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-
-WINDOW *create_newwin(int height, int width, int starty, int startx);
-void destroy_win(WINDOW *local_win);
-
-int main(int argc, char *argv[])
-{ WINDOW *my_win;
- int startx, starty, width, height;
- int ch;
-
- initscr(); /* Start curses mode */
- cbreak(); /* Line buffering disabled, Pass on
- * everty thing to me */
- keypad(stdscr, TRUE); /* I need that nifty F1 */
-
- height = 3;
- width = 10;
- starty = (LINES - height) / 2; /* Calculating for a center placement */
- startx = (COLS - width) / 2; /* of the window */
- printw("Press F1 to exit");
- refresh();
- my_win = create_newwin(height, width, starty, startx);
-
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case KEY_LEFT:
- destroy_win(my_win);
- my_win = create_newwin(height, width, starty,--startx);
- break;
- case KEY_RIGHT:
- destroy_win(my_win);
- my_win = create_newwin(height, width, starty,++startx);
- break;
- case KEY_UP:
- destroy_win(my_win);
- my_win = create_newwin(height, width, --starty,startx);
- break;
- case KEY_DOWN:
- destroy_win(my_win);
- my_win = create_newwin(height, width, ++starty,startx);
- break;
- }
- }
-
- endwin(); /* End curses mode */
- return 0;
-}
-
-WINDOW *create_newwin(int height, int width, int starty, int startx)
-{ WINDOW *local_win;
-
- local_win = newwin(height, width, starty, startx);
- box(local_win, 0 , 0); /* 0, 0 gives default characters
- * for the vertical and horizontal
- * lines */
- wrefresh(local_win); /* Show that box */
-
- return local_win;
-}
-
-void destroy_win(WINDOW *local_win)
-{
- /* box(local_win, ' ', ' '); : This won't produce the desired
- * result of erasing the window. It will leave it's four corners
- * and so an ugly remnant of window.
- */
- wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
- /* The parameters taken are
- * 1. win: the window on which to operate
- * 2. ls: character to be used for the left side of the window
- * 3. rs: character to be used for the right side of the window
- * 4. ts: character to be used for the top side of the window
- * 5. bs: character to be used for the bottom side of the window
- * 6. tl: character to be used for the top left corner of the window
- * 7. tr: character to be used for the top right corner of the window
- * 8. bl: character to be used for the bottom left corner of the window
- * 9. br: character to be used for the bottom right corner of the window
- */
- wrefresh(local_win);
- delwin(local_win);
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="BORDEREXEXPL" id="BORDEREXEXPL">9.3.
-Explanation</a></h3>
-<p>Don't scream. I know it's a big example. But I have to explain
-some important things here :-). This program creates a rectangular
-window that can be moved with left, right, up, down arrow keys. It
-repeatedly creates and destroys windows as user press a key. Don't
-go beyond the screen limits. Checking for those limits is left as
-an exercise for the reader. Let's dissect it by line by line.</p>
-<p>The <var class="LITERAL">create_newwin()</var> function creates
-a window with <var class="LITERAL">newwin()</var> and displays a
-border around it with box. The function <var class=
-"LITERAL">destroy_win()</var> first erases the window from screen
-by painting a border with ' ' character and then calling
-<var class="LITERAL">delwin()</var> to deallocate memory related to
-it. Depending on the key the user presses, starty or startx is
-changed and a new window is created.</p>
-<p>In the destroy_win, as you can see, I used wborder instead of
-box. The reason is written in the comments (You missed it. I know.
-Read the code :-)). wborder draws a border around the window with
-the characters given to it as the 4 corner points and the 4 lines.
-To put it clearly, if you have called wborder as below:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"> wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');</font>
-</pre></td>
-</tr>
-</table>
-<p>it produces some thing like</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> +------------+
- | |
- | |
- | |
- | |
- | |
- | |
- +------------+</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="OTHERSTUFF" id="OTHERSTUFF">9.4. The
-other stuff in the example</a></h3>
-<p>You can also see in the above examples, that I have used the
-variables COLS, LINES which are initialized to the screen sizes
-after initscr(). They can be useful in finding screen dimensions
-and finding the center co-ordinate of the screen as above. The
-function <var class="LITERAL">getch()</var> as usual gets the key
-from keyboard and according to the key it does the corresponding
-work. This type of switch- case is very common in any GUI based
-programs.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="OTHERBORDERFUNCS" id=
-"OTHERBORDERFUNCS">9.5. Other Border functions</a></h3>
-<p>Above program is grossly inefficient in that with each press of
-a key, a window is destroyed and another is created. So let's write
-a more efficient program which uses other border related
-functions.</p>
-<p>The following program uses <var class="LITERAL">mvhline()</var>
-and <var class="LITERAL">mvvline()</var> to achieve similar effect.
-These two functions are simple. They create a horizontal or
-vertical line of the specified length at the specified
-position.</p>
-<div class="EXAMPLE"><a name="BOTBO" id="BOTBO"></a>
-<p><b>Example 8. More border functions</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-typedef struct _win_border_struct {
- chtype ls, rs, ts, bs,
- tl, tr, bl, br;
-}WIN_BORDER;
-
-typedef struct _WIN_struct {
-
- int startx, starty;
- int height, width;
- WIN_BORDER border;
-}WIN;
-
-void init_win_params(WIN *p_win);
-void print_win_params(WIN *p_win);
-void create_box(WIN *win, bool flag);
-
-int main(int argc, char *argv[])
-{ WIN win;
- int ch;
-
- initscr(); /* Start curses mode */
- start_color(); /* Start the color functionality */
- cbreak(); /* Line buffering disabled, Pass on
- * everty thing to me */
- keypad(stdscr, TRUE); /* I need that nifty F1 */
- noecho();
- init_pair(1, COLOR_CYAN, COLOR_BLACK);
-
- /* Initialize the window parameters */
- init_win_params(&amp;win);
- print_win_params(&amp;win);
-
- attron(COLOR_PAIR(1));
- printw("Press F1 to exit");
- refresh();
- attroff(COLOR_PAIR(1));
-
- create_box(&amp;win, TRUE);
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case KEY_LEFT:
- create_box(&amp;win, FALSE);
- --win.startx;
- create_box(&amp;win, TRUE);
- break;
- case KEY_RIGHT:
- create_box(&amp;win, FALSE);
- ++win.startx;
- create_box(&amp;win, TRUE);
- break;
- case KEY_UP:
- create_box(&amp;win, FALSE);
- --win.starty;
- create_box(&amp;win, TRUE);
- break;
- case KEY_DOWN:
- create_box(&amp;win, FALSE);
- ++win.starty;
- create_box(&amp;win, TRUE);
- break;
- }
- }
- endwin(); /* End curses mode */
- return 0;
-}
-void init_win_params(WIN *p_win)
-{
- p_win-&gt;height = 3;
- p_win-&gt;width = 10;
- p_win-&gt;starty = (LINES - p_win-&gt;height)/2;
- p_win-&gt;startx = (COLS - p_win-&gt;width)/2;
-
- p_win-&gt;border.ls = '|';
- p_win-&gt;border.rs = '|';
- p_win-&gt;border.ts = '-';
- p_win-&gt;border.bs = '-';
- p_win-&gt;border.tl = '+';
- p_win-&gt;border.tr = '+';
- p_win-&gt;border.bl = '+';
- p_win-&gt;border.br = '+';
-
-}
-void print_win_params(WIN *p_win)
-{
-#ifdef _DEBUG
- mvprintw(25, 0, "%d %d %d %d", p_win-&gt;startx, p_win-&gt;starty,
- p_win-&gt;width, p_win-&gt;height);
- refresh();
-#endif
-}
-void create_box(WIN *p_win, bool flag)
-{ int i, j;
- int x, y, w, h;
-
- x = p_win-&gt;startx;
- y = p_win-&gt;starty;
- w = p_win-&gt;width;
- h = p_win-&gt;height;
-
- if(flag == TRUE)
- { mvaddch(y, x, p_win-&gt;border.tl);
- mvaddch(y, x + w, p_win-&gt;border.tr);
- mvaddch(y + h, x, p_win-&gt;border.bl);
- mvaddch(y + h, x + w, p_win-&gt;border.br);
- mvhline(y, x + 1, p_win-&gt;border.ts, w - 1);
- mvhline(y + h, x + 1, p_win-&gt;border.bs, w - 1);
- mvvline(y + 1, x, p_win-&gt;border.ls, h - 1);
- mvvline(y + 1, x + w, p_win-&gt;border.rs, h - 1);
-
- }
- else
- for(j = y; j &lt;= y + h; ++j)
- for(i = x; i &lt;= x + w; ++i)
- mvaddch(j, i, ' ');
-
- refresh();
-
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="COLOR" id="COLOR">10. Colors</a></h2>
-<div class="SECT2">
-<h3 class="SECT2"><a name="COLORBASICS" id="COLORBASICS">10.1. The
-basics</a></h3>
-<p>Life seems dull with no colors. Curses has a nice mechanism to
-handle colors. Let's get into the thick of the things with a small
-program.</p>
-<div class="EXAMPLE"><a name="BSICO" id="BSICO"></a>
-<p><b>Example 9. A Simple Color example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);
-int main(int argc, char *argv[])
-{ initscr(); /* Start curses mode */
- if(has_colors() == FALSE)
- { endwin();
- printf("Your terminal does not support color\n");
- exit(1);
- }
- start_color(); /* Start color */
- init_pair(1, COLOR_RED, COLOR_BLACK);
-
- attron(COLOR_PAIR(1));
- print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ...");
- attroff(COLOR_PAIR(1));
- getch();
- endwin();
-}
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string)
-{ int length, x, y;
- float temp;
-
- if(win == NULL)
- win = stdscr;
- getyx(win, y, x);
- if(startx != 0)
- x = startx;
- if(starty != 0)
- y = starty;
- if(width == 0)
- width = 80;
-
- length = strlen(string);
- temp = (width - length)/ 2;
- x = startx + (int)temp;
- mvwprintw(win, y, x, "%s", string);
- refresh();
-}
-</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>As you can see, to start using color, you should first call the
-function <var class="LITERAL">start_color()</var>. After that, you
-can use color capabilities of your terminals using various
-functions. To find out whether a terminal has color capabilities or
-not, you can use <var class="LITERAL">has_colors()</var> function,
-which returns FALSE if the terminal does not support color.</p>
-<p>Curses initializes all the colors supported by terminal when
-start_color() is called. These can be accessed by the define
-constants like <var class="LITERAL">COLOR_BLACK</var> etc. Now to
-actually start using colors, you have to define pairs. Colors are
-always used in pairs. That means you have to use the function
-<var class="LITERAL">init_pair()</var> to define the foreground and
-background for the pair number you give. After that that pair
-number can be used as a normal attribute with <var class=
-"LITERAL">COLOR_PAIR()</var>function. This may seem to be
-cumbersome at first. But this elegant solution allows us to manage
-color pairs very easily. To appreciate it, you have to look into
-the the source code of "dialog", a utility for displaying dialog
-boxes from shell scripts. The developers have defined foreground
-and background combinations for all the colors they might need and
-initialized at the beginning. This makes it very easy to set
-attributes just by accessing a pair which we already have defined
-as a constant.</p>
-<p>The following colors are defined in <var class=
-"LITERAL">curses.h</var>. You can use these as parameters for
-various color functions.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> COLOR_BLACK 0
- COLOR_RED 1
- COLOR_GREEN 2
- COLOR_YELLOW 3
- COLOR_BLUE 4
- COLOR_MAGENTA 5
- COLOR_CYAN 6
- COLOR_WHITE 7</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="CHANGECOLORDEFS" id=
-"CHANGECOLORDEFS">10.2. Changing Color Definitions</a></h3>
-<p>The function <var class="LITERAL">init_color()</var>can be used
-to change the rgb values for the colors defined by curses
-initially. Say you wanted to lighten the intensity of red color by
-a minuscule. Then you can use this function as</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> init_color(COLOR_RED, 700, 0, 0);
- /* param 1 : color name
- * param 2, 3, 4 : rgb content min = 0, max = 1000 */</font>
-</pre></td>
-</tr>
-</table>
-<p>If your terminal cannot change the color definitions, the
-function returns ERR. The function <var class=
-"LITERAL">can_change_color()</var> can be used to find out whether
-the terminal has the capability of changing color content or not.
-The rgb content is scaled from 0 to 1000. Initially RED color is
-defined with content 1000(r), 0(g), 0(b).</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="COLORCONTENT" id="COLORCONTENT">10.3.
-Color Content</a></h3>
-<p>The functions <var class="LITERAL">color_content()</var> and
-<var class="LITERAL">pair_content()</var> can be used to find the
-color content and foreground, background combination for the
-pair.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="KEYS" id="KEYS">11. Interfacing with the
-key board</a></h2>
-<div class="SECT2">
-<h3 class="SECT2"><a name="KEYSBASICS" id="KEYSBASICS">11.1. The
-Basics</a></h3>
-<p>No GUI is complete without a strong user interface and to
-interact with the user, a curses program should be sensitive to key
-presses or the mouse actions done by the user. Let's deal with the
-keys first.</p>
-<p>As you have seen in almost all of the above examples, it's very
-easy to get key input from the user. A simple way of getting key
-presses is to use <var class="LITERAL">getch()</var> function. The
-cbreak mode should be enabled to read keys when you are interested
-in reading individual key hits rather than complete lines of text
-(which usually end with a carriage return). keypad should be
-enabled to get the Functions keys, arrow keys etc. See the
-initialization section for details.</p>
-<p><var class="LITERAL">getch()</var> returns an integer
-corresponding to the key pressed. If it is a normal character, the
-integer value will be equivalent to the character. Otherwise it
-returns a number which can be matched with the constants defined in
-<var class="LITERAL">curses.h</var>. For example if the user
-presses F1, the integer returned is 265. This can be checked using
-the macro KEY_F() defined in curses.h. This makes reading keys
-portable and easy to manage.</p>
-<p>For example, if you call getch() like this</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> int ch;
-
- ch = getch();</font>
-</pre></td>
-</tr>
-</table>
-<p>getch() will wait for the user to press a key, (unless you
-specified a timeout) and when user presses a key, the corresponding
-integer is returned. Then you can check the value returned with the
-constants defined in curses.h to match against the keys you
-want.</p>
-<p>The following code piece will do that job.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> if(ch == KEY_LEFT)
- printw("Left arrow is pressed\n");</font>
-</pre></td>
-</tr>
-</table>
-<p>Let's write a small program which creates a menu which can be
-navigated by up and down arrows.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="SIMPLEKEYEX" id="SIMPLEKEYEX">11.2. A
-Simple Key Usage example</a></h3>
-<div class="EXAMPLE"><a name="BSIKE" id="BSIKE"></a>
-<p><b>Example 10. A Simple Key Usage example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;stdio.h&gt;
-#include &lt;ncurses.h&gt;
-
-#define WIDTH 30
-#define HEIGHT 10
-
-int startx = 0;
-int starty = 0;
-
-char *choices[] = {
- "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Exit",
- };
-int n_choices = sizeof(choices) / sizeof(char *);
-void print_menu(WINDOW *menu_win, int highlight);
-
-int main()
-{ WINDOW *menu_win;
- int highlight = 1;
- int choice = 0;
- int c;
-
- initscr();
- clear();
- noecho();
- cbreak(); /* Line buffering disabled. pass on everything */
- startx = (80 - WIDTH) / 2;
- starty = (24 - HEIGHT) / 2;
-
- menu_win = newwin(HEIGHT, WIDTH, starty, startx);
- keypad(menu_win, TRUE);
- mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
- refresh();
- print_menu(menu_win, highlight);
- while(1)
- { c = wgetch(menu_win);
- switch(c)
- { case KEY_UP:
- if(highlight == 1)
- highlight = n_choices;
- else
- --highlight;
- break;
- case KEY_DOWN:
- if(highlight == n_choices)
- highlight = 1;
- else
- ++highlight;
- break;
- case 10:
- choice = highlight;
- break;
- default:
- mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c);
- refresh();
- break;
- }
- print_menu(menu_win, highlight);
- if(choice != 0) /* User did a choice come out of the infinite loop */
- break;
- }
- mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]);
- clrtoeol();
- refresh();
- endwin();
- return 0;
-}
-
-
-void print_menu(WINDOW *menu_win, int highlight)
-{
- int x, y, i;
-
- x = 2;
- y = 2;
- box(menu_win, 0, 0);
- for(i = 0; i &lt; n_choices; ++i)
- { if(highlight == i + 1) /* High light the present choice */
- { wattron(menu_win, A_REVERSE);
- mvwprintw(menu_win, y, x, "%s", choices[i]);
- wattroff(menu_win, A_REVERSE);
- }
- else
- mvwprintw(menu_win, y, x, "%s", choices[i]);
- ++y;
- }
- wrefresh(menu_win);
-}
-</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="MOUSE" id="MOUSE">12. Interfacing with
-the mouse</a></h2>
-<p>Now that you have seen how to get keys, lets do the same thing
-from mouse. Usually each UI allows the user to interact with both
-keyboard and mouse.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MOUSEBASICS" id="MOUSEBASICS">12.1. The
-Basics</a></h3>
-<p>Before you do any thing else, the events you want to receive
-have to be enabled with <var class="LITERAL">mousemask()</var>.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"> mousemask( mmask_t newmask, /* The events you want to listen to */
- mmask_t *oldmask) /* The old events mask */</font>
-</pre></td>
-</tr>
-</table>
-<p>The first parameter to above function is a bit mask of events
-you would like to listen. By default, all the events are turned
-off. The bit mask <var class="LITERAL">ALL_MOUSE_EVENTS</var> can
-be used to get all the events.</p>
-<p>The following are all the event masks:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> Name Description
- ---------------------------------------------------------------------
- BUTTON1_PRESSED mouse button 1 down
- BUTTON1_RELEASED mouse button 1 up
- BUTTON1_CLICKED mouse button 1 clicked
- BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
- BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
- BUTTON2_PRESSED mouse button 2 down
- BUTTON2_RELEASED mouse button 2 up
- BUTTON2_CLICKED mouse button 2 clicked
- BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
- BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
- BUTTON3_PRESSED mouse button 3 down
- BUTTON3_RELEASED mouse button 3 up
- BUTTON3_CLICKED mouse button 3 clicked
- BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
- BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
- BUTTON4_PRESSED mouse button 4 down
- BUTTON4_RELEASED mouse button 4 up
- BUTTON4_CLICKED mouse button 4 clicked
- BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
- BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
- BUTTON_SHIFT shift was down during button state change
- BUTTON_CTRL control was down during button state change
- BUTTON_ALT alt was down during button state change
- ALL_MOUSE_EVENTS report all button state changes
- REPORT_MOUSE_POSITION report mouse movement</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="GETTINGEVENTS" id="GETTINGEVENTS">12.2.
-Getting the events</a></h3>
-<p>Once a class of mouse events have been enabled, getch() class of
-functions return KEY_MOUSE every time some mouse event happens.
-Then the mouse event can be retrieved with <var class=
-"LITERAL">getmouse()</var>.</p>
-<p>The code approximately looks like this:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> MEVENT event;
-
- ch = getch();
- if(ch == KEY_MOUSE)
- if(getmouse(&amp;event) == OK)
- . /* Do some thing with the event */
- .
- .</font>
-</pre></td>
-</tr>
-</table>
-<p>getmouse() returns the event into the pointer given to it. It's
-a structure which contains</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> typedef struct
- {
- short id; /* ID to distinguish multiple devices */
- int x, y, z; /* event coordinates */
- mmask_t bstate; /* button state bits */
- } </font>
-</pre></td>
-</tr>
-</table>
-<p>The <var class="LITERAL">bstate</var> is the main variable we
-are interested in. It tells the button state of the mouse.</p>
-<p>Then with a code snippet like the following, we can find out
-what happened.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> if(event.bstate &amp; BUTTON1_PRESSED)
- printw("Left Button Pressed");</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MOUSETOGETHER" id="MOUSETOGETHER">12.3.
-Putting it all Together</a></h3>
-<p>That's pretty much interfacing with mouse. Let's create the same
-menu and enable mouse interaction. To make things simpler, key
-handling is removed.</p>
-<div class="EXAMPLE"><a name="BMOME" id="BMOME"></a>
-<p><b>Example 11. Access the menu with mouse !!!</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-#define WIDTH 30
-#define HEIGHT 10
-
-int startx = 0;
-int starty = 0;
-
-char *choices[] = { "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Exit",
- };
-
-int n_choices = sizeof(choices) / sizeof(char *);
-
-void print_menu(WINDOW *menu_win, int highlight);
-void report_choice(int mouse_x, int mouse_y, int *p_choice);
-
-int main()
-{ int c, choice = 0;
- WINDOW *menu_win;
- MEVENT event;
-
- /* Initialize curses */
- initscr();
- clear();
- noecho();
- cbreak(); //Line buffering disabled. pass on everything
-
- /* Try to put the window in the middle of screen */
- startx = (80 - WIDTH) / 2;
- starty = (24 - HEIGHT) / 2;
-
- attron(A_REVERSE);
- mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)");
- refresh();
- attroff(A_REVERSE);
-
- /* Print the menu for the first time */
- menu_win = newwin(HEIGHT, WIDTH, starty, startx);
- print_menu(menu_win, 1);
- /* Get all the mouse events */
- mousemask(ALL_MOUSE_EVENTS, NULL);
-
- while(1)
- { c = wgetch(menu_win);
- switch(c)
- { case KEY_MOUSE:
- if(getmouse(&amp;event) == OK)
- { /* When the user clicks left mouse button */
- if(event.bstate &amp; BUTTON1_PRESSED)
- { report_choice(event.x + 1, event.y + 1, &amp;choice);
- if(choice == -1) //Exit chosen
- goto end;
- mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]);
- refresh();
- }
- }
- print_menu(menu_win, choice);
- break;
- }
- }
-end:
- endwin();
- return 0;
-}
-
-
-void print_menu(WINDOW *menu_win, int highlight)
-{
- int x, y, i;
-
- x = 2;
- y = 2;
- box(menu_win, 0, 0);
- for(i = 0; i &lt; n_choices; ++i)
- { if(highlight == i + 1)
- { wattron(menu_win, A_REVERSE);
- mvwprintw(menu_win, y, x, "%s", choices[i]);
- wattroff(menu_win, A_REVERSE);
- }
- else
- mvwprintw(menu_win, y, x, "%s", choices[i]);
- ++y;
- }
- wrefresh(menu_win);
-}
-
-/* Report the choice according to mouse position */
-void report_choice(int mouse_x, int mouse_y, int *p_choice)
-{ int i,j, choice;
-
- i = startx + 2;
- j = starty + 3;
-
- for(choice = 0; choice &lt; n_choices; ++choice)
- if(mouse_y == j + choice &amp;&amp; mouse_x &gt;= i &amp;&amp; mouse_x &lt;= i + strlen(choices[choice]))
- { if(choice == n_choices - 1)
- *p_choice = -1;
- else
- *p_choice = choice + 1;
- break;
- }
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MISCMOUSEFUNCS" id=
-"MISCMOUSEFUNCS">12.4. Miscellaneous Functions</a></h3>
-<p>The functions mouse_trafo() and wmouse_trafo() can be used to
-convert to mouse co-ordinates to screen relative co-ordinates. See
-curs_mouse(3X) man page for details.</p>
-<p>The mouseinterval function sets the maximum time (in thousands
-of a second) that can elapse between press and release events in
-order for them to be recognized as a click. This function returns
-the previous interval value. The default is one fifth of a
-second.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="SCREEN" id="SCREEN">13. Screen
-Manipulation</a></h2>
-<p>In this section, we will look into some functions, which allow
-us to manage the screen efficiently and to write some fancy
-programs. This is especially important in writing games.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="GETYX" id="GETYX">13.1. getyx()
-functions</a></h3>
-<p>The function <var class="LITERAL">getyx()</var> can be used to
-find out the present cursor co-ordinates. It will fill the values
-of x and y co-ordinates in the arguments given to it. Since getyx()
-is a macro you don't have to pass the address of the variables. It
-can be called as</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> getyx(win, y, x);
- /* win: window pointer
- * y, x: y, x co-ordinates will be put into this variables
- */</font>
-</pre></td>
-</tr>
-</table>
-<p>The function getparyx() gets the beginning co-ordinates of the
-sub window relative to the main window. This is some times useful
-to update a sub window. When designing fancy stuff like writing
-multiple menus, it becomes difficult to store the menu positions,
-their first option co-ordinates etc. A simple solution to this
-problem, is to create menus in sub windows and later find the
-starting co-ordinates of the menus by using getparyx().</p>
-<p>The functions getbegyx() and getmaxyx() store current window's
-beginning and maximum co-ordinates. These functions are useful in
-the same way as above in managing the windows and sub windows
-effectively.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="SCREENDUMP" id="SCREENDUMP">13.2. Screen
-Dumping</a></h3>
-<p>While writing games, some times it becomes necessary to store
-the state of the screen and restore it back to the same state. The
-function scr_dump() can be used to dump the screen contents to a
-file given as an argument. Later it can be restored by scr_restore
-function. These two simple functions can be used effectively to
-maintain a fast moving game with changing scenarios.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="WINDOWDUMP" id="WINDOWDUMP">13.3. Window
-Dumping</a></h3>
-<p>To store and restore windows, the functions <var class=
-"LITERAL">putwin()</var> and <var class="LITERAL">getwin()</var>
-can be used. <var class="LITERAL">putwin()</var> puts the present
-window state into a file, which can be later restored by
-<var class="LITERAL">getwin()</var>.</p>
-<p>The function <var class="LITERAL">copywin()</var> can be used to
-copy a window completely onto another window. It takes the source
-and destination windows as parameters and according to the
-rectangle specified, it copies the rectangular region from source
-to destination window. It's last parameter specifies whether to
-overwrite or just overlay the contents on to the destination
-window. If this argument is true, then the copying is
-non-destructive.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="MISC" id="MISC">14. Miscellaneous
-features</a></h2>
-<p>Now you know enough features to write a good curses program,
-with all bells and whistles. There are some miscellaneous functions
-which are useful in various cases. Let's go headlong into some of
-those.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="CURSSET" id="CURSSET">14.1.
-curs_set()</a></h3>
-<p>This function can be used to make the cursor invisible. The
-parameter to this function should be</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> 0 : invisible or
- 1 : normal or
- 2 : very visible.</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="TEMPLEAVE" id="TEMPLEAVE">14.2.
-Temporarily Leaving Curses mode</a></h3>
-<p>Some times you may want to get back to cooked mode (normal line
-buffering mode) temporarily. In such a case you will first need to
-save the tty modes with a call to <var class=
-"LITERAL">def_prog_mode()</var> and then call <var class=
-"LITERAL">endwin()</var> to end the curses mode. This will leave
-you in the original tty mode. To get back to curses once you are
-done, call <var class="LITERAL">reset_prog_mode()</var> . This
-function returns the tty to the state stored by <var class=
-"LITERAL">def_prog_mode()</var>. Then do refresh(), and you are
-back to the curses mode. Here is an example showing the sequence of
-things to be done.</p>
-<div class="EXAMPLE"><a name="BTELE" id="BTELE"></a>
-<p><b>Example 12. Temporarily Leaving Curses Mode</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-int main()
-{
- initscr(); /* Start curses mode */
- printw("Hello World !!!\n"); /* Print Hello World */
- refresh(); /* Print it on to the real screen */
- def_prog_mode(); /* Save the tty modes */
- endwin(); /* End curses mode temporarily */
- system("/bin/sh"); /* Do whatever you like in cooked mode */
- reset_prog_mode(); /* Return to the previous tty mode*/
- /* stored by def_prog_mode() */
- refresh(); /* Do refresh() to restore the */
- /* Screen contents */
- printw("Another String\n"); /* Back to curses use the full */
- refresh(); /* capabilities of curses */
- endwin(); /* End curses mode */
-
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="ACSVARS" id="ACSVARS">14.3. ACS_
-variables</a></h3>
-<p>If you have ever programmed in DOS, you know about those nifty
-characters in extended character set. They are printable only on
-some terminals. NCURSES functions like <var class=
-"LITERAL">box()</var> use these characters. All these variables
-start with ACS meaning alternative character set. You might have
-noticed me using these characters in some of the programs above.
-Here's an example showing all the characters.</p>
-<div class="EXAMPLE"><a name="BACSVARS" id="BACSVARS"></a>
-<p><b>Example 13. ACS Variables Example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
-
-int main()
-{
- initscr();
-
- printw("Upper left corner "); addch(ACS_ULCORNER); printw("\n");
- printw("Lower left corner "); addch(ACS_LLCORNER); printw("\n");
- printw("Lower right corner "); addch(ACS_LRCORNER); printw("\n");
- printw("Tee pointing right "); addch(ACS_LTEE); printw("\n");
- printw("Tee pointing left "); addch(ACS_RTEE); printw("\n");
- printw("Tee pointing up "); addch(ACS_BTEE); printw("\n");
- printw("Tee pointing down "); addch(ACS_TTEE); printw("\n");
- printw("Horizontal line "); addch(ACS_HLINE); printw("\n");
- printw("Vertical line "); addch(ACS_VLINE); printw("\n");
- printw("Large Plus or cross over "); addch(ACS_PLUS); printw("\n");
- printw("Scan Line 1 "); addch(ACS_S1); printw("\n");
- printw("Scan Line 3 "); addch(ACS_S3); printw("\n");
- printw("Scan Line 7 "); addch(ACS_S7); printw("\n");
- printw("Scan Line 9 "); addch(ACS_S9); printw("\n");
- printw("Diamond "); addch(ACS_DIAMOND); printw("\n");
- printw("Checker board (stipple) "); addch(ACS_CKBOARD); printw("\n");
- printw("Degree Symbol "); addch(ACS_DEGREE); printw("\n");
- printw("Plus/Minus Symbol "); addch(ACS_PLMINUS); printw("\n");
- printw("Bullet "); addch(ACS_BULLET); printw("\n");
- printw("Arrow Pointing Left "); addch(ACS_LARROW); printw("\n");
- printw("Arrow Pointing Right "); addch(ACS_RARROW); printw("\n");
- printw("Arrow Pointing Down "); addch(ACS_DARROW); printw("\n");
- printw("Arrow Pointing Up "); addch(ACS_UARROW); printw("\n");
- printw("Board of squares "); addch(ACS_BOARD); printw("\n");
- printw("Lantern Symbol "); addch(ACS_LANTERN); printw("\n");
- printw("Solid Square Block "); addch(ACS_BLOCK); printw("\n");
- printw("Less/Equal sign "); addch(ACS_LEQUAL); printw("\n");
- printw("Greater/Equal sign "); addch(ACS_GEQUAL); printw("\n");
- printw("Pi "); addch(ACS_PI); printw("\n");
- printw("Not equal "); addch(ACS_NEQUAL); printw("\n");
- printw("UK pound sign "); addch(ACS_STERLING); printw("\n");
-
- refresh();
- getch();
- endwin();
-
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="OTHERLIB" id="OTHERLIB">15. Other
-libraries</a></h2>
-<p>Apart from the curses library, there are few text mode
-libraries, which provide more functionality and a lot of features.
-The following sections explain three standard libraries which are
-usually distributed along with curses.</p>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="PANELS" id="PANELS">16. Panel
-Library</a></h2>
-<p>Now that you are proficient in curses, you wanted to do some
-thing big. You created a lot of overlapping windows to give a
-professional windows-type look. Unfortunately, it soon becomes
-difficult to manage these. The multiple refreshes, updates plunge
-you into a nightmare. The overlapping windows create blotches,
-whenever you forget to refresh the windows in the proper order.</p>
-<p>Don't despair. There's an elegant solution provided in panels
-library. In the words of developers of ncurses</p>
-<p><em>When your interface design is such that windows may dive
-deeper into the visibility stack or pop to the top at runtime, the
-resulting book-keeping can be tedious and difficult to get right.
-Hence the panels library.</em></p>
-<p>If you have lot of overlapping windows, then panels library is
-the way to go. It obviates the need of doing series of
-wnoutrefresh(), doupdate() and relieves the burden of doing it
-correctly(bottom up). The library maintains information about the
-order of windows, their overlapping and update the screen properly.
-So why wait? Let's take a close peek into panels.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PANELBASICS" id="PANELBASICS">16.1. The
-Basics</a></h3>
-<p>Panel object is a window that is implicitly treated as part of a
-deck including all other panel objects. The deck is treated as a
-stack with the top panel being completely visible and the other
-panels may or may not be obscured according to their positions. So
-the basic idea is to create a stack of overlapping panels and use
-panels library to display them correctly. There is a function
-similar to refresh() which, when called , displays panels in the
-correct order. Functions are provided to hide or show panels, move
-panels, change its size etc.. The overlapping problem is managed by
-the panels library during all the calls to these functions.</p>
-<p>The general flow of a panel program goes like this:</p>
-<ol type="1">
-<li>
-<p>Create the windows (with newwin()) to be attached to the
-panels.</p>
-</li>
-<li>
-<p>Create panels with the chosen visibility order. Stack them up
-according to the desired visibility. The function new_panel() is
-used to created panels.</p>
-</li>
-<li>
-<p>Call update_panels() to write the panels to the virtual screen
-in correct visibility order. Do a doupdate() to show it on the
-screen.</p>
-</li>
-<li>
-<p>Mainpulate the panels with show_panel(), hide_panel(),
-move_panel() etc. Make use of helper functions like panel_hidden()
-and panel_window(). Make use of user pointer to store custom data
-for a panel. Use the functions set_panel_userptr() and
-panel_userptr() to set and get the user pointer for a panel.</p>
-</li>
-<li>
-<p>When you are done with the panel use del_panel() to delete the
-panel.</p>
-</li>
-</ol>
-<p>Let's make the concepts clear, with some programs. The following
-is a simple program which creates 3 overlapping panels and shows
-them on the screen.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="COMPILEPANELS" id="COMPILEPANELS">16.2.
-Compiling With the Panels Library</a></h3>
-<p>To use panels library functions, you have to include panel.h and
-to link the program with panels library the flag -lpanel should be
-added along with -lncurses in that order.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> #include &lt;panel.h&gt;
- .
- .
- .
-
- compile and link: gcc &lt;program file&gt; -lpanel -lncurses</font>
-</pre></td>
-</tr>
-</table>
-<div class="EXAMPLE"><a name="PPASI" id="PPASI"></a>
-<p><b>Example 14. Panel basics</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
-
-int main()
-{ WINDOW *my_wins[3];
- PANEL *my_panels[3];
- int lines = 10, cols = 40, y = 2, x = 4, i;
-
- initscr();
- cbreak();
- noecho();
-
- /* Create windows for the panels */
- my_wins[0] = newwin(lines, cols, y, x);
- my_wins[1] = newwin(lines, cols, y + 1, x + 5);
- my_wins[2] = newwin(lines, cols, y + 2, x + 10);
-
- /*
- * Create borders around the windows so that you can see the effect
- * of panels
- */
- for(i = 0; i &lt; 3; ++i)
- box(my_wins[i], 0, 0);
-
- /* Attach a panel to each window */ /* Order is bottom up */
- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
-
- /* Update the stacking order. 2nd panel will be on top */
- update_panels();
-
- /* Show it on the screen */
- doupdate();
-
- getch();
- endwin();
-}
-</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>As you can see, above program follows a simple flow as
-explained. The windows are created with newwin() and then they are
-attached to panels with new_panel(). As we attach one panel after
-another, the stack of panels gets updated. To put them on screen
-update_panels() and doupdate() are called.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PANELBROWSING" id="PANELBROWSING">16.3.
-Panel Window Browsing</a></h3>
-<p>A slightly complicated example is given below. This program
-creates 3 windows which can be cycled through using tab. Have a
-look at the code.</p>
-<div class="EXAMPLE"><a name="PPABR" id="PPABR"></a>
-<p><b>Example 15. Panel Window Browsing Example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
-
-#define NLINES 10
-#define NCOLS 40
-
-void init_wins(WINDOW **wins, int n);
-void win_show(WINDOW *win, char *label, int label_color);
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
-
-int main()
-{ WINDOW *my_wins[3];
- PANEL *my_panels[3];
- PANEL *top;
- int ch;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize all the colors */
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_BLUE, COLOR_BLACK);
- init_pair(4, COLOR_CYAN, COLOR_BLACK);
-
- init_wins(my_wins, 3);
-
- /* Attach a panel to each window */ /* Order is bottom up */
- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
-
- /* Set up the user pointers to the next panel */
- set_panel_userptr(my_panels[0], my_panels[1]);
- set_panel_userptr(my_panels[1], my_panels[2]);
- set_panel_userptr(my_panels[2], my_panels[0]);
-
- /* Update the stacking order. 2nd panel will be on top */
- update_panels();
-
- /* Show it on the screen */
- attron(COLOR_PAIR(4));
- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
- attroff(COLOR_PAIR(4));
- doupdate();
-
- top = my_panels[2];
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case 9:
- top = (PANEL *)panel_userptr(top);
- top_panel(top);
- break;
- }
- update_panels();
- doupdate();
- }
- endwin();
- return 0;
-}
-
-/* Put all the windows */
-void init_wins(WINDOW **wins, int n)
-{ int x, y, i;
- char label[80];
-
- y = 2;
- x = 10;
- for(i = 0; i &lt; n; ++i)
- { wins[i] = newwin(NLINES, NCOLS, y, x);
- sprintf(label, "Window Number %d", i + 1);
- win_show(wins[i], label, i + 1);
- y += 3;
- x += 7;
- }
-}
-
-/* Show the window with a border and a label */
-void win_show(WINDOW *win, char *label, int label_color)
-{ int startx, starty, height, width;
-
- getbegyx(win, starty, startx);
- getmaxyx(win, height, width);
-
- box(win, 0, 0);
- mvwaddch(win, 2, 0, ACS_LTEE);
- mvwhline(win, 2, 1, ACS_HLINE, width - 2);
- mvwaddch(win, 2, width - 1, ACS_RTEE);
-
- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
-}
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{ int length, x, y;
- float temp;
-
- if(win == NULL)
- win = stdscr;
- getyx(win, y, x);
- if(startx != 0)
- x = startx;
- if(starty != 0)
- y = starty;
- if(width == 0)
- width = 80;
-
- length = strlen(string);
- temp = (width - length)/ 2;
- x = startx + (int)temp;
- wattron(win, color);
- mvwprintw(win, y, x, "%s", string);
- wattroff(win, color);
- refresh();
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="USERPTRUSING" id="USERPTRUSING">16.4.
-Using User Pointers</a></h3>
-<p>In the above example I used user pointers to find out the next
-window in the cycle. We can attach custom information to the panel
-by specifying a user pointer, which can point to any information
-you want to store. In this case I stored the pointer to the next
-panel in the cycle. User pointer for a panel can be set with the
-function <var class="LITERAL">set_panel_userptr()</var>. It can be
-accessed using the function <var class=
-"LITERAL">panel_userptr()</var> which will return the user pointer
-for the panel given as argument. After finding the next panel in
-the cycle It's brought to the top by the function top_panel(). This
-function brings the panel given as argument to the top of the panel
-stack.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PANELMOVERESIZE" id=
-"PANELMOVERESIZE">16.5. Moving and Resizing Panels</a></h3>
-<p>The function <var class="LITERAL">move_panel()</var> can be used
-to move a panel to the desired location. It does not change the
-position of the panel in the stack. Make sure that you use
-move_panel() instead mvwin() on the window associated with the
-panel.</p>
-<p>Resizing a panel is slightly complex. There is no straight
-forward function just to resize the window associated with a panel.
-A solution to resize a panel is to create a new window with the
-desired sizes, change the window associated with the panel using
-replace_panel(). Don't forget to delete the old window. The window
-associated with a panel can be found by using the function
-panel_window().</p>
-<p>The following program shows these concepts, in supposedly simple
-program. You can cycle through the window with &lt;TAB&gt; as
-usual. To resize or move the active panel press 'r' for resize 'm'
-for moving. Then use arrow keys to resize or move it to the desired
-way and press enter to end your resizing or moving. This example
-makes use of user data to get the required data to do the
-operations.</p>
-<div class="EXAMPLE"><a name="PPARE" id="PPARE"></a>
-<p><b>Example 16. Panel Moving and Resizing example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
-
-typedef struct _PANEL_DATA {
- int x, y, w, h;
- char label[80];
- int label_color;
- PANEL *next;
-}PANEL_DATA;
-
-#define NLINES 10
-#define NCOLS 40
-
-void init_wins(WINDOW **wins, int n);
-void win_show(WINDOW *win, char *label, int label_color);
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
-void set_user_ptrs(PANEL **panels, int n);
-
-int main()
-{ WINDOW *my_wins[3];
- PANEL *my_panels[3];
- PANEL_DATA *top;
- PANEL *stack_top;
- WINDOW *temp_win, *old_win;
- int ch;
- int newx, newy, neww, newh;
- int size = FALSE, move = FALSE;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize all the colors */
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_BLUE, COLOR_BLACK);
- init_pair(4, COLOR_CYAN, COLOR_BLACK);
-
- init_wins(my_wins, 3);
-
- /* Attach a panel to each window */ /* Order is bottom up */
- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
-
- set_user_ptrs(my_panels, 3);
- /* Update the stacking order. 2nd panel will be on top */
- update_panels();
-
- /* Show it on the screen */
- attron(COLOR_PAIR(4));
- mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
- attroff(COLOR_PAIR(4));
- doupdate();
-
- stack_top = my_panels[2];
- top = (PANEL_DATA *)panel_userptr(stack_top);
- newx = top-&gt;x;
- newy = top-&gt;y;
- neww = top-&gt;w;
- newh = top-&gt;h;
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case 9: /* Tab */
- top = (PANEL_DATA *)panel_userptr(stack_top);
- top_panel(top-&gt;next);
- stack_top = top-&gt;next;
- top = (PANEL_DATA *)panel_userptr(stack_top);
- newx = top-&gt;x;
- newy = top-&gt;y;
- neww = top-&gt;w;
- newh = top-&gt;h;
- break;
- case 'r': /* Re-Size*/
- size = TRUE;
- attron(COLOR_PAIR(4));
- mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press &lt;ENTER&gt; to end resizing");
- refresh();
- attroff(COLOR_PAIR(4));
- break;
- case 'm': /* Move */
- attron(COLOR_PAIR(4));
- mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press &lt;ENTER&gt; to end moving");
- refresh();
- attroff(COLOR_PAIR(4));
- move = TRUE;
- break;
- case KEY_LEFT:
- if(size == TRUE)
- { --newx;
- ++neww;
- }
- if(move == TRUE)
- --newx;
- break;
- case KEY_RIGHT:
- if(size == TRUE)
- { ++newx;
- --neww;
- }
- if(move == TRUE)
- ++newx;
- break;
- case KEY_UP:
- if(size == TRUE)
- { --newy;
- ++newh;
- }
- if(move == TRUE)
- --newy;
- break;
- case KEY_DOWN:
- if(size == TRUE)
- { ++newy;
- --newh;
- }
- if(move == TRUE)
- ++newy;
- break;
- case 10: /* Enter */
- move(LINES - 4, 0);
- clrtoeol();
- refresh();
- if(size == TRUE)
- { old_win = panel_window(stack_top);
- temp_win = newwin(newh, neww, newy, newx);
- replace_panel(stack_top, temp_win);
- win_show(temp_win, top-&gt;label, top-&gt;label_color);
- delwin(old_win);
- size = FALSE;
- }
- if(move == TRUE)
- { move_panel(stack_top, newy, newx);
- move = FALSE;
- }
- break;
-
- }
- attron(COLOR_PAIR(4));
- mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
- attroff(COLOR_PAIR(4));
- refresh();
- update_panels();
- doupdate();
- }
- endwin();
- return 0;
-}
-
-/* Put all the windows */
-void init_wins(WINDOW **wins, int n)
-{ int x, y, i;
- char label[80];
-
- y = 2;
- x = 10;
- for(i = 0; i &lt; n; ++i)
- { wins[i] = newwin(NLINES, NCOLS, y, x);
- sprintf(label, "Window Number %d", i + 1);
- win_show(wins[i], label, i + 1);
- y += 3;
- x += 7;
- }
-}
-
-/* Set the PANEL_DATA structures for individual panels */
-void set_user_ptrs(PANEL **panels, int n)
-{ PANEL_DATA *ptrs;
- WINDOW *win;
- int x, y, w, h, i;
- char temp[80];
-
- ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA));
-
- for(i = 0;i &lt; n; ++i)
- { win = panel_window(panels[i]);
- getbegyx(win, y, x);
- getmaxyx(win, h, w);
- ptrs[i].x = x;
- ptrs[i].y = y;
- ptrs[i].w = w;
- ptrs[i].h = h;
- sprintf(temp, "Window Number %d", i + 1);
- strcpy(ptrs[i].label, temp);
- ptrs[i].label_color = i + 1;
- if(i + 1 == n)
- ptrs[i].next = panels[0];
- else
- ptrs[i].next = panels[i + 1];
- set_panel_userptr(panels[i], &amp;ptrs[i]);
- }
-}
-
-/* Show the window with a border and a label */
-void win_show(WINDOW *win, char *label, int label_color)
-{ int startx, starty, height, width;
-
- getbegyx(win, starty, startx);
- getmaxyx(win, height, width);
-
- box(win, 0, 0);
- mvwaddch(win, 2, 0, ACS_LTEE);
- mvwhline(win, 2, 1, ACS_HLINE, width - 2);
- mvwaddch(win, 2, width - 1, ACS_RTEE);
-
- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
-}
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{ int length, x, y;
- float temp;
-
- if(win == NULL)
- win = stdscr;
- getyx(win, y, x);
- if(startx != 0)
- x = startx;
- if(starty != 0)
- y = starty;
- if(width == 0)
- width = 80;
-
- length = strlen(string);
- temp = (width - length)/ 2;
- x = startx + (int)temp;
- wattron(win, color);
- mvwprintw(win, y, x, "%s", string);
- wattroff(win, color);
- refresh();
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>Concentrate on the main while loop. Once it finds out the type
-of key pressed, it takes appropriate action. If 'r' is pressed
-resizing mode is started. After this the new sizes are updated as
-the user presses the arrow keys. When the user presses
-&lt;ENTER&gt; present selection ends and panel is resized by using
-the concept explained. While in resizing mode the program doesn't
-show how the window is getting resized. It's left as an exercise to
-the reader to print a dotted border while it gets resized to a new
-position.</p>
-<p>When the user presses 'm' the move mode starts. This is a bit
-simpler than resizing. As the arrow keys are pressed the new
-position is updated and pressing of &lt;ENTER&gt; causes the panel
-to be moved by calling the function move_panel().</p>
-<p>In this program the user data which is represented as
-PANEL_DATA, plays very important role in finding the associated
-information with a panel. As written in the comments, the
-PANEL_DATA stores the panel sizes, label, label color and a pointer
-to the next panel in the cycle.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PANELSHOWHIDE" id="PANELSHOWHIDE">16.6.
-Hiding and Showing Panels</a></h3>
-<p>A Panel can be hidden by using the function hide_panel(). This
-function merely removes it form the stack of panels, thus hiding it
-on the screen once you do update_panels() and doupdate(). It
-doesn't destroy the PANEL structure associated with the hidden
-panel. It can be shown again by using the show_panel()
-function.</p>
-<p>The following program shows the hiding of panels. Press 'a' or
-'b' or 'c' to show or hide first, second and third windows
-respectively. It uses a user data with a small variable hide, which
-keeps track of whether the window is hidden or not. For some reason
-the function <var class="LITERAL">panel_hidden()</var> which tells
-whether a panel is hidden or not is not working. A bug report was
-also presented by Michael Andres <a href=
-"http://www.geocrawler.com/archives/3/344/1999/9/0/2643549/"
-target="_top">here</a></p>
-<div class="EXAMPLE"><a name="PPAHI" id="PPAHI"></a>
-<p><b>Example 17. Panel Hiding and Showing example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
-
-typedef struct _PANEL_DATA {
- int hide; /* TRUE if panel is hidden */
-}PANEL_DATA;
-
-#define NLINES 10
-#define NCOLS 40
-
-void init_wins(WINDOW **wins, int n);
-void win_show(WINDOW *win, char *label, int label_color);
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
-
-int main()
-{ WINDOW *my_wins[3];
- PANEL *my_panels[3];
- PANEL_DATA panel_datas[3];
- PANEL_DATA *temp;
- int ch;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize all the colors */
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_BLUE, COLOR_BLACK);
- init_pair(4, COLOR_CYAN, COLOR_BLACK);
-
- init_wins(my_wins, 3);
-
- /* Attach a panel to each window */ /* Order is bottom up */
- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
-
- /* Initialize panel datas saying that nothing is hidden */
- panel_datas[0].hide = FALSE;
- panel_datas[1].hide = FALSE;
- panel_datas[2].hide = FALSE;
-
- set_panel_userptr(my_panels[0], &amp;panel_datas[0]);
- set_panel_userptr(my_panels[1], &amp;panel_datas[1]);
- set_panel_userptr(my_panels[2], &amp;panel_datas[2]);
-
- /* Update the stacking order. 2nd panel will be on top */
- update_panels();
-
- /* Show it on the screen */
- attron(COLOR_PAIR(4));
- mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window) 'b'(Second Window) 'c'(Third Window)");
- mvprintw(LINES - 2, 0, "F1 to Exit");
-
- attroff(COLOR_PAIR(4));
- doupdate();
-
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case 'a':
- temp = (PANEL_DATA *)panel_userptr(my_panels[0]);
- if(temp-&gt;hide == FALSE)
- { hide_panel(my_panels[0]);
- temp-&gt;hide = TRUE;
- }
- else
- { show_panel(my_panels[0]);
- temp-&gt;hide = FALSE;
- }
- break;
- case 'b':
- temp = (PANEL_DATA *)panel_userptr(my_panels[1]);
- if(temp-&gt;hide == FALSE)
- { hide_panel(my_panels[1]);
- temp-&gt;hide = TRUE;
- }
- else
- { show_panel(my_panels[1]);
- temp-&gt;hide = FALSE;
- }
- break;
- case 'c':
- temp = (PANEL_DATA *)panel_userptr(my_panels[2]);
- if(temp-&gt;hide == FALSE)
- { hide_panel(my_panels[2]);
- temp-&gt;hide = TRUE;
- }
- else
- { show_panel(my_panels[2]);
- temp-&gt;hide = FALSE;
- }
- break;
- }
- update_panels();
- doupdate();
- }
- endwin();
- return 0;
-}
-
-/* Put all the windows */
-void init_wins(WINDOW **wins, int n)
-{ int x, y, i;
- char label[80];
-
- y = 2;
- x = 10;
- for(i = 0; i &lt; n; ++i)
- { wins[i] = newwin(NLINES, NCOLS, y, x);
- sprintf(label, "Window Number %d", i + 1);
- win_show(wins[i], label, i + 1);
- y += 3;
- x += 7;
- }
-}
-
-/* Show the window with a border and a label */
-void win_show(WINDOW *win, char *label, int label_color)
-{ int startx, starty, height, width;
-
- getbegyx(win, starty, startx);
- getmaxyx(win, height, width);
-
- box(win, 0, 0);
- mvwaddch(win, 2, 0, ACS_LTEE);
- mvwhline(win, 2, 1, ACS_HLINE, width - 2);
- mvwaddch(win, 2, width - 1, ACS_RTEE);
-
- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
-}
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{ int length, x, y;
- float temp;
-
- if(win == NULL)
- win = stdscr;
- getyx(win, y, x);
- if(startx != 0)
- x = startx;
- if(starty != 0)
- y = starty;
- if(width == 0)
- width = 80;
-
- length = strlen(string);
- temp = (width - length)/ 2;
- x = startx + (int)temp;
- wattron(win, color);
- mvwprintw(win, y, x, "%s", string);
- wattroff(win, color);
- refresh();
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PANELABOVE" id="PANELABOVE">16.7.
-panel_above() and panel_below() Functions</a></h3>
-<p>The functions <var class="LITERAL">panel_above()</var> and
-<var class="LITERAL">panel_below()</var> can be used to find out
-the panel above and below a panel. If the argument to these
-functions is NULL, then they return a pointer to bottom panel and
-top panel respectively.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="MENUS" id="MENUS">17. Menus
-Library</a></h2>
-<p>The menus library provides a nice extension to basic curses,
-through which you can create menus. It provides a set of functions
-to create menus. But they have to be customized to give a nicer
-look, with colors etc. Let's get into the details.</p>
-<p>A menu is a screen display that assists the user to choose some
-subset of a given set of items. To put it simple, a menu is a
-collection of items from which one or more items can be chosen.
-Some readers might not be aware of multiple item selection
-capability. Menu library provides functionality to write menus from
-which the user can chose more than one item as the preferred
-choice. This is dealt with in a later section. Now it is time for
-some rudiments.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MENUBASICS" id="MENUBASICS">17.1. The
-Basics</a></h3>
-<p>To create menus, you first create items, and then post the menu
-to the display. After that, all the processing of user responses is
-done in an elegant function menu_driver() which is the work horse
-of any menu program.</p>
-<p>The general flow of control of a menu program looks like
-this.</p>
-<ol type="1">
-<li>
-<p>Initialize curses</p>
-</li>
-<li>
-<p>Create items using new_item(). You can specify a name and
-description for the items.</p>
-</li>
-<li>
-<p>Create the menu with new_menu() by specifying the items to be
-attached with.</p>
-</li>
-<li>
-<p>Post the menu with menu_post() and refresh the screen.</p>
-</li>
-<li>
-<p>Process the user requests with a loop and do necessary updates
-to menu with menu_driver.</p>
-</li>
-<li>
-<p>Unpost the menu with menu_unpost()</p>
-</li>
-<li>
-<p>Free the memory allocated to menu by free_menu()</p>
-</li>
-<li>
-<p>Free the memory allocated to the items with free_item()</p>
-</li>
-<li>
-<p>End curses</p>
-</li>
-</ol>
-<p>Let's see a program which prints a simple menu and updates the
-current selection with up, down arrows.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="COMPILEMENUS" id="COMPILEMENUS">17.2.
-Compiling With the Menu Library</a></h3>
-<p>To use menu library functions, you have to include menu.h and to
-link the program with menu library the flag -lmenu should be added
-along with -lncurses in that order.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> #include &lt;menu.h&gt;
- .
- .
- .
-
- compile and link: gcc &lt;program file&gt; -lmenu -lncurses</font>
-</pre></td>
-</tr>
-</table>
-<div class="EXAMPLE"><a name="MMESI" id="MMESI"></a>
-<p><b>Example 18. Menu Basics</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
-#include &lt;menu.h&gt;
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD 4
-
-char *choices[] = {
- "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Exit",
- };
-
-int main()
-{ ITEM **my_items;
- int c;
- MENU *my_menu;
- int n_choices, i;
- ITEM *cur_item;
-
-
- initscr();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- n_choices = ARRAY_SIZE(choices);
- my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
-
- for(i = 0; i &lt; n_choices; ++i)
- my_items[i] = new_item(choices[i], choices[i]);
- my_items[n_choices] = (ITEM *)NULL;
-
- my_menu = new_menu((ITEM **)my_items);
- mvprintw(LINES - 2, 0, "F1 to Exit");
- post_menu(my_menu);
- refresh();
-
- while((c = getch()) != KEY_F(1))
- { switch(c)
- { case KEY_DOWN:
- menu_driver(my_menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(my_menu, REQ_UP_ITEM);
- break;
- }
- }
-
- free_item(my_items[0]);
- free_item(my_items[1]);
- free_menu(my_menu);
- endwin();
-}
- </span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>This program demonstrates the basic concepts involved in
-creating a menu using menus library. First we create the items
-using new_item() and then attach them to the menu with new_menu()
-function. After posting the menu and refreshing the screen, the
-main processing loop starts. It reads user input and takes
-corresponding action. The function menu_driver() is the main work
-horse of the menu system. The second parameter to this function
-tells what's to be done with the menu. According to the parameter,
-menu_driver() does the corresponding task. The value can be either
-a menu navigational request, an ascii character, or a KEY_MOUSE
-special key associated with a mouse event.</p>
-<p>The menu_driver accepts following navigational requests.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">&#13; REQ_LEFT_ITEM Move left to an item.
- REQ_RIGHT_ITEM Move right to an item.
- REQ_UP_ITEM Move up to an item.
- REQ_DOWN_ITEM Move down to an item.
- REQ_SCR_ULINE Scroll up a line.
- REQ_SCR_DLINE Scroll down a line.
- REQ_SCR_DPAGE Scroll down a page.
- REQ_SCR_UPAGE Scroll up a page.
- REQ_FIRST_ITEM Move to the first item.
- REQ_LAST_ITEM Move to the last item.
- REQ_NEXT_ITEM Move to the next item.
- REQ_PREV_ITEM Move to the previous item.
- REQ_TOGGLE_ITEM Select/deselect an item.
- REQ_CLEAR_PATTERN Clear the menu pattern buffer.
- REQ_BACK_PATTERN Delete the previous character from the pattern buffer.
- REQ_NEXT_MATCH Move to the next item matching the pattern match.
- REQ_PREV_MATCH Move to the previous item matching the pattern match.&#13;</font>
-</pre></td>
-</tr>
-</table>
-<p>Don't get overwhelmed by the number of options. We will see them
-slowly one after another. The options of interest in this example
-are REQ_UP_ITEM and REQ_DOWN_ITEM. These two options when passed to
-menu_driver, menu driver updates the current item to one item up or
-down respectively.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MENUDRIVER" id="MENUDRIVER">17.3. Menu
-Driver: The work horse of the menu system</a></h3>
-<p>As you have seen in the above example, menu_driver plays an
-important role in updating the menu. It is very important to
-understand various options it takes and what they do. As explained
-above, the second parameter to menu_driver() can be either a
-navigational request, a printable character or a KEY_MOUSE key.
-Let's dissect the different navigational requests.</p>
-<ul>
-<li>
-<p><em>REQ_LEFT_ITEM and REQ_RIGHT_ITEM</em></p>
-<p>A Menu can be displayed with multiple columns for more than one
-item. This can be done by using the <var class=
-"LITERAL">menu_format()</var>function. When a multi columnar menu
-is displayed these requests cause the menu driver to move the
-current selection to left or right.</p>
-</li>
-<li>
-<p><em>REQ_UP_ITEM and REQ_DOWN_ITEM</em></p>
-<p>These two options you have seen in the above example. These
-options when given, makes the menu_driver to move the current
-selection to an item up or down.</p>
-</li>
-<li>
-<p><em>REQ_SCR_* options</em></p>
-<p>The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE,
-REQ_SCR_UPAGE are related to scrolling. If all the items in the
-menu cannot be displayed in the menu sub window, then the menu is
-scrollable. These requests can be given to the menu_driver to do
-the scrolling either one line up, down or one page down or up
-respectively.</p>
-</li>
-<li>
-<p><em>REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and
-REQ_PREV_ITEM</em></p>
-<p>These requests are self explanatory.</p>
-</li>
-<li>
-<p><em>REQ_TOGGLE_ITEM</em></p>
-<p>This request when given, toggles the present selection. This
-option is to be used only in a multi valued menu. So to use this
-request the option O_ONEVALUE must be off. This option can be made
-off or on with set_menu_opts().</p>
-</li>
-<li>
-<p><em>Pattern Requests</em></p>
-<p>Every menu has an associated pattern buffer, which is used to
-find the nearest match to the ascii characters entered by the user.
-Whenever ascii characters are given to menu_driver, it puts in to
-the pattern buffer. It also tries to find the nearest match to the
-pattern in the items list and moves current selection to that item.
-The request REQ_CLEAR_PATTERN clears the pattern buffer. The
-request REQ_BACK_PATTERN deletes the previous character in the
-pattern buffer. In case the pattern matches more than one item then
-the matched items can be cycled through REQ_NEXT_MATCH and
-REQ_PREV_MATCH which move the current selection to the next and
-previous matches respectively.</p>
-</li>
-<li>
-<p><em>Mouse Requests</em></p>
-<p>In case of KEY_MOUSE requests, according to the mouse position
-an action is taken accordingly. The action to be taken is explained
-in the man page as,</p>
-<table border="0" bgcolor="#E0E0E0" width="90%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"><em> If the second argument is the KEY_MOUSE special key, the
- associated mouse event is translated into one of the above
- pre-defined requests. Currently only clicks in the user
- window (e.g. inside the menu display area or the decora&shy;
- tion window) are handled. If you click above the display
- region of the menu, a REQ_SCR_ULINE is generated, if you
- doubleclick a REQ_SCR_UPAGE is generated and if you
- tripleclick a REQ_FIRST_ITEM is generated. If you click
- below the display region of the menu, a REQ_SCR_DLINE is
- generated, if you doubleclick a REQ_SCR_DPAGE is generated
- and if you tripleclick a REQ_LAST_ITEM is generated. If
- you click at an item inside the display area of the menu,
- the menu cursor is positioned to that item.</em></font>
-</pre></td>
-</tr>
-</table>
-</li>
-</ul>
-<p>Each of the above requests will be explained in the following
-lines with several examples whenever appropriate.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MENUWINDOWS" id="MENUWINDOWS">17.4. Menu
-Windows</a></h3>
-<p>Every menu created is associated with a window and a sub window.
-The menu window displays any title or border associated with the
-menu. The menu sub window displays the menu items currently
-available for selection. But we didn't specify any window or sub
-window in the simple example. When a window is not specified,
-stdscr is taken as the main window, and then menu system calculates
-the sub window size required for the display of items. Then items
-are displayed in the calculated sub window. So let's play with
-these windows and display a menu with a border and a title.</p>
-<div class="EXAMPLE"><a name="MMEWI" id="MMEWI"></a>
-<p><b>Example 19. Menu Windows Usage example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;menu.h&gt;
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD 4
-
-char *choices[] = {
- "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Exit",
- (char *)NULL,
- };
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
-
-int main()
-{ ITEM **my_items;
- int c;
- MENU *my_menu;
- WINDOW *my_menu_win;
- int n_choices, i;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
- init_pair(1, COLOR_RED, COLOR_BLACK);
-
- /* Create items */
- n_choices = ARRAY_SIZE(choices);
- my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
- for(i = 0; i &lt; n_choices; ++i)
- my_items[i] = new_item(choices[i], choices[i]);
-
- /* Crate menu */
- my_menu = new_menu((ITEM **)my_items);
-
- /* Create the window to be associated with the menu */
- my_menu_win = newwin(10, 40, 4, 4);
- keypad(my_menu_win, TRUE);
-
- /* Set main window and sub window */
- set_menu_win(my_menu, my_menu_win);
- set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
-
- /* Set menu mark to the string " * " */
- set_menu_mark(my_menu, " * ");
-
- /* Print a border around the main window and print a title */
- box(my_menu_win, 0, 0);
- print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
- mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
- mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
- mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
- mvprintw(LINES - 2, 0, "F1 to exit");
- refresh();
-
- /* Post the menu */
- post_menu(my_menu);
- wrefresh(my_menu_win);
-
- while((c = wgetch(my_menu_win)) != KEY_F(1))
- { switch(c)
- { case KEY_DOWN:
- menu_driver(my_menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(my_menu, REQ_UP_ITEM);
- break;
- }
- wrefresh(my_menu_win);
- }
-
- /* Unpost and free all the memory taken up */
- unpost_menu(my_menu);
- free_menu(my_menu);
- for(i = 0; i &lt; n_choices; ++i)
- free_item(my_items[i]);
- endwin();
-}
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{ int length, x, y;
- float temp;
-
- if(win == NULL)
- win = stdscr;
- getyx(win, y, x);
- if(startx != 0)
- x = startx;
- if(starty != 0)
- y = starty;
- if(width == 0)
- width = 80;
-
- length = strlen(string);
- temp = (width - length)/ 2;
- x = startx + (int)temp;
- wattron(win, color);
- mvwprintw(win, y, x, "%s", string);
- wattroff(win, color);
- refresh();
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>This example creates a menu with a title, border, a fancy line
-separating title and the items. As you can see, in order to attach
-a window to a menu the function set_menu_win() has to be used. Then
-we attach the sub window also. This displays the items in the sub
-window. You can also set the mark string which gets displayed to
-the left of the selected item with set_menu_mark().</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="SCROLLMENUS" id="SCROLLMENUS">17.5.
-Scrolling Menus</a></h3>
-<p>If the sub window given for a window is not big enough to show
-all the items, then the menu will be scrollable. When you are on
-the last item in the present list, if you send REQ_DOWN_ITEM, it
-gets translated into REQ_SCR_DLINE and the menu scrolls by one
-item. You can manually give REQ_SCR_ operations to do scrolling.
-Let's see how it can be done.</p>
-<div class="EXAMPLE"><a name="MMESC" id="MMESC"></a>
-<p><b>Example 20. Scrolling Menus example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
-#include &lt;menu.h&gt;
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD 4
-
-char *choices[] = {
- "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Choice 5",
- "Choice 6",
- "Choice 7",
- "Choice 8",
- "Choice 9",
- "Choice 10",
- "Exit",
- (char *)NULL,
- };
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
-
-int main()
-{ ITEM **my_items;
- int c;
- MENU *my_menu;
- WINDOW *my_menu_win;
- int n_choices, i;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_CYAN, COLOR_BLACK);
-
- /* Create items */
- n_choices = ARRAY_SIZE(choices);
- my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
- for(i = 0; i &lt; n_choices; ++i)
- my_items[i] = new_item(choices[i], choices[i]);
-
- /* Crate menu */
- my_menu = new_menu((ITEM **)my_items);
-
- /* Create the window to be associated with the menu */
- my_menu_win = newwin(10, 40, 4, 4);
- keypad(my_menu_win, TRUE);
-
- /* Set main window and sub window */
- set_menu_win(my_menu, my_menu_win);
- set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
- set_menu_format(my_menu, 5, 1);
-
- /* Set menu mark to the string " * " */
- set_menu_mark(my_menu, " * ");
-
- /* Print a border around the main window and print a title */
- box(my_menu_win, 0, 0);
- print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
- mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
- mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
- mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
-
- /* Post the menu */
- post_menu(my_menu);
- wrefresh(my_menu_win);
-
- attron(COLOR_PAIR(2));
- mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items");
- mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)");
- attroff(COLOR_PAIR(2));
- refresh();
-
- while((c = wgetch(my_menu_win)) != KEY_F(1))
- { switch(c)
- { case KEY_DOWN:
- menu_driver(my_menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(my_menu, REQ_UP_ITEM);
- break;
- case KEY_NPAGE:
- menu_driver(my_menu, REQ_SCR_DPAGE);
- break;
- case KEY_PPAGE:
- menu_driver(my_menu, REQ_SCR_UPAGE);
- break;
- }
- wrefresh(my_menu_win);
- }
-
- /* Unpost and free all the memory taken up */
- unpost_menu(my_menu);
- free_menu(my_menu);
- for(i = 0; i &lt; n_choices; ++i)
- free_item(my_items[i]);
- endwin();
-}
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{ int length, x, y;
- float temp;
-
- if(win == NULL)
- win = stdscr;
- getyx(win, y, x);
- if(startx != 0)
- x = startx;
- if(starty != 0)
- y = starty;
- if(width == 0)
- width = 80;
-
- length = strlen(string);
- temp = (width - length)/ 2;
- x = startx + (int)temp;
- wattron(win, color);
- mvwprintw(win, y, x, "%s", string);
- wattroff(win, color);
- refresh();
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>This program is self-explanatory. In this example the number of
-choices has been increased to ten, which is larger than our sub
-window size which can hold 6 items. This message has to be
-explicitly conveyed to the menu system with the function
-set_menu_format(). In here we specify the number of rows and
-columns we want to be displayed for a single page. We can specify
-any number of items to be shown, in the rows variables, if it is
-less than the height of the sub window. If the key pressed by the
-user is a PAGE UP or PAGE DOWN, the menu is scrolled a page due to
-the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to
-menu_driver().</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MULTICOLUMN" id="MULTICOLUMN">17.6.
-Multi Columnar Menus</a></h3>
-<p>In the above example you have seen how to use the function
-set_menu_format(). I didn't mention what the cols variable (third
-parameter) does. Well, If your sub window is wide enough, you can
-opt to display more than one item per row. This can be specified in
-the cols variable. To make things simpler, the following example
-doesn't show descriptions for the items.</p>
-<div class="EXAMPLE"><a name="MMEMUCO" id="MMEMUCO"></a>
-<p><b>Example 21. Milt Columnar Menus Example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
-#include &lt;menu.h&gt;
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD 4
-
-char *choices[] = {
- "Choice 1", "Choice 2", "Choice 3", "Choice 4", "Choice 5",
- "Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10",
- "Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15",
- "Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20",
- "Exit",
- (char *)NULL,
- };
-
-int main()
-{ ITEM **my_items;
- int c;
- MENU *my_menu;
- WINDOW *my_menu_win;
- int n_choices, i;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_CYAN, COLOR_BLACK);
-
- /* Create items */
- n_choices = ARRAY_SIZE(choices);
- my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
- for(i = 0; i &lt; n_choices; ++i)
- my_items[i] = new_item(choices[i], choices[i]);
-
- /* Crate menu */
- my_menu = new_menu((ITEM **)my_items);
-
- /* Set menu option not to show the description */
- menu_opts_off(my_menu, O_SHOWDESC);
-
- /* Create the window to be associated with the menu */
- my_menu_win = newwin(10, 70, 4, 4);
- keypad(my_menu_win, TRUE);
-
- /* Set main window and sub window */
- set_menu_win(my_menu, my_menu_win);
- set_menu_sub(my_menu, derwin(my_menu_win, 6, 68, 3, 1));
- set_menu_format(my_menu, 5, 3);
- set_menu_mark(my_menu, " * ");
-
- /* Print a border around the main window and print a title */
- box(my_menu_win, 0, 0);
-
- attron(COLOR_PAIR(2));
- mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll");
- mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)");
- attroff(COLOR_PAIR(2));
- refresh();
-
- /* Post the menu */
- post_menu(my_menu);
- wrefresh(my_menu_win);
-
- while((c = wgetch(my_menu_win)) != KEY_F(1))
- { switch(c)
- { case KEY_DOWN:
- menu_driver(my_menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(my_menu, REQ_UP_ITEM);
- break;
- case KEY_LEFT:
- menu_driver(my_menu, REQ_LEFT_ITEM);
- break;
- case KEY_RIGHT:
- menu_driver(my_menu, REQ_RIGHT_ITEM);
- break;
- case KEY_NPAGE:
- menu_driver(my_menu, REQ_SCR_DPAGE);
- break;
- case KEY_PPAGE:
- menu_driver(my_menu, REQ_SCR_UPAGE);
- break;
- }
- wrefresh(my_menu_win);
- }
-
- /* Unpost and free all the memory taken up */
- unpost_menu(my_menu);
- free_menu(my_menu);
- for(i = 0; i &lt; n_choices; ++i)
- free_item(my_items[i]);
- endwin();
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>Watch the function call to set_menu_format(). It specifies the
-number of columns to be 3, thus displaying 3 items per row. We have
-also switched off the showing descriptions with the function
-menu_opts_off(). There are couple of functions set_menu_opts(),
-menu_opts_on() and menu_opts() which can be used to manipulate menu
-options. The following menu options can be specified.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> O_ONEVALUE
- Only one item can be selected for this menu.
-
- O_SHOWDESC
- Display the item descriptions when the menu is
- posted.
-
- O_ROWMAJOR
- Display the menu in row-major order.
-
- O_IGNORECASE
- Ignore the case when pattern-matching.
-
- O_SHOWMATCH
- Move the cursor to within the item name while pat&shy;
- tern-matching.
-
- O_NONCYCLIC
- Don't wrap around next-item and previous-item,
- requests to the other end of the menu.</font>
-</pre></td>
-</tr>
-</table>
-<p>All options are on by default. You can switch specific
-attributes on or off with menu_opts_on() and menu_opts_off()
-functions. You can also use set_menu_opts() to directly specify the
-options. The argument to this function should be a OR ed value of
-some of those above constants. The function menu_opts() can be used
-to find out a menu's present options.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MULTIVALUEMENUS" id=
-"MULTIVALUEMENUS">17.7. Multi Valued Menus</a></h3>
-<p>You might be wondering what if you switch off the option
-O_ONEVALUE. Then the menu becomes multi-valued. That means you can
-select more than one item. This brings us to the request
-REQ_TOGGLE_ITEM. Let's see it in action.</p>
-<div class="EXAMPLE"><a name="MMETO" id="MMETO"></a>
-<p><b>Example 22. Multi Valued Menus example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
-#include &lt;menu.h&gt;
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD 4
-
-char *choices[] = {
- "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Choice 5",
- "Choice 6",
- "Choice 7",
- "Exit",
- };
-
-int main()
-{ ITEM **my_items;
- int c;
- MENU *my_menu;
- int n_choices, i;
- ITEM *cur_item;
-
- /* Initialize curses */
- initscr();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize items */
- n_choices = ARRAY_SIZE(choices);
- my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
- for(i = 0; i &lt; n_choices; ++i)
- my_items[i] = new_item(choices[i], choices[i]);
- my_items[n_choices] = (ITEM *)NULL;
-
- my_menu = new_menu((ITEM **)my_items);
-
- /* Make the menu multi valued */
- menu_opts_off(my_menu, O_ONEVALUE);
-
- mvprintw(LINES - 3, 0, "Use &lt;SPACE&gt; to select or unselect an item.");
- mvprintw(LINES - 2, 0, "&lt;ENTER&gt; to see presently selected items(F1 to Exit)");
- post_menu(my_menu);
- refresh();
-
- while((c = getch()) != KEY_F(1))
- { switch(c)
- { case KEY_DOWN:
- menu_driver(my_menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(my_menu, REQ_UP_ITEM);
- break;
- case ' ':
- menu_driver(my_menu, REQ_TOGGLE_ITEM);
- break;
- case 10: /* Enter */
- { char temp[200];
- ITEM **items;
-
- items = menu_items(my_menu);
- temp[0] = '\0';
- for(i = 0; i &lt; item_count(my_menu); ++i)
- if(item_value(items[i]) == TRUE)
- { strcat(temp, item_name(items[i]));
- strcat(temp, " ");
- }
- move(20, 0);
- clrtoeol();
- mvprintw(20, 0, temp);
- refresh();
- }
- break;
- }
- }
-
- free_item(my_items[0]);
- free_item(my_items[1]);
- free_menu(my_menu);
- endwin();
-}
- </span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>Whew, A lot of new functions. Let's take them one after another.
-Firstly, the REQ_TOGGLE_ITEM. In a multi-valued menu, the user
-should be allowed to select or un select more than one item. The
-request REQ_TOGGLE_ITEM toggles the present selection. In this case
-when space is pressed REQ_TOGGLE_ITEM request is sent to
-menu_driver to achieve the result.</p>
-<p>Now when the user presses &lt;ENTER&gt; we show the items he
-presently selected. First we find out the items associated with the
-menu using the function menu_items(). Then we loop through the
-items to find out if the item is selected or not. The function
-item_value() returns TRUE if an item is selected. The function
-item_count() returns the number of items in the menu. The item name
-can be found with item_name(). You can also find the description
-associated with an item using item_description().</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MENUOPT" id="MENUOPT">17.8. Menu
-Options</a></h3>
-<p>Well, by this time you must be itching for some difference in
-your menu, with lots of functionality. I know. You want Colors !!!.
-You want to create nice menus similar to those text mode <a href=
-"http://www.jersey.net/~debinjoe/games/" target="_top">dos
-games</a>. The functions set_menu_fore() and set_menu_back() can be
-used to change the attribute of the selected item and unselected
-item. The names are misleading. They don't change menu's foreground
-or background which would have been useless.</p>
-<p>The function set_menu_grey() can be used to set the display
-attribute for the non-selectable items in the menu. This brings us
-to the interesting option for an item the one and only
-O_SELECTABLE. We can turn it off by the function item_opts_off()
-and after that that item is not selectable. It's like a grayed item
-in those fancy windows menus. Let's put these concepts in practice
-with this example</p>
-<div class="EXAMPLE"><a name="MMEAT" id="MMEAT"></a>
-<p><b>Example 23. Menu Options example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;menu.h&gt;
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD 4
-
-char *choices[] = {
- "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Choice 5",
- "Choice 6",
- "Choice 7",
- "Exit",
- };
-
-int main()
-{ ITEM **my_items;
- int c;
- MENU *my_menu;
- int n_choices, i;
- ITEM *cur_item;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
-
- /* Initialize items */
- n_choices = ARRAY_SIZE(choices);
- my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
- for(i = 0; i &lt; n_choices; ++i)
- my_items[i] = new_item(choices[i], choices[i]);
- my_items[n_choices] = (ITEM *)NULL;
- item_opts_off(my_items[3], O_SELECTABLE);
- item_opts_off(my_items[6], O_SELECTABLE);
-
- /* Create menu */
- my_menu = new_menu((ITEM **)my_items);
-
- /* Set fore ground and back ground of the menu */
- set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE);
- set_menu_back(my_menu, COLOR_PAIR(2));
- set_menu_grey(my_menu, COLOR_PAIR(3));
-
- /* Post the menu */
- mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected");
- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
- post_menu(my_menu);
- refresh();
-
- while((c = getch()) != KEY_F(1))
- { switch(c)
- { case KEY_DOWN:
- menu_driver(my_menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(my_menu, REQ_UP_ITEM);
- break;
- case 10: /* Enter */
- move(20, 0);
- clrtoeol();
- mvprintw(20, 0, "Item selected is : %s",
- item_name(current_item(my_menu)));
- pos_menu_cursor(my_menu);
- break;
- }
- }
- unpost_menu(my_menu);
- for(i = 0; i &lt; n_choices; ++i)
- free_item(my_items[i]);
- free_menu(my_menu);
- endwin();
-}
- </span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MENUUSERPTR" id="MENUUSERPTR">17.9. The
-useful User Pointer</a></h3>
-<p>We can associate a user pointer with each item in the menu. It
-works the same way as user pointer in panels. It's not touched by
-menu system. You can store any thing you like in that. I usually
-use it to store the function to be executed when the menu option is
-chosen (It's selected and may be the user pressed
-&lt;ENTER&gt;);</p>
-<div class="EXAMPLE"><a name="MMEUS" id="MMEUS"></a>
-<p><b>Example 24. Menu User Pointer Usage</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
-#include &lt;menu.h&gt;
-
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
-#define CTRLD 4
-
-char *choices[] = {
- "Choice 1",
- "Choice 2",
- "Choice 3",
- "Choice 4",
- "Choice 5",
- "Choice 6",
- "Choice 7",
- "Exit",
- };
-void func(char *name);
-
-int main()
-{ ITEM **my_items;
- int c;
- MENU *my_menu;
- int n_choices, i;
- ITEM *cur_item;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
-
- /* Initialize items */
- n_choices = ARRAY_SIZE(choices);
- my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
- for(i = 0; i &lt; n_choices; ++i)
- { my_items[i] = new_item(choices[i], choices[i]);
- /* Set the user pointer */
- set_item_userptr(my_items[i], func);
- }
- my_items[n_choices] = (ITEM *)NULL;
-
- /* Create menu */
- my_menu = new_menu((ITEM **)my_items);
-
- /* Post the menu */
- mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected");
- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
- post_menu(my_menu);
- refresh();
-
- while((c = getch()) != KEY_F(1))
- { switch(c)
- { case KEY_DOWN:
- menu_driver(my_menu, REQ_DOWN_ITEM);
- break;
- case KEY_UP:
- menu_driver(my_menu, REQ_UP_ITEM);
- break;
- case 10: /* Enter */
- { ITEM *cur;
- void (*p)(char *);
-
- cur = current_item(my_menu);
- p = item_userptr(cur);
- p((char *)item_name(cur));
- pos_menu_cursor(my_menu);
- break;
- }
- break;
- }
- }
- unpost_menu(my_menu);
- for(i = 0; i &lt; n_choices; ++i)
- free_item(my_items[i]);
- free_menu(my_menu);
- endwin();
-}
-
-void func(char *name)
-{ move(20, 0);
- clrtoeol();
- mvprintw(20, 0, "Item selected is : %s", name);
-} </span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="FORMS" id="FORMS">18. Forms
-Library</a></h2>
-<p>Well. If you have seen those forms on web pages which take input
-from users and do various kinds of things, you might be wondering
-how would any one create such forms in text mode display. It's
-quite difficult to write those nifty forms in plain ncurses. Forms
-library tries to provide a basic frame work to build and maintain
-forms with ease. It has lot of features(functions) which manage
-validation, dynamic expansion of fields etc.. Let's see it in full
-flow.</p>
-<p>A form is a collection of fields; each field can be either a
-label(static text) or a data-entry location. The forms also library
-provides functions to divide forms into multiple pages.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="FORMBASICS" id="FORMBASICS">18.1. The
-Basics</a></h3>
-<p>Forms are created in much the same way as menus. First the
-fields related to the form are created with new_field(). You can
-set options for the fields, so that they can be displayed with some
-fancy attributes, validated before the field looses focus etc..
-Then the fields are attached to form. After this, the form can be
-posted to display and is ready to receive inputs. On the similar
-lines to menu_driver(), the form is manipulated with form_driver().
-We can send requests to form_driver to move focus to a certain
-field, move cursor to end of the field etc.. After the user enters
-values in the fields and validation done, form can be unposted and
-memory allocated can be freed.</p>
-<p>The general flow of control of a forms program looks like
-this.</p>
-<ol type="1">
-<li>
-<p>Initialize curses</p>
-</li>
-<li>
-<p>Create fields using new_field(). You can specify the height and
-width of the field, and its position on the form.</p>
-</li>
-<li>
-<p>Create the forms with new_form() by specifying the fields to be
-attached with.</p>
-</li>
-<li>
-<p>Post the form with form_post() and refresh the screen.</p>
-</li>
-<li>
-<p>Process the user requests with a loop and do necessary updates
-to form with form_driver.</p>
-</li>
-<li>
-<p>Unpost the menu with form_unpost()</p>
-</li>
-<li>
-<p>Free the memory allocated to menu by free_form()</p>
-</li>
-<li>
-<p>Free the memory allocated to the items with free_field()</p>
-</li>
-<li>
-<p>End curses</p>
-</li>
-</ol>
-<p>As you can see, working with forms library is much similar to
-handling menu library. The following examples will explore various
-aspects of form processing. Let's start the journey with a simple
-example. first.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="COMPILEFORMS" id="COMPILEFORMS">18.2.
-Compiling With the Forms Library</a></h3>
-<p>To use forms library functions, you have to include form.h and
-to link the program with forms library the flag -lform should be
-added along with -lncurses in that order.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"> #include &lt;form.h&gt;
- .
- .
- .
-
- compile and link: gcc &lt;program file&gt; -lform -lncurses</font>
-</pre></td>
-</tr>
-</table>
-<div class="EXAMPLE"><a name="FFOSI" id="FFOSI"></a>
-<p><b>Example 25. Forms Basics</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
-
-int main()
-{ FIELD *field[3];
- FORM *my_form;
- int ch;
-
- /* Initialize curses */
- initscr();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize the fields */
- field[0] = new_field(1, 10, 4, 18, 0, 0);
- field[1] = new_field(1, 10, 6, 18, 0, 0);
- field[2] = NULL;
-
- /* Set field options */
- set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */
- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
- /* Field is filled up */
- set_field_back(field[1], A_UNDERLINE);
- field_opts_off(field[1], O_AUTOSKIP);
-
- /* Create the form and post it */
- my_form = new_form(field);
- post_form(my_form);
- refresh();
-
- mvprintw(4, 10, "Value 1:");
- mvprintw(6, 10, "Value 2:");
- refresh();
-
- /* Loop through to get user requests */
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case KEY_DOWN:
- /* Go to next field */
- form_driver(my_form, REQ_NEXT_FIELD);
- /* Go to the end of the present buffer */
- /* Leaves nicely at the last character */
- form_driver(my_form, REQ_END_LINE);
- break;
- case KEY_UP:
- /* Go to previous field */
- form_driver(my_form, REQ_PREV_FIELD);
- form_driver(my_form, REQ_END_LINE);
- break;
- default:
- /* If this is a normal character, it gets */
- /* Printed */
- form_driver(my_form, ch);
- break;
- }
- }
-
- /* Un post form and free the memory */
- unpost_form(my_form);
- free_form(my_form);
- free_field(field[0]);
- free_field(field[1]);
-
- endwin();
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>Above example is pretty straight forward. It creates two fields
-with <var class="LITERAL">new_field()</var>. new_field() takes
-height, width, starty, startx, number of offscreen rows and number
-of additional working buffers. The fifth argument number of
-offscreen rows specifies how much of the field to be shown. If it
-is zero, the entire field is always displayed otherwise the form
-will be scrollable when the user accesses not displayed parts of
-the field. The forms library allocates one buffer per field to
-store the data user enters. Using the last parameter to new_field()
-we can specify it to allocate some additional buffers. These can be
-used for any purpose you like.</p>
-<p>After creating the fields, back ground attribute of both of them
-is set to an underscore with set_field_back(). The AUTOSKIP option
-is turned off using field_opts_off(). If this option is turned on,
-focus will move to the next field in the form once the active field
-is filled up completely.</p>
-<p>After attaching the fields to the form, it is posted. Here on,
-user inputs are processed in the while loop, by making
-corresponding requests to form_driver. The details of all the
-requests to the form_driver() are explained later.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PLAYFIELDS" id="PLAYFIELDS">18.3.
-Playing with Fields</a></h3>
-<p>Each form field is associated with a lot of attributes. They can
-be manipulated to get the required effect and to have fun !!!. So
-why wait?</p>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="FETCHINFO" id="FETCHINFO">18.3.1.
-Fetching Size and Location of Field</a></h4>
-<p>The parameters we have given at the time of creation of a field
-can be retrieved with field_info(). It returns height, width,
-starty, startx, number of offscreen rows, and number of additional
-buffers into the parameters given to it. It is a sort of inverse of
-new_field().</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int field_info( FIELD *field, /* field from which to fetch */
- int *height, *int width, /* field size */
- int *top, int *left, /* upper left corner */
- int *offscreen, /* number of offscreen rows */
- int *nbuf); /* number of working buffers */</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="MOVEFIELD" id="MOVEFIELD">18.3.2. Moving
-the field</a></h4>
-<p>The location of the field can be moved to a different position
-with move_field().</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int move_field( FIELD *field, /* field to alter */
- int top, int left); /* new upper-left corner */</font>
-</pre></td>
-</tr>
-</table>
-<p>As usual, the changed position can be queried with
-field_infor().</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="JUSTIFYFIELD" id="JUSTIFYFIELD">18.3.3.
-Field Justification</a></h4>
-<p>The justification to be done for the field can be fixed using
-the function set_field_just().</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"> int set_field_just(FIELD *field, /* field to alter */
- int justmode); /* mode to set */
- int field_just(FIELD *field); /* fetch justify mode of field */</font>
-</pre></td>
-</tr>
-</table>
-<p>The justification mode valued accepted and returned by these
-functions are NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
-JUSTIFY_CENTER.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="FIELDDISPATTRIB" id=
-"FIELDDISPATTRIB">18.3.4. Field Display Attributes</a></h4>
-<p>As you have seen, in the above example, display attribute for
-the fields can be set with set_field_fore() and setfield_back().
-These functions set foreground and background attribute of the
-fields. You can also specify a pad character which will be filled
-in the unfilled portion of the field. The pad character is set with
-a call to set_field_pad(). Default pad value is a space. The
-functions field_fore(), field_back, field_pad() can be used to
-query the present foreground, background attributes and pad
-character for the field. The following list gives the usage of
-functions.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">&#13;int set_field_fore(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_fore(FIELD *field); /* field to query */
- /* returns foreground attribute */
-
-int set_field_back(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_back(FIELD *field); /* field to query */
- /* returns background attribute */
-
-int set_field_pad(FIELD *field, /* field to alter */
- int pad); /* pad character to set */
-
-chtype field_pad(FIELD *field); /* field to query */
- /* returns present pad character */&#13;</font>
-</pre></td>
-</tr>
-</table>
-<p>Though above functions seem quite simple, using colors with
-set_field_fore() may be frustrating in the beginning. Let me first
-explain about foreground and background attributes of a field. The
-foreground attribute is associated with the character. That means a
-character in the field is printed with the attribute you have set
-with set_field_fore(). Background attribute is the attribute used
-to fill background of field, whether any character is there or not.
-So what about colors? Since colors are always defined in pairs,
-what is the right way to display colored fields? Here's an example
-clarifying color attributes.</p>
-<div class="EXAMPLE"><a name="FFOAT" id="FFOAT"></a>
-<p><b>Example 26. Form Attributes example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
-
-int main()
-{ FIELD *field[3];
- FORM *my_form;
- int ch;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize few color pairs */
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- init_pair(2, COLOR_WHITE, COLOR_BLUE);
-
- /* Initialize the fields */
- field[0] = new_field(1, 10, 4, 18, 0, 0);
- field[1] = new_field(1, 10, 6, 18, 0, 0);
- field[2] = NULL;
-
- /* Set field options */
- set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */
- set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */
- /* are printed in white */
- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
- /* Field is filled up */
- set_field_back(field[1], A_UNDERLINE);
- field_opts_off(field[1], O_AUTOSKIP);
-
- /* Create the form and post it */
- my_form = new_form(field);
- post_form(my_form);
- refresh();
-
- set_current_field(my_form, field[0]); /* Set focus to the colored field */
- mvprintw(4, 10, "Value 1:");
- mvprintw(6, 10, "Value 2:");
- mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
- refresh();
-
- /* Loop through to get user requests */
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case KEY_DOWN:
- /* Go to next field */
- form_driver(my_form, REQ_NEXT_FIELD);
- /* Go to the end of the present buffer */
- /* Leaves nicely at the last character */
- form_driver(my_form, REQ_END_LINE);
- break;
- case KEY_UP:
- /* Go to previous field */
- form_driver(my_form, REQ_PREV_FIELD);
- form_driver(my_form, REQ_END_LINE);
- break;
- default:
- /* If this is a normal character, it gets */
- /* Printed */
- form_driver(my_form, ch);
- break;
- }
- }
-
- /* Un post form and free the memory */
- unpost_form(my_form);
- free_form(my_form);
- free_field(field[0]);
- free_field(field[1]);
-
- endwin();
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>Play with the color pairs and try to understand the foreground
-and background attributes. In my programs using color attributes, I
-usually set only the background with set_field_back(). Curses
-simply doesn't allow defining individual color attributes.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="FIELDOPTIONBITS" id=
-"FIELDOPTIONBITS">18.3.5. Field Option Bits</a></h4>
-<p>There is also a large collection of field option bits you can
-set to control various aspects of forms processing. You can
-manipulate them with these functions:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_opts(FIELD *field, /* field to alter */
- int attr); /* attribute to set */
-
-int field_opts_on(FIELD *field, /* field to alter */
- int attr); /* attributes to turn on */
-
-int field_opts_off(FIELD *field, /* field to alter */
- int attr); /* attributes to turn off */
-
-int field_opts(FIELD *field); /* field to query */ </font>
-</pre></td>
-</tr>
-</table>
-<p>The function set_field_opts() can be used to directly set
-attributes of a field or you can choose to switch a few attributes
-on and off with field_opts_on() and field_opts_off() selectively.
-Anytime you can query the attributes of a field with field_opts().
-The following is the list of available options. By default, all
-options are on.</p>
-<div class="VARIABLELIST">
-<dl>
-<dt>O_VISIBLE</dt>
-<dd>
-<p>Controls whether the field is visible on the screen. Can be used
-during form processing to hide or pop up fields depending on the
-value of parent fields.</p>
-</dd>
-<dt>O_ACTIVE</dt>
-<dd>
-<p>Controls whether the field is active during forms processing
-(i.e. visited by form navigation keys). Can be used to make labels
-or derived fields with buffer values alterable by the forms
-application, not the user.</p>
-</dd>
-<dt>O_PUBLIC</dt>
-<dd>
-<p>Controls whether data is displayed during field entry. If this
-option is turned off on a field, the library will accept and edit
-data in that field, but it will not be displayed and the visible
-field cursor will not move. You can turn off the O_PUBLIC bit to
-define password fields.</p>
-</dd>
-<dt>O_EDIT</dt>
-<dd>
-<p>Controls whether the field's data can be modified. When this
-option is off, all editing requests except <var class=
-"LITERAL">REQ_PREV_CHOICE</var> and <var class=
-"LITERAL">REQ_NEXT_CHOICE</var>will fail. Such read-only fields may
-be useful for help messages.</p>
-</dd>
-<dt>O_WRAP</dt>
-<dd>
-<p>Controls word-wrapping in multi-line fields. Normally, when any
-character of a (blank-separated) word reaches the end of the
-current line, the entire word is wrapped to the next line (assuming
-there is one). When this option is off, the word will be split
-across the line break.</p>
-</dd>
-<dt>O_BLANK</dt>
-<dd>
-<p>Controls field blanking. When this option is on, entering a
-character at the first field position erases the entire field
-(except for the just-entered character).</p>
-</dd>
-<dt>O_AUTOSKIP</dt>
-<dd>
-<p>Controls automatic skip to next field when this one fills.
-Normally, when the forms user tries to type more data into a field
-than will fit, the editing location jumps to next field. When this
-option is off, the user's cursor will hang at the end of the field.
-This option is ignored in dynamic fields that have not reached
-their size limit.</p>
-</dd>
-<dt>O_NULLOK</dt>
-<dd>
-<p>Controls whether validation is applied to blank fields.
-Normally, it is not; the user can leave a field blank without
-invoking the usual validation check on exit. If this option is off
-on a field, exit from it will invoke a validation check.</p>
-</dd>
-<dt>O_PASSOK</dt>
-<dd>
-<p>Controls whether validation occurs on every exit, or only after
-the field is modified. Normally the latter is true. Setting
-O_PASSOK may be useful if your field's validation function may
-change during forms processing.</p>
-</dd>
-<dt>O_STATIC</dt>
-<dd>
-<p>Controls whether the field is fixed to its initial dimensions.
-If you turn this off, the field becomes dynamic and will stretch to
-fit entered data.</p>
-</dd>
-</dl>
-</div>
-<p>A field's options cannot be changed while the field is currently
-selected. However, options may be changed on posted fields that are
-not current.</p>
-<p>The option values are bit-masks and can be composed with
-logical-or in the obvious way. You have seen the usage of switching
-off O_AUTOSKIP option. The following example clarifies usage of
-some more options. Other options are explained where
-appropriate.</p>
-<div class="EXAMPLE"><a name="FFOOP" id="FFOOP"></a>
-<p><b>Example 27. Field Options Usage example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
-
-#define STARTX 15
-#define STARTY 4
-#define WIDTH 25
-
-#define N_FIELDS 3
-
-int main()
-{ FIELD *field[N_FIELDS];
- FORM *my_form;
- int ch, i;
-
- /* Initialize curses */
- initscr();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize the fields */
- for(i = 0; i &lt; N_FIELDS - 1; ++i)
- field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0);
- field[N_FIELDS - 1] = NULL;
-
- /* Set field options */
- set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */
-
- field_opts_off(field[0], O_ACTIVE); /* This field is a static label */
- field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/
- field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */
- /* after last character is entered */
-
- /* Create the form and post it */
- my_form = new_form(field);
- post_form(my_form);
- refresh();
-
- set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */
- set_field_buffer(field[0], 0, "This is a static Field");
- /* Initialize the field */
- mvprintw(STARTY, STARTX - 10, "Field 1:");
- mvprintw(STARTY + 2, STARTX - 10, "Field 2:");
- refresh();
-
- /* Loop through to get user requests */
- while((ch = getch()) != KEY_F(1))
- { switch(ch)
- { case KEY_DOWN:
- /* Go to next field */
- form_driver(my_form, REQ_NEXT_FIELD);
- /* Go to the end of the present buffer */
- /* Leaves nicely at the last character */
- form_driver(my_form, REQ_END_LINE);
- break;
- case KEY_UP:
- /* Go to previous field */
- form_driver(my_form, REQ_PREV_FIELD);
- form_driver(my_form, REQ_END_LINE);
- break;
- default:
- /* If this is a normal character, it gets */
- /* Printed */
- form_driver(my_form, ch);
- break;
- }
- }
-
- /* Un post form and free the memory */
- unpost_form(my_form);
- free_form(my_form);
- free_field(field[0]);
- free_field(field[1]);
-
- endwin();
- return 0;
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-<p>This example, though useless, shows the usage of options. If
-used properly, they can present information very effectively in a
-form. The second field being not O_PUBLIC, does not show the
-characters you are typing.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="FIELDSTATUS" id="FIELDSTATUS">18.3.6.
-Field Status</a></h4>
-<p>The field status specifies whether the field has got edited or
-not. It is initially set to FALSE and when user enters something
-and the data buffer gets modified it becomes TRUE. So a field's
-status can be queried to find out whether it has been modified or
-not. The following functions can assist in those operations.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_status(FIELD *field, /* field to alter */
- int status); /* status to set */
-
-int field_status(FIELD *field); /* fetch status of field */</font>
-</pre></td>
-</tr>
-</table>
-<p>It's better to check the field's status only after after leaving
-the field, as data buffer might not have been updated yet as the
-validation is still due. To guarantee that right status is
-returned, call field_status() either (1) in the field's exit
-validation check routine, (2) from the field's or form's
-initialization or termination hooks, or (3) just after a
-REQ_VALIDATION request has been processed by the forms driver</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="FIELDUSERPTR" id="FIELDUSERPTR">18.3.7.
-Field User Pointer</a></h4>
-<p>Every field structure contains one pointer that can be used by
-the user for various purposes. It is not touched by forms library
-and can be used for any purpose by the user. The following
-functions set and fetch user pointer.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000">int set_field_userptr(FIELD *field,
- char *userptr); /* the user pointer you wish to associate */
- /* with the field */
-
-char *field_userptr(FIELD *field); /* fetch user pointer of the field */</font>
-</pre></td>
-</tr>
-</table>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="VARIABLESIZEFIELDS" id=
-"VARIABLESIZEFIELDS">18.3.8. Variable-Sized Fields</a></h4>
-<p>If you want a dynamically changing field with variable width,
-this is the feature you want to put to full use. This will allow
-the user to enter more data than the original size of the field and
-let the field grow. According to the field orientation it will
-scroll horizontally or vertically to incorporate the new data.</p>
-<p>To make a field dynamically growable, the option O_STATIC should
-be turned off. This can be done with a</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"> field_opts_off(field_pointer, O_STATIC);</font>
-</pre></td>
-</tr>
-</table>
-<p>But it's usually not advisable to allow a field to grow
-infinitely. You can set a maximum limit to the growth of the field
-with</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_max_field(FIELD *field, /* Field on which to operate */
- int max_growth); /* maximum growth allowed for the field */</font>
-</pre></td>
-</tr>
-</table>
-<p>The field info for a dynamically growable field can be retrieved
-by</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int dynamic_field_info( FIELD *field, /* Field on which to operate */
- int *prows, /* number of rows will be filled in this */
- int *pcols, /* number of columns will be filled in this*/
- int *pmax) /* maximum allowable growth will be filled */
- /* in this */</font>
-</pre></td>
-</tr>
-</table>
-Though field_info work as usual, it is advisable to use this
-function to get the proper attributes of a dynamically growable
-field.
-<p>Recall the library routine new_field; a new field created with
-height set to one will be defined to be a one line field. A new
-field created with height greater than one will be defined to be a
-multi line field.</p>
-<p>A one line field with O_STATIC turned off (dynamically growable
-field) will contain a single fixed row, but the number of columns
-can increase if the user enters more data than the initial field
-will hold. The number of columns displayed will remain fixed and
-the additional data will scroll horizontally.</p>
-<p>A multi line field with O_STATIC turned off (dynamically
-growable field) will contain a fixed number of columns, but the
-number of rows can increase if the user enters more data than the
-initial field will hold. The number of rows displayed will remain
-fixed and the additional data will scroll vertically.</p>
-<p>The above two paragraphs pretty much describe a dynamically
-growable field's behavior. The way other parts of forms library
-behaves is described below:</p>
-<ol type="1">
-<li>
-<p>The field option O_AUTOSKIP will be ignored if the option
-O_STATIC is off and there is no maximum growth specified for the
-field. Currently, O_AUTOSKIP generates an automatic REQ_NEXT_FIELD
-form driver request when the user types in the last character
-position of a field. On a growable field with no maximum growth
-specified, there is no last character position. If a maximum growth
-is specified, the O_AUTOSKIP option will work as normal if the
-field has grown to its maximum size.</p>
-</li>
-<li>
-<p>The field justification will be ignored if the option O_STATIC
-is off. Currently, set_field_just can be used to JUSTIFY_LEFT,
-JUSTIFY_RIGHT, JUSTIFY_CENTER the contents of a one line field. A
-growable one line field will, by definition, grow and scroll
-horizontally and may contain more data than can be justified. The
-return from field_just will be unchanged.</p>
-</li>
-<li>
-<p>The overloaded form driver request REQ_NEW_LINE will operate the
-same way regardless of the O_NL_OVERLOAD form option if the field
-option O_STATIC is off and there is no maximum growth specified for
-the field. Currently, if the form option O_NL_OVERLOAD is on,
-REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD if called from
-the last line of a field. If a field can grow without bound, there
-is no last line, so REQ_NEW_LINE will never implicitly generate a
-REQ_NEXT_FIELD. If a maximum growth limit is specified and the
-O_NL_OVERLOAD form option is on, REQ_NEW_LINE will only implicitly
-generate REQ_NEXT_FIELD if the field has grown to its maximum size
-and the user is on the last line.</p>
-</li>
-<li>
-<p>The library call dup_field will work as usual; it will duplicate
-the field, including the current buffer size and contents of the
-field being duplicated. Any specified maximum growth will also be
-duplicated.</p>
-</li>
-<li>
-<p>The library call link_field will work as usual; it will
-duplicate all field attributes and share buffers with the field
-being linked. If the O_STATIC field option is subsequently changed
-by a field sharing buffers, how the system reacts to an attempt to
-enter more data into the field than the buffer will currently hold
-will depend on the setting of the option in the current field.</p>
-</li>
-<li>
-<p>The library call field_info will work as usual; the variable
-nrow will contain the value of the original call to new_field. The
-user should use dynamic_field_info, described above, to query the
-current size of the buffer.</p>
-</li>
-</ol>
-<p>Some of the above points make sense only after explaining form
-driver. We will be looking into that in next few sections.</p>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="FORMWINDOWS" id="FORMWINDOWS">18.4. Form
-Windows</a></h3>
-<p>The form windows concept is pretty much similar to menu windows.
-Every form is associated with a main window and a sub window. The
-form main window displays any title or border associated or
-whatever the user wishes. Then the sub window contains all the
-fields and displays them according to their position. This gives
-the flexibility of manipulating fancy form displaying very
-easily.</p>
-<p>Since this is pretty much similar to menu windows, I am
-providing an example with out much explanation. The functions are
-similar and they work the same way.</p>
-<div class="EXAMPLE"><a name="FFOWI" id="FFOWI"></a>
-<p><b>Example 28. Form Windows Example</b></p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000"><span class=
-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
-
-int main()
-{
- FIELD *field[3];
- FORM *my_form;
- WINDOW *my_form_win;
- int ch, rows, cols;
-
- /* Initialize curses */
- initscr();
- start_color();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- /* Initialize few color pairs */
- init_pair(1, COLOR_RED, COLOR_BLACK);
-
- /* Initialize the fields */
- field[0] = new_field(1, 10, 6, 1, 0, 0);
- field[1] = new_field(1, 10, 8, 1, 0, 0);
- field[2] = NULL;
-
- /* Set field options */
- set_field_back(field[0], A_UNDERLINE);
- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
- /* Field is filled up */
- set_field_back(field[1], A_UNDERLINE);
- field_opts_off(field[1], O_AUTOSKIP);
-
- /* Create the form and post it */
- my_form = new_form(field);
-
- /* Calculate the area required for the form */
- scale_form(my_form, &amp;rows, &amp;cols);
-
- /* Create the window to be associated with the form */
- my_form_win = newwin(rows + 4, cols + 4, 4, 4);
- keypad(my_form_win, TRUE);
-
- /* Set main window and sub window */
- set_form_win(my_form, my_form_win);
- set_form_sub(my_form, derwin(my_form_win, rows, cols, 2, 2));
-
- /* Print a border around the main window and print a title */
- box(my_form_win, 0, 0);
- print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1));
-
- post_form(my_form);
- wrefresh(my_form_win);
-
- mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
- refresh();
-
- /* Loop through to get user requests */
- while((ch = wgetch(my_form_win)) != KEY_F(1))
- { switch(ch)
- { case KEY_DOWN:
- /* Go to next field */
- form_driver(my_form, REQ_NEXT_FIELD);
- /* Go to the end of the present buffer */
- /* Leaves nicely at the last character */
- form_driver(my_form, REQ_END_LINE);
- break;
- case KEY_UP:
- /* Go to previous field */
- form_driver(my_form, REQ_PREV_FIELD);
- form_driver(my_form, REQ_END_LINE);
- break;
- default:
- /* If this is a normal character, it gets */
- /* Printed */
- form_driver(my_form, ch);
- break;
- }
- }
-
- /* Un post form and free the memory */
- unpost_form(my_form);
- free_form(my_form);
- free_field(field[0]);
- free_field(field[1]);
-
- endwin();
- return 0;
-}
-
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
-{ int length, x, y;
- float temp;
-
- if(win == NULL)
- win = stdscr;
- getyx(win, y, x);
- if(startx != 0)
- x = startx;
- if(starty != 0)
- y = starty;
- if(width == 0)
- width = 80;
-
- length = strlen(string);
- temp = (width - length)/ 2;
- x = startx + (int)temp;
- wattron(win, color);
- mvwprintw(win, y, x, "%s", string);
- wattroff(win, color);
- refresh();
-}</span></font>
-</pre></td>
-</tr>
-</table>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="FILEDVALIDATE" id="FILEDVALIDATE">18.5.
-Field Validation</a></h3>
-<p>By default, a field will accept any data input by the user. It
-is possible to attach validation to the field. Then any attempt by
-the user to leave the field, while it contains data that doesn't
-match the validation type will fail. Some validation types also
-have a character-validity check for each time a character is
-entered in the field.</p>
-<p>Validation can be attached to a field with the following
-function.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_type(FIELD *field, /* field to alter */
- FIELDTYPE *ftype, /* type to associate */
- ...); /* additional arguments*/</font>
-</pre></td>
-</tr>
-</table>
-Once set, the validation type for a field can be queried with
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">FIELDTYPE *field_type(FIELD *field); /* field to query */</font>
-</pre></td>
-</tr>
-</table>
-<p>The form driver validates the data in a field only when data is
-entered by the end-user. Validation does not occur when</p>
-<ul>
-<li>
-<p>the application program changes the field value by calling
-set_field_buffer.</p>
-</li>
-<li>
-<p>linked field values are changed indirectly -- by changing the
-field to which they are linked</p>
-</li>
-</ul>
-<p>The following are the pre-defined validation types. You can also
-specify custom validation, though it's a bit tricky and
-cumbersome.</p>
-<h1 class="BRIDGEHEAD"><a name="AEN1069" id=
-"AEN1069"></a>TYPE_ALPHA</h1>
-<p>This field type accepts alphabetic data; no blanks, no digits,
-no special characters (this is checked at character-entry time). It
-is set up with:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALPHA, /* type to associate */
- int width); /* maximum width of field */</font>
-</pre></td>
-</tr>
-</table>
-<p>The width argument sets a minimum width of data. The user has to
-enter at-least width number of characters before he can leave the
-field. Typically you'll want to set this to the field width; if
-it's greater than the field width, the validation check will always
-fail. A minimum width of zero makes field completion optional.</p>
-<h1 class="BRIDGEHEAD"><a name="AEN1073" id=
-"AEN1073"></a>TYPE_ALNUM</h1>
-<p>This field type accepts alphabetic data and digits; no blanks,
-no special characters (this is checked at character-entry time). It
-is set up with:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALNUM, /* type to associate */
- int width); /* maximum width of field */</font>
-</pre></td>
-</tr>
-</table>
-<p>The width argument sets a minimum width of data. As with
-TYPE_ALPHA, typically you'll want to set this to the field width;
-if it's greater than the field width, the validation check will
-always fail. A minimum width of zero makes field completion
-optional.</p>
-<h1 class="BRIDGEHEAD"><a name="AEN1077" id=
-"AEN1077"></a>TYPE_ENUM</h1>
-<p>This type allows you to restrict a field's values to be among a
-specified set of string values (for example, the two-letter postal
-codes for U.S. states). It is set up with:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_type(FIELD *field, /* field to alter */
- TYPE_ENUM, /* type to associate */
- char **valuelist; /* list of possible values */
- int checkcase; /* case-sensitive? */
- int checkunique); /* must specify uniquely? */</font>
-</pre></td>
-</tr>
-</table>
-<p>The valuelist parameter must point at a NULL-terminated list of
-valid strings. The checkcase argument, if true, makes comparison
-with the string case-sensitive.</p>
-<p>When the user exits a TYPE_ENUM field, the validation procedure
-tries to complete the data in the buffer to a valid entry. If a
-complete choice string has been entered, it is of course valid. But
-it is also possible to enter a prefix of a valid string and have it
-completed for you.</p>
-<p>By default, if you enter such a prefix and it matches more than
-one value in the string list, the prefix will be completed to the
-first matching value. But the checkunique argument, if true,
-requires prefix matches to be unique in order to be valid.</p>
-<p>The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be
-particularly useful with these fields.</p>
-<h1 class="BRIDGEHEAD"><a name="AEN1084" id=
-"AEN1084"></a>TYPE_INTEGER</h1>
-<p>This field type accepts an integer. It is set up as follows:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_type(FIELD *field, /* field to alter */
- TYPE_INTEGER, /* type to associate */
- int padding, /* # places to zero-pad to */
- int vmin, int vmax); /* valid range */</font>
-</pre></td>
-</tr>
-</table>
-<p>Valid characters consist of an optional leading minus and
-digits. The range check is performed on exit. If the range maximum
-is less than or equal to the minimum, the range is ignored.</p>
-<p>If the value passes its range check, it is padded with as many
-leading zero digits as necessary to meet the padding argument.</p>
-<p>A TYPE_INTEGER value buffer can conveniently be interpreted with
-the C library function atoi(3).</p>
-<h1 class="BRIDGEHEAD"><a name="AEN1090" id=
-"AEN1090"></a>TYPE_NUMERIC</h1>
-<p>This field type accepts a decimal number. It is set up as
-follows:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_type(FIELD *field, /* field to alter */
- TYPE_NUMERIC, /* type to associate */
- int padding, /* # places of precision */
- int vmin, int vmax); /* valid range */</font>
-</pre></td>
-</tr>
-</table>
-<p>Valid characters consist of an optional leading minus and
-digits. possibly including a decimal point. The range check is
-performed on exit. If the range maximum is less than or equal to
-the minimum, the range is ignored.</p>
-<p>If the value passes its range check, it is padded with as many
-trailing zero digits as necessary to meet the padding argument.</p>
-<p>A TYPE_NUMERIC value buffer can conveniently be interpreted with
-the C library function atof(3).</p>
-<h1 class="BRIDGEHEAD"><a name="AEN1096" id=
-"AEN1096"></a>TYPE_REGEXP</h1>
-<p>This field type accepts data matching a regular expression. It
-is set up as follows:</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_field_type(FIELD *field, /* field to alter */
- TYPE_REGEXP, /* type to associate */
- char *regexp); /* expression to match */</font>
-</pre></td>
-</tr>
-</table>
-<p>The syntax for regular expressions is that of regcomp(3). The
-check for regular-expression match is performed on exit.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="FORMDRIVER" id="FORMDRIVER">18.6. Form
-Driver: The work horse of the forms system</a></h3>
-<p>As in the menu system, form_driver() plays a very important role
-in forms system. All types of requests to forms system should be
-funneled through form_driver().</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int form_driver(FORM *form, /* form on which to operate */
- int request) /* form request code */</font>
-</pre></td>
-</tr>
-</table>
-<p>As you have seen some of the examples above, you have to be in a
-loop looking for user input and then decide whether it's a field
-data or a form request. The form requests are then passed to
-form_driver() to do the work.</p>
-<p>The requests roughly can be divided into following categories.
-Different requests and their usage is explained below:</p>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="PAGENAVREQ" id="PAGENAVREQ">18.6.1. Page
-Navigation Requests</a></h4>
-<p>These requests cause page-level moves through the form,
-triggering display of a new form screen. A form can be made of
-multiple pages. If you have a big form with lot of fields and
-logical sections, then you can divide the form into pages. The
-function set_new_page() to set a new page at the field
-specified.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
- bool new_page_flag); /* should be TRUE to put a break */</font>
-</pre></td>
-</tr>
-</table>
-<p>The following requests allow you to move to different pages</p>
-<ul>
-<li>
-<p><em>REQ_NEXT_PAGE</em> Move to the next form page.</p>
-</li>
-<li>
-<p><em>REQ_PREV_PAGE</em> Move to the previous form page.</p>
-</li>
-<li>
-<p><em>REQ_FIRST_PAGE</em> Move to the first form page.</p>
-</li>
-<li>
-<p><em>REQ_LAST_PAGE</em> Move to the last form page.</p>
-</li>
-</ul>
-<p>These requests treat the list as cyclic; that is, REQ_NEXT_PAGE
-from the last page goes to the first, and REQ_PREV_PAGE from the
-first page goes to the last.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="INTERFIELDNAVREQ" id=
-"INTERFIELDNAVREQ">18.6.2. Inter-Field Navigation Requests</a></h4>
-<p>These requests handle navigation between fields on the same
-page.</p>
-<ul>
-<li>
-<p><em>REQ_NEXT_FIELD</em> Move to next field.</p>
-</li>
-<li>
-<p><em>REQ_PREV_FIELD</em> Move to previous field.</p>
-</li>
-<li>
-<p><em>REQ_FIRST_FIELD</em> Move to the first field.</p>
-</li>
-<li>
-<p><em>REQ_LAST_FIELD</em> Move to the last field.</p>
-</li>
-<li>
-<p><em>REQ_SNEXT_FIELD</em> Move to sorted next field.</p>
-</li>
-<li>
-<p><em>REQ_SPREV_FIELD</em> Move to sorted previous field.</p>
-</li>
-<li>
-<p><em>REQ_SFIRST_FIELD</em> Move to the sorted first field.</p>
-</li>
-<li>
-<p><em>REQ_SLAST_FIELD</em> Move to the sorted last field.</p>
-</li>
-<li>
-<p><em>REQ_LEFT_FIELD</em> Move left to field.</p>
-</li>
-<li>
-<p><em>REQ_RIGHT_FIELD</em> Move right to field.</p>
-</li>
-<li>
-<p><em>REQ_UP_FIELD</em> Move up to field.</p>
-</li>
-<li>
-<p><em>REQ_DOWN_FIELD</em> Move down to field.</p>
-</li>
-</ul>
-<p>These requests treat the list of fields on a page as cyclic;
-that is, REQ_NEXT_FIELD from the last field goes to the first, and
-REQ_PREV_FIELD from the first field goes to the last. The order of
-the fields for these (and the REQ_FIRST_FIELD and REQ_LAST_FIELD
-requests) is simply the order of the field pointers in the form
-array (as set up by new_form() or set_form_fields()</p>
-<p>It is also possible to traverse the fields as if they had been
-sorted in screen-position order, so the sequence goes left-to-right
-and top-to-bottom. To do this, use the second group of four
-sorted-movement requests.</p>
-<p>Finally, it is possible to move between fields using visual
-directions up, down, right, and left. To accomplish this, use the
-third group of four requests. Note, however, that the position of a
-form for purposes of these requests is its upper-left corner.</p>
-<p>For example, suppose you have a multi-line field B, and two
-single-line fields A and C on the same line with B, with A to the
-left of B and C to the right of B. A REQ_MOVE_RIGHT from A will go
-to B only if A, B, and C all share the same first line; otherwise
-it will skip over B to C.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="INTRAFIELDNAVREQ" id=
-"INTRAFIELDNAVREQ">18.6.3. Intra-Field Navigation Requests</a></h4>
-<p>These requests drive movement of the edit cursor within the
-currently selected field.</p>
-<ul>
-<li>
-<p><em>REQ_NEXT_CHAR</em> Move to next character.</p>
-</li>
-<li>
-<p><em>REQ_PREV_CHAR</em> Move to previous character.</p>
-</li>
-<li>
-<p><em>REQ_NEXT_LINE</em> Move to next line.</p>
-</li>
-<li>
-<p><em>REQ_PREV_LINE</em> Move to previous line.</p>
-</li>
-<li>
-<p><em>REQ_NEXT_WORD</em> Move to next word.</p>
-</li>
-<li>
-<p><em>REQ_PREV_WORD</em> Move to previous word.</p>
-</li>
-<li>
-<p><em>REQ_BEG_FIELD</em> Move to beginning of field.</p>
-</li>
-<li>
-<p><em>REQ_END_FIELD</em> Move to end of field.</p>
-</li>
-<li>
-<p><em>REQ_BEG_LINE</em> Move to beginning of line.</p>
-</li>
-<li>
-<p><em>REQ_END_LINE</em> Move to end of line.</p>
-</li>
-<li>
-<p><em>REQ_LEFT_CHAR</em> Move left in field.</p>
-</li>
-<li>
-<p><em>REQ_RIGHT_CHAR</em> Move right in field.</p>
-</li>
-<li>
-<p><em>REQ_UP_CHAR</em> Move up in field.</p>
-</li>
-<li>
-<p><em>REQ_DOWN_CHAR</em> Move down in field.</p>
-</li>
-</ul>
-<p>Each word is separated from the previous and next characters by
-whitespace. The commands to move to beginning and end of line or
-field look for the first or last non-pad character in their
-ranges.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="SCROLLREQ" id="SCROLLREQ">18.6.4.
-Scrolling Requests</a></h4>
-<p>Fields that are dynamic and have grown and fields explicitly
-created with offscreen rows are scrollable. One-line fields scroll
-horizontally; multi-line fields scroll vertically. Most scrolling
-is triggered by editing and intra-field movement (the library
-scrolls the field to keep the cursor visible). It is possible to
-explicitly request scrolling with the following requests:</p>
-<ul>
-<li>
-<p><em>REQ_SCR_FLINE</em> Scroll vertically forward a line.</p>
-</li>
-<li>
-<p><em>REQ_SCR_BLINE</em> Scroll vertically backward a line.</p>
-</li>
-<li>
-<p><em>REQ_SCR_FPAGE</em> Scroll vertically forward a page.</p>
-</li>
-<li>
-<p><em>REQ_SCR_BPAGE</em> Scroll vertically backward a page.</p>
-</li>
-<li>
-<p><em>REQ_SCR_FHPAGE</em> Scroll vertically forward half a
-page.</p>
-</li>
-<li>
-<p><em>REQ_SCR_BHPAGE</em> Scroll vertically backward half a
-page.</p>
-</li>
-<li>
-<p><em>REQ_SCR_FCHAR</em> Scroll horizontally forward a
-character.</p>
-</li>
-<li>
-<p><em>REQ_SCR_BCHAR</em> Scroll horizontally backward a
-character.</p>
-</li>
-<li>
-<p><em>REQ_SCR_HFLINE</em> Scroll horizontally one field width
-forward.</p>
-</li>
-<li>
-<p><em>REQ_SCR_HBLINE</em> Scroll horizontally one field width
-backward.</p>
-</li>
-<li>
-<p><em>REQ_SCR_HFHALF</em> Scroll horizontally one half field width
-forward.</p>
-</li>
-<li>
-<p><em>REQ_SCR_HBHALF</em> Scroll horizontally one half field width
-backward.</p>
-</li>
-</ul>
-<p>For scrolling purposes, a page of a field is the height of its
-visible part.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="EDITREQ" id="EDITREQ">18.6.5. Editing
-Requests</a></h4>
-<p>When you pass the forms driver an ASCII character, it is treated
-as a request to add the character to the field's data buffer.
-Whether this is an insertion or a replacement depends on the
-field's edit mode (insertion is the default.</p>
-<p>The following requests support editing the field and changing
-the edit mode:</p>
-<ul>
-<li>
-<p><em>REQ_INS_MODE</em> Set insertion mode.</p>
-</li>
-<li>
-<p><em>REQ_OVL_MODE</em> Set overlay mode.</p>
-</li>
-<li>
-<p><em>REQ_NEW_LINE</em> New line request (see below for
-explanation).</p>
-</li>
-<li>
-<p><em>REQ_INS_CHAR</em> Insert space at character location.</p>
-</li>
-<li>
-<p><em>REQ_INS_LINE</em> Insert blank line at character
-location.</p>
-</li>
-<li>
-<p><em>REQ_DEL_CHAR</em> Delete character at cursor.</p>
-</li>
-<li>
-<p><em>REQ_DEL_PREV</em> Delete previous word at cursor.</p>
-</li>
-<li>
-<p><em>REQ_DEL_LINE</em> Delete line at cursor.</p>
-</li>
-<li>
-<p><em>REQ_DEL_WORD</em> Delete word at cursor.</p>
-</li>
-<li>
-<p><em>REQ_CLR_EOL</em> Clear to end of line.</p>
-</li>
-<li>
-<p><em>REQ_CLR_EOF</em> Clear to end of field.</p>
-</li>
-<li>
-<p><em>REQ_CLR_FIELD</em> Clear entire field.</p>
-</li>
-</ul>
-<p>The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is
-complicated and partly controlled by a pair of forms options. The
-special cases are triggered when the cursor is at the beginning of
-a field, or on the last line of the field.</p>
-<p>First, we consider REQ_NEW_LINE:</p>
-<p>The normal behavior of REQ_NEW_LINE in insert mode is to break
-the current line at the position of the edit cursor, inserting the
-portion of the current line after the cursor as a new line
-following the current and moving the cursor to the beginning of
-that new line (you may think of this as inserting a newline in the
-field buffer).</p>
-<p>The normal behavior of REQ_NEW_LINE in overlay mode is to clear
-the current line from the position of the edit cursor to end of
-line. The cursor is then moved to the beginning of the next
-line.</p>
-<p>However, REQ_NEW_LINE at the beginning of a field, or on the
-last line of a field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD
-option is off, this special action is disabled.</p>
-<p>Now, let us consider REQ_DEL_PREV:</p>
-<p>The normal behavior of REQ_DEL_PREV is to delete the previous
-character. If insert mode is on, and the cursor is at the start of
-a line, and the text on that line will fit on the previous one, it
-instead appends the contents of the current line to the previous
-one and deletes the current line (you may think of this as deleting
-a newline from the field buffer).</p>
-<p>However, REQ_DEL_PREV at the beginning of a field is instead
-treated as a REQ_PREV_FIELD.</p>
-<p>If the O_BS_OVERLOAD option is off, this special action is
-disabled and the forms driver just returns E_REQUEST_DENIED.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="ORDERREQ" id="ORDERREQ">18.6.6. Order
-Requests</a></h4>
-<p>If the type of your field is ordered, and has associated
-functions for getting the next and previous values of the type from
-a given value, there are requests that can fetch that value into
-the field buffer:</p>
-<ul>
-<li>
-<p><em>REQ_NEXT_CHOICE</em> Place the successor value of the
-current value in the buffer.</p>
-</li>
-<li>
-<p><em>REQ_PREV_CHOICE</em> Place the predecessor value of the
-current value in the buffer.</p>
-</li>
-</ul>
-<p>Of the built-in field types, only TYPE_ENUM has built-in
-successor and predecessor functions. When you define a field type
-of your own (see Custom Validation Types), you can associate our
-own ordering functions.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="APPLICCOMMANDS" id=
-"APPLICCOMMANDS">18.6.7. Application Commands</a></h4>
-<p>Form requests are represented as integers above the curses value
-greater than KEY_MAX and less than or equal to the constant
-MAX_COMMAND. A value within this range gets ignored by
-form_driver(). So this can be used for any purpose by the
-application. It can be treated as an application specific action
-and take corresponding action.</p>
-</div>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="TOOLS" id="TOOLS">19. Tools and Widget
-Libraries</a></h2>
-<p>Now that you have seen the capabilities of ncurses and its
-sister libraries, you are rolling your sleeves up and gearing for a
-project that heavily manipulates screen. But wait.. It can be
-pretty difficult to write and maintain complex GUI widgets in plain
-ncurses or even with the additional libraries. There are some
-ready-to-use tools and widget libraries that can be used instead of
-writing your own widgets. You can use some of them, get ideas from
-the code, or even extend them.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="CDK" id="CDK">19.1. CDK (Curses
-Development Kit)</a></h3>
-<p>In the author's words</p>
-<p><em>CDK stands for 'Curses Development Kit' and it currently
-contains 21 ready to use widgets which facilitate the speedy
-development of full screen curses programs.</em></p>
-<p>The kit provides some useful widgets, which can be used in your
-programs directly. It's pretty well written and the documentation
-is very good. The examples in the examples directory can be a good
-place to start for beginners. The CDK can be downloaded from
-<a href="http://invisible-island.net/cdk/" target=
-"_top">http://invisible-island.net/cdk/</a> . Follow the
-instructions in README file to install it.</p>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="WIDGETLIST" id="WIDGETLIST">19.1.1.
-Widget List</a></h4>
-<p>The following is the list of widgets provided with cdk and their
-description.</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color="#000000">Widget Type Quick Description
-===========================================================================
-Alphalist Allows a user to select from a list of words, with
- the ability to narrow the search list by typing in a
- few characters of the desired word.
-Buttonbox This creates a multiple button widget.
-Calendar Creates a little simple calendar widget.
-Dialog Prompts the user with a message, and the user
- can pick an answer from the buttons provided.
-Entry Allows the user to enter various types of information.
-File Selector A file selector built from Cdk base widgets. This
- example shows how to create more complicated widgets
- using the Cdk widget library.
-Graph Draws a graph.
-Histogram Draws a histogram.
-Item List Creates a pop up field which allows the user to select
- one of several choices in a small field. Very useful
- for things like days of the week or month names.
-Label Displays messages in a pop up box, or the label can be
- considered part of the screen.
-Marquee Displays a message in a scrolling marquee.
-Matrix Creates a complex matrix with lots of options.
-Menu Creates a pull-down menu interface.
-Multiple Line Entry A multiple line entry field. Very useful
- for long fields. (like a description
- field)
-Radio List Creates a radio button list.
-Scale Creates a numeric scale. Used for allowing a user to
- pick a numeric value and restrict them to a range of
- values.
-Scrolling List Creates a scrolling list/menu list.
-Scrolling Window Creates a scrolling log file viewer. Can add
- information into the window while its running.
- A good widget for displaying the progress of
- something. (akin to a console window)
-Selection List Creates a multiple option selection list.
-Slider Akin to the scale widget, this widget provides a
- visual slide bar to represent the numeric value.
-Template Creates a entry field with character sensitive
- positions. Used for pre-formatted fields like
- dates and phone numbers.
-Viewer This is a file/information viewer. Very useful
- when you need to display loads of information.
-===========================================================================</font>
-</pre></td>
-</tr>
-</table>
-<p>A few of the widgets are modified by Thomas Dickey in recent
-versions.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="CDKATTRACT" id="CDKATTRACT">19.1.2. Some
-Attractive Features</a></h4>
-<p>Apart from making our life easier with readily usable widgets,
-cdk solves one frustrating problem with printing multi colored
-strings, justified strings elegantly. Special formatting tags can
-be embedded in the strings which are passed to CDK functions. For
-Example</p>
-<p>If the string</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000">"&lt;/B/1&gt;This line should have a yellow foreground and a blue
-background.&lt;!1&gt;"</font>
-</pre></td>
-</tr>
-</table>
-<p>given as a parameter to newCDKLabel(), it prints the line with
-yellow foreground and blue background. There are other tags
-available for justifying string, embedding special drawing
-characters etc.. Please refer to the man page cdk_display(3X) for
-details. The man page explains the usage with nice examples.</p>
-</div>
-<div class="SECT3">
-<hr>
-<h4 class="SECT3"><a name="CDKCONCLUSION" id=
-"CDKCONCLUSION">19.1.3. Conclusion</a></h4>
-<p>All in all, CDK is a well-written package of widgets, which if
-used properly can form a strong frame work for developing complex
-GUI.</p>
-</div>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="DIALOG" id="DIALOG">19.2. The
-dialog</a></h3>
-<p>Long long ago, in September 1994, when few people knew linux,
-Jeff Tranter wrote an <a href=
-"http://www2.linuxjournal.com/lj-issues/issue5/2807.html" target=
-"_top">article</a> on dialog in Linux Journal. He starts the
-article with these words..</p>
-<p><em>Linux is based on the Unix operating system, but also
-features a number of unique and useful kernel features and
-application programs that often go beyond what is available under
-Unix. One little-known gem is "dialog", a utility for creating
-professional-looking dialog boxes from within shell scripts. This
-article presents a tutorial introduction to the dialog utility, and
-shows examples of how and where it can be used</em></p>
-<p>As he explains, dialog is a real gem in making
-professional-looking dialog boxes with ease. It creates a variety
-of dialog boxes, menus, check lists etc.. It is usually installed
-by default. If not, you can download it from <a href=
-"http://invisible-island.net/dialog/" target="_top">Thomas
-Dickey</a>'s site.</p>
-<p>The above-mentioned article gives a very good overview of its
-uses and capabilites. The man page has more details. It can be used
-in variety of situations. One good example is building of linux
-kernel in text mode. Linux kernel uses a modified version of dialog
-tailored for its needs.</p>
-<p>dialog was initially designed to be used with shell scripts. If
-you want to use its functionality in a c program, then you can use
-libdialog. The documentation regarding this is sparse. Definitive
-reference is the dialog.h header file which comes with the library.
-You may need to hack here and there to get the required output. The
-source is easily customizable. I have used it on a number of
-occasions by modifying the code.</p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="PERLCURSES" id="PERLCURSES">19.3. Perl
-Curses Modules CURSES::FORM and CURSES::WIDGETS</a></h3>
-<p>The perl module Curses, Curses::Form and Curses::Widgets give
-access to curses from perl. If you have curses and basic perl is
-installed, you can get these modules from <a href=
-"http://www.cpan.org/modules/01modules.index.html" target=
-"_top">CPAN All Modules page</a>. Get the three zipped modules in
-the Curses category. Once installed you can use these modules from
-perl scripts like any other module. For more information on perl
-modules see perlmod man page. The above modules come with good
-documentation and they have some demo scripts to test the
-functionality. Though the widgets provided are very rudimentary,
-these modules provide good access to curses library from perl.</p>
-<p>Some of my code examples are converted to perl by Anuradha
-Ratnaweera and they are available in the <var class=
-"LITERAL">perl</var> directory.</p>
-<p>For more information see man pages Curses(3) , Curses::Form(3)
-and Curses::Widgets(3). These pages are installed only when the
-above modules are acquired and installed.</p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="JUSTFORFUN" id="JUSTFORFUN">20. Just For
-Fun !!!</a></h2>
-<p>This section contains few programs written by me just for fun.
-They don't signify a better programming practice or the best way of
-using ncurses. They are provided here so as to allow beginners to
-get ideas and add more programs to this section. If you have
-written a couple of nice, simple programs in curses and want them
-to included here, contact <a href="mailto:ppadala@gmail.com"
-target="_top">me</a>.</p>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="GAMEOFLIFE" id="GAMEOFLIFE">20.1. The
-Game of Life</a></h3>
-<p>Game of life is a wonder of math. In <a href=
-"http://www.math.com/students/wonders/life/life.html" target=
-"_top">Paul Callahan</a>'s words</p>
-<table border="0" bgcolor="#E0E0E0" width="100%">
-<tr>
-<td>
-<pre class="PROGRAMLISTING">
-<font color=
-"#000000"><em>The Game of Life (or simply Life) is not a game in the conventional sense. There
-are no players, and no winning or losing. Once the "pieces" are placed in the
-starting position, the rules determine everything that happens later.
-Nevertheless, Life is full of surprises! In most cases, it is impossible to look
-at a starting position (or pattern) and see what will happen in the future. The
-only way to find out is to follow the rules of the game.</em></font>
-</pre></td>
-</tr>
-</table>
-<p>This program starts with a simple inverted U pattern and shows
-how wonderful life works. There is a lot of room for improvement in
-the program. You can let the user enter pattern of his choice or
-even take input from a file. You can also change rules and play
-with a lot of variations. Search on <a href="http://www.google.com"
-target="_top">google</a> for interesting information on game of
-life.</p>
-<p><em>File Path: JustForFun/life.c</em></p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="MAGIC" id="MAGIC">20.2. Magic
-Square</a></h3>
-<p>Magic Square, another wonder of math, is very simple to
-understand but very difficult to make. In a magic square sum of the
-numbers in each row, each column is equal. Even diagnol sum can be
-equal. There are many variations which have special properties.</p>
-<p>This program creates a simple magic square of odd order.</p>
-<p><em>File Path: JustForFun/magic.c</em></p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="HANOI" id="HANOI">20.3. Towers of
-Hanoi</a></h3>
-<p>The famous towers of hanoi solver. The aim of the game is to
-move the disks on the first peg to last peg, using middle peg as a
-temporary stay. The catch is not to place a larger disk over a
-small disk at any time.</p>
-<p><em>File Path: JustForFun/hanoi.c</em></p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="QUEENS" id="QUEENS">20.4. Queens
-Puzzle</a></h3>
-<p>The objective of the famous N-Queen puzzle is to put N queens on
-a N X N chess board without attacking each other.</p>
-<p>This program solves it with a simple backtracking technique.</p>
-<p><em>File Path: JustForFun/queens.c</em></p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="SHUFFLE" id="SHUFFLE">20.5.
-Shuffle</a></h3>
-<p>A fun game, if you have time to kill.</p>
-<p><em>File Path: JustForFun/shuffle.c</em></p>
-</div>
-<div class="SECT2">
-<hr>
-<h3 class="SECT2"><a name="TT" id="TT">20.6. Typing Tutor</a></h3>
-<p>A simple typing tutor, I created more out of need than for ease
-of use. If you know how to put your fingers correctly on the
-keyboard, but lack practice, this can be helpful.</p>
-<p><em>File Path: JustForFun/tt.c</em></p>
-</div>
-</div>
-<div class="SECT1">
-<hr>
-<h2 class="SECT1"><a name="REF" id="REF">21. References</a></h2>
-<ul>
-<li>
-<p>NCURSES man pages</p>
-</li>
-<li>
-<p>NCURSES FAQ at <a href=
-"http://invisible-island.net/ncurses/ncurses.faq.html" target=
-"_top">http://invisible-island.net/ncurses/ncurses.faq.html</a></p>
-</li>
-<li>
-<p>Writing programs with NCURSES by Eric Raymond and Zeyd M.
-Ben-Halim at <a href=
-"http://invisible-island.net/ncurses/ncurses-intro.html" target=
-"_top">http://invisible-island.net/ncurses/ncurses-intro.html</a> -
-somewhat obsolete. I was inspired by this document and the
-structure of this HOWTO follows from the original document</p>
-</li>
-</ul>
-</div>
-</div>
-</body>
-</html>
diff --git a/contrib/ncurses/doc/html/announce.html b/contrib/ncurses/doc/html/announce.html
deleted file mode 100644
index f9dae07e5d9a..000000000000
--- a/contrib/ncurses/doc/html/announce.html
+++ /dev/null
@@ -1,600 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id: announce.html,v 1.51 2006/12/17 23:32:42 tom Exp $
- ****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
--->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses 5.6</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-<BODY>
-
-<H1>Announcing ncurses 5.6</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 encouraged the keepers of
-Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
-ncurses.<P>
-
-The ncurses code was developed under GNU/Linux.
-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/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</A>&nbsp;.
-<br>It is also available at
-<A HREF="ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</A>&nbsp;.
-
-<H1>Release Notes</H1>
-
-This release is designed to be upward compatible from ncurses 5.0 through 5.5;
-very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.5 release.
-<p>
-Interface changes:
-<ul>
- <li>generate linkable stubs for some macros:
- <br>
- getbegx, getbegy, getcurx, getcury, getmaxx, getmaxy, getparx,
- getpary, getpary,
- <br>
- and (for libncursesw)
- <br>
- wgetbkgrnd
-
-</ul>
-New features and improvements:
-<ul>
- <li>library
- <ul>
- <li>support hashed databases for the terminal descriptions.
- This uses the Berkeley database, has been tested for
- several versions on different platforms.
-
- <li>add <code>use_legacy_coding()</code> function to support
- lynx's font-switching feature.
-
- <li>add extension <code>nofilter()</code>, to cancel a prior
- <code>filter()</code> call.
-
- <li>add/install a package config script, e.g.,
- <code>ncurses5-config</code> or
- <code>ncursesw5-config</code>, according to
- configuration options.
-
- <li>provide ifdef for <code>NCURSES_NOMACROS</code> which
- suppresses most macro definitions from curses.h, i.e.,
- where a macro is defined to override a function to improve
- performance.
-
- <li>make ifdef's consistent in <code>curses.h</code> for the
- extended colors so the header file can be used for the
- normal curses library. The header file installed for
- extended colors is a variation of the wide-character
- configuration.
-
- <li>improve <code>tgetstr()</code> by making the return value
- point into the user's buffer, if provided.
-
- <li>add ifdef's allowing ncurses to be built with
- <code>tparm()</code> using either varargs (the existing
- status), or using a fixed-parameter list (to match X/Open).
-
- <li>widen the test for xterm <code>kmous</code> a little to
- <code>allow</code> for other
- strings than "\E[M", e.g., for <code>xterm-sco</code>
- functionality in xterm.
-
- <li>modify <code>wgetnstr()</code> to return
- <code>KEY_RESIZE</code> if a sigwinch occurs.
-
- <li>move prototypes for wide-character trace functions from
- curses.tail to curses.wide to avoid accidental reference to
- those if <code>_XOPEN_SOURCE_EXTENDED</code> is defined
- without ensuring that &lt;wchar.h&gt; is included.
-
- <li>change the way shared libraries (other than libtool) are
- installed. Rather than copying the build-tree's libraries,
- link the shared objects into the install directory. This
- makes the <code>--with-rpath</code> option work except with
- <code>$(DESTDIR)</code>.
-
- <li>several improvements for rendering in hpterm. These are
- only available if the library is configured using
- <code>--enable-xmc-glitch</code>.
-
- <li>Add <code>NCURSES_NO_HARD_TABS</code> and
- <code>NCURSES_NO_MAGIC_COOKIE</code> environment variables
- to allow runtime suppression of the related hard-tabs and
- xmc-glitch features.
- </ul>
-
- <li>programs:
- <ul>
- <li>add new test programs: chgat.c, demo_altkeys.c,
- echochar.c, foldkeys.c, movewindow.c, redraw.c, (noting
- that existing test programs also were modified to test
- additional features).
-
- <li>modify tack to test extended capability function-key
- strings.
-
- <li>modify toe to access termcap data, e.g., via <code>cgetent()</code>
- functions, or as a text file if those are not available.
-
- <li>improve infocmp/tic <code>-f</code> option formatting.
-
- <li>add <code>toe -a</code> option, to show all databases.
- This uses new private interfaces in the ncurses library for
- iterating through the list of databases.
-
- <li>modify <code>MKfallback.sh</code> to use
- <code>tic&nbsp;-x</code> when constructing fallback tables to
- allow extended capabilities to be retrieved from a fallback entry.
- </ul>
-
- <li>terminal database
- <ul>
- <li>add terminfo entries for xfce terminal (xfce) and multi gnome terminal (mgt)
- <li>add nsterm-16color entry
- <li>updated mlterm terminfo entry
- <li>add kon, kon2 and jfbterm terminfo entry
- <li>remove invis capability from klone+sgr, mainly used by linux entry, since it does not really do this
- <li>add ka2, kb1, kb3, kc2 to vt220-keypad as an extension
- <li>add shifted up/down arrow codes to xterm-new as kind/kri strings
- <li>add hpterm-color terminfo entry
- <li>add 256color variants of terminfo entries for programs which are reported to implement this feature
- <li>correct order of use-clauses in rxvt-basic entry which made codes for f1-f4 vt100-style rather than vt220-style.
- </ul>
-</ul>
-Major bug fixes:
-<ul>
- <li>correct a typo in configure <code>--with-bool</code> option for the
- case where <code>--without-cxx</code> is used.
-
- <li>move assignment from environment variable <code>ESCDELAY</code>
- from <code>initscr()</code> down to <code>newterm()</code> so the
- environment variable affects timeouts for terminals opened with
- newterm() as well.
-
- <li>modify <code>werase</code> to clear multicolumn characters that
- extend into a derived window.
-
- <li>modify <code>wchgat()</code> to mark updated cells as changed so a
- refresh will repaint those cells.
-
- <li>correct logic in <code>wadd_wch()</code> and
- <code>wecho_wch()</code>, which did not guard against passing the
- multi-column attribute into a call on <code>waddch()</code>, e.g.,
- using data returned by <code>win_wch()</code>
-
- <li>fix redrawing of windows other than <code>stdscr</code> using
- <code>wredrawln()</code> by touching the corresponding rows in
- <code>curscr</code>.
-
- <li>reduce memory leaks in repeated calls to <code>tgetent()</code> by
- remembering the last <code>TERMINAL*</code> value allocated to hold
- the corresponding data and freeing that if the
- <code>tgetent()</code> result buffer is the same as the previous
- call.
-
- <li>modify <code>read_termtype()</code> so the <code>term_names</code>
- data is always allocated as part of the <code>str_table</code>, a
- better fix for a memory leak.
-
- <li>fix <code>wins_nwstr(),</code> which did not handle single-column
- non-8bit codes.
-
- <li>modify <code>wbkgrnd()</code> to avoid clearing the
- <code>A_CHARTEXT</code> attribute bits since those record the state
- of multicolumn characters.
-
- <li>improve <code>SIGWINCH</code> handling by postponing its effect
- during <code>newterm()</code>, etc., when allocating screens.
-
- <li>remove 970913 feature for copying subwindows as they are moved in
- <code>mvwin()</code>.
-
- <li>add checks in <code>waddchnstr()</code> and
- <code>wadd_wchnstr()</code> to stop copying when a null character
- is found.
-
- <li>add some checks to ensure current position is within scrolling
- region before scrolling on a new line.
-
- <li>add a workaround to ACS mapping to allow applications such as
- test/blue.c to use the "PC ROM" characters by masking them with
- A_ALTCHARSET. This worked up til 5.5, but was lost in the revision
- of legacy coding.
-</ul>
-
-Portability:
-<ul>
- <li>configure script:
- <ul>
- <li>new options:
- <dl>
-
- <dt>--with-hashed-db
- <dd>Use Berkeley hashed database for storing terminfo data rather than storing
- each compiled entry in a separate binary file within a directory
- tree.
-
- <dt>--without-dlsym
- <dd>Do not use <code>dlsym()</code> to load GPM dynamically.
-
- <dt>--with-valgrind
- <dd>Simplify building for testing with valgrind.
-
- <dt>--enable-wgetch-events
- <dd>Compile with experimental wgetch-events code.
-
- <dt>--enable-signed-char
- <dd>Store booleans in "signed char" rather than "char".
-
- </dl>
-
- <li>improved options:
- <dl>
-
- <dt>--disable-largefile
- <dd>make the option work both ways.
-
- <dt>--with-gpm
- <dd>The option now accepts a parameter,
- i.e., the name of the dynamic GPM library to load via
- <code>dlopen()</code>
-
- <dt>--disable-symlinks
- <dd>The option now allows one to
- disable <code>symlink()</code> in <code>tic</code> even when
- <code>link()</code> does not work.
-
- </dl>
-
- </ul>
-
- <li>other configure/build issues: <ul> <li>remove special case for
- Darwin in <code>CF_XOPEN_SOURCE</code> configure macro.
-
- <li>add configure check to ensure that <code>SIGWINCH</code> is
- defined on platforms such as OS X which exclude that when
- <code>_XOPEN_SOURCE,</code> etc., are defined
-
- <li>use ld's <code>-search_paths_first</code> option on Darwin
- to work around odd search rules on that platform.
-
- <li>improve ifdef's for <code>_POSIX_VDISABLE</code> in tset to
- work with Mac OS X.
-
- <li>modify configure script to ensure that if the C compiler is
- used rather than the loader in making shared libraries, the
- <code>$(CFLAGS)</code> variable is also used.
-
- <li>use <code>${CC}</code> rather than <code>${LD}</code> in
- shared library rules for IRIX64, Solaris to help ensure
- that initialization sections are provided for extra linkage
- requirements, e.g., of C++ applications.
-
- <li>improve some shared-library configure scripting for Linux,
- FreeBSD and NetBSD to make
- <code>--with-shlib-version</code> work.
-
- <li>split up dependency of <code>names.c</code> and
- <code>codes.c</code> in <code>ncurses/Makefile</code> to
- work with parallel make.
-
- <li>modify <code>MKlib_gen.sh</code> to change
- preprocessor-expanded <code>_Bool</code> back to <code>bool</code>.
-
- <li>modify <code>progs/Makefile.in</code> to make
- <code>tput&nbsp;init</code> work properly with cygwin,
- i.e., do not pass a <code>.exe</code> in the reference
- string used in check_aliases.
- </ul>
-
- <li>library:
- <ul>
- <li>ignore wide-acs line-drawing characters that
- <code>wcwidth()</code> claims are not one-column. This is
- a workaround for Solaris' broken locale support.
-
- <li>reduce name-pollution in <code>term.h</code> by removing
- <code>#define</code>'s for HAVE_xxx symbols.
-
- <li>fix <code>#ifdef</code> in <code>c++/internal.h</code> for
- QNX 6.1
- </ul>
-
- <li>test programs: <ul> <li>modify <code>test/configure</code> script
- to allow building test programs with PDCurses/X11.
-
- <li>modified test programs to allow some to work with NetBSD
- curses. Several do not because NetBSD curses implements a
- subset of X/Open curses, and also lacks much of SVr4
- additions. But it is enough for comparison.
-
- <li>improved <code>test/configure</code> to build test/ncurses
- on HPUX 11 using the vendor curses.
-
- <li>change configure script to produce
- <code>test/Makefile</code> from data file.
- </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,
-and most EXTENDED features).
-It includes 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 FreeBSD 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 modern 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/">http://invisible-island.net/cdk/</A>
-<br>
-<A HREF="http://www.vexus.ca/products/CDK/">http://www.vexus.ca/products/CDK/</a>
-<DT> ded
-<DD> directory-editor
-<br>
-<A HREF="http://invisible-island.net/ded/">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/">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="http://www.ibiblio.org/mc/">http://www.ibiblio.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>
-<br>
-<DT> pinfo
-<DD> Lynx-like info browser.
-<A HREF="http://dione.ids.pl/~pborys/software/pinfo/">http://dione.ids.pl/~pborys/software/pinfo/</A>
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<A HREF="http://www.tin.org/">http://www.tin.org/</A>
-<DT> vh-1.6
-<DD> Volks-Hypertext browser for the Jargon File
-<br>
-<A HREF="http://www.debian.org/Packages/unstable/text/vh.html">http://www.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://alioth.debian.org/projects/minicom/">
-http://alioth.debian.org/projects/minicom/</A>
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://invisible-island.net/vile/">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>
-
-Zeyd Ben-Halim
-started it from a previous package pcurses, written by Pavel Curtis.
-Eric S. Raymond
-continued development.
-J&uuml;rgen Pfeifer wrote most of the form and menu libraries.
-Ongoing work is being done by
-<A HREF="mailto:dickey@invisible-island.net">Thomas Dickey</A>.
-Thomas Dickey
-acts as the maintainer for the Free Software Foundation,
-which holds the copyright on ncurses.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-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>&nbsp;.
-
-<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 provides a newer version of the terminfo-format
-terminal description file once maintained by
-<A HREF="http://www.catb.org/~esr/terminfo/">Eric Raymond</A>&nbsp;.
-Unlike the older version, the termcap and terminfo data are provided
-in the same file, and provides several user-definable extensions
-beyond the X/Open specification.<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>&nbsp;.
-</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/contrib/ncurses/doc/html/hackguide.html b/contrib/ncurses/doc/html/hackguide.html
deleted file mode 100644
index 97d1369170c1..000000000000
--- a/contrib/ncurses/doc/html/hackguide.html
+++ /dev/null
@@ -1,914 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id: hackguide.html,v 1.27 2005/12/24 15:37:13 tom Exp $
- ****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
--->
-<HTML>
-<HEAD>
-<TITLE>A Hacker's Guide to Ncurses Internals</TITLE>
-<link rev="made" href="mailto:bugs-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<!--
-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>
-
-<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 reason.<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 possible. <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/contrib/ncurses/doc/html/ncurses-intro.html b/contrib/ncurses/doc/html/ncurses-intro.html
deleted file mode 100644
index 451e7ab4d32d..000000000000
--- a/contrib/ncurses/doc/html/ncurses-intro.html
+++ /dev/null
@@ -1,2722 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id: ncurses-intro.html,v 1.43 2007/03/03 19:31:50 tom Exp $
- ****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
--->
-<HTML>
-<HEAD>
-<TITLE>Writing Programs with NCURSES</TITLE>
-<link rev="made" href="mailto:bugs-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</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.
-J&uuml;rgen Pfeifer
-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@invisible-island.net">Thomas Dickey</A> (maintainer).
-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>FreeBSD sysmouse (console)
-<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>ripoffline()</CODE>, <CODE>use_env()</CODE>, and, if you are using multiple
-terminals, <CODE>newterm()</CODE>.)
-<DT> <CODE>endwin()</CODE>
-<DD> Your program should always call <CODE>endwin()</CODE> before exiting or
-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 <CODE>SIGWINCH</CODE> to the application running
-under xterm.
-
-The easiest way to handle <CODE>SIGWINCH</CODE>
-is to 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>
-
-The <CODE>ncurses</CODE> library provides a SIGWINCH signal handler,
-which pushes a <CODE>KEY_RESIZE</CODE> via the wgetch() calls.
-When <CODE>ncurses</CODE> returns that code,
-it calls <code>resizeterm</CODE>
-to update the size of the standard screen's window, repainting that
-(filling with blanks or truncating as needed).
-It also resizes other windows,
-but its effect may be less satisfactory because it cannot
-know how you want the screen re-painted.
-You will usually have to write special-purpose code to handle
-<CODE>KEY_RESIZE</CODE> yourself.
-
-<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 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>wnoutrefresh()</CODE> calls for whatever panel
-stacking order you have defined. Then you can do one <CODE>doupdate()</CODE>
-and there will be a <EM>single</EM> burst of physical I/O that will do
-all your updates.
-
-<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>post_menu()</CODE>.
-<LI>Refresh the screen.
-<LI>Process user requests via an input loop.
-<LI>Unpost the menu using <CODE>unpost_menu()</CODE>.
-<LI>Free the menu, using <CODE>free_menu()</CODE>.
-<LI>Free the items using <CODE>free_item()</CODE>.
-<LI>Terminate <CODE>curses</CODE>.
-</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>post_menu()</CODE>, you write the menu to its
-subwindow. When you call <CODE>unpost_menu()</CODE>, you erase the
-subwindow, However, neither of these actually modifies the screen. To
-do that, call <CODE>wrefresh()</CODE> or some equivalent.
-
-<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>post_form()</CODE>.
-<LI>Refresh the screen.
-<LI>Process user requests via an input loop.
-<LI>Unpost the form using <CODE>unpost_form()</CODE>.
-<LI>Free the form, using <CODE>free_form()</CODE>.
-<LI>Free the fields using <CODE>free_field()</CODE>.
-<LI>Terminate <CODE>curses</CODE>.
-</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_win()</CODE> call. <P>
-
-The fifth argument allows you to specify a number of off-screen rows. If
-this is zero, the entire field will always be displayed. If it is
-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
-href="#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 href="#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/contrib/ncurses/doc/ncurses-intro.doc b/contrib/ncurses/doc/ncurses-intro.doc
deleted file mode 100644
index 85179d166696..000000000000
--- a/contrib/ncurses/doc/ncurses-intro.doc
+++ /dev/null
@@ -1,2501 +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. Juergen
- Pfeifer wrote all of the menu and forms code as well as the Ada95
- binding. Ongoing work is being done by Thomas Dickey (maintainer).
- 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.
- * FreeBSD sysmouse (console)
- * 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(), ripoffline(), 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 easiest way to handle SIGWINCH is to 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.
-
- The ncurses library provides a SIGWINCH signal handler, which pushes a
- KEY_RESIZE via the wgetch() calls. When ncurses returns that code, it
- calls resizeterm to update the size of the standard screen's window,
- repainting that (filling with blanks or truncating as needed). It also
- resizes other windows, but its effect may be less satisfactory because
- it cannot know how you want the screen re-painted. You will usually
- have to write special-purpose code to handle KEY_RESIZE yourself.
-
- 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 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 wnoutrefresh() calls for whatever panel stacking order
- you have defined. Then you can do one doupdate() and there will be a
- single burst of physical I/O that will do all your updates.
-
- 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 post_menu().
- 5. Refresh the screen.
- 6. Process user requests via an input loop.
- 7. Unpost the menu using unpost_menu().
- 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 post_menu(), you write the menu to its subwindow. When
- you call unpost_menu(), you erase the subwindow, However, neither of
- these actually modifies the screen. To do that, call wrefresh() or
- some equivalent.
-
-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 post_form().
- 5. Refresh the screen.
- 6. Process user requests via an input loop.
- 7. Unpost the form using unpost_form().
- 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_win() call.
-
- The fifth argument allows you to specify a number of off-screen rows.
- If this is zero, the entire field will always be displayed. If it is
- 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/contrib/ncurses/form/Makefile.in b/contrib/ncurses/form/Makefile.in
deleted file mode 100644
index 2bf31e15f347..000000000000
--- a/contrib/ncurses/form/Makefile.in
+++ /dev/null
@@ -1,165 +0,0 @@
-# $Id: Makefile.in,v 1.47 2007/04/28 14:56:11 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-# 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
-
-x = @EXEEXT@
-o = .@OBJEXT@
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-LIBTOOL_CLEAN = @LIB_CLEAN@
-LIBTOOL_COMPILE = @LIB_COMPILE@
-LIBTOOL_LINK = @LIB_LINK@
-LIBTOOL_INSTALL = @LIB_INSTALL@
-LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROGRAM@
-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 = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @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@)
-
-LINK = $(LIBTOOL_LINK)
-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 = @LIB_PREP@
-
-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)/../mkdirs.sh $@
-
-# 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/contrib/ncurses/form/READ.ME b/contrib/ncurses/form/READ.ME
deleted file mode 100644
index da86bf69275d..000000000000
--- a/contrib/ncurses/form/READ.ME
+++ /dev/null
@@ -1,42 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: READ.ME,v 0.7 2006/04/22 23:13:05 tom Exp $
--------------------------------------------------------------------------------
-
-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
diff --git a/contrib/ncurses/form/f_trace.c b/contrib/ncurses/form/f_trace.c
deleted file mode 100644
index 3bb4ccd9d772..000000000000
--- a/contrib/ncurses/form/f_trace.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: f_trace.c,v 1.1 2004/12/25 23:28:49 tom Exp $")
-
-NCURSES_EXPORT(FIELD **)
-_nc_retrace_field_ptr(FIELD **code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(FIELD *)
-_nc_retrace_field(FIELD *code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(FIELDTYPE *)
-_nc_retrace_field_type(FIELDTYPE *code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(FORM *)
-_nc_retrace_form(FORM *code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(Form_Hook)
-_nc_retrace_form_hook(Form_Hook code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
diff --git a/contrib/ncurses/form/fld_arg.c b/contrib/ncurses/form/fld_arg.c
deleted file mode 100644
index f79a157aa5fc..000000000000
--- a/contrib/ncurses/form/fld_arg.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_arg.c,v 1.11 2004/12/25 22:20:18 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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 *))
-{
- T((T_CALLED("set_fieldtype_arg(%p,%p,%p,%p)"),
- typ, make_arg, copy_arg, free_arg));
-
- if (typ != 0 && make_arg != (void *)0)
- {
- typ->status |= _HAS_ARGS;
- typ->makearg = make_arg;
- typ->copyarg = copy_arg;
- typ->freearg = free_arg;
- RETURN(E_OK);
- }
- RETURN(E_BAD_ARGUMENT);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| 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)
-{
- T((T_CALLED("field_arg(%p)"), field));
- returnVoidPtr(Normalize_Field(field)->arg);
-}
-
-/* fld_arg.c ends here */
diff --git a/contrib/ncurses/form/fld_attr.c b/contrib/ncurses/form/fld_attr.c
deleted file mode 100644
index c9c08384bc7f..000000000000
--- a/contrib/ncurses/form/fld_attr.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_attr.c,v 1.10 2004/12/11 21:33:15 tom Exp $")
-
-/*----------------------------------------------------------------------------
- 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;\
- T((T_CALLED("set_field_" #name "(%p,%s)"), field, _traceattr(attr)));\
- if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\
- {\
- Normalize_Field( field );\
- if (field != 0) \
- { \
- 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)\
-{\
- T((T_CALLED("field_" #name "(%p)"), field));\
- returnAttr( 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/contrib/ncurses/form/fld_current.c b/contrib/ncurses/form/fld_current.c
deleted file mode 100644
index 7c3a90af511d..000000000000
--- a/contrib/ncurses/form/fld_current.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_current.c,v 1.11 2004/12/25 22:40:13 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("set_current_field(%p,%p)"), form, field));
- if (form == 0 || field == 0)
- {
- RETURN(E_BAD_ARGUMENT);
- }
- else if ((form != field->form) || Field_Is_Not_Selectable(field))
- {
- RETURN(E_REQUEST_DENIED);
- }
- else if ((form->status & _POSTED) == 0)
- {
- form->current = field;
- form->curpage = field->page;
- }
- else
- {
- if ((form->status & _IN_DRIVER) != 0)
- {
- 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, (int)field->page, field);
- Call_Hook(form, forminit);
- }
- else
- {
- err = _nc_Set_Current_Field(form, field);
- }
- Call_Hook(form, fieldinit);
- (void)_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)
-{
- T((T_CALLED("current_field(%p)"), form));
- returnField(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)
-{
- T((T_CALLED("field_index(%p)"), field));
- returnCode((field != 0 && field->form != 0) ? (int)field->index : -1);
-}
-
-/* fld_current.c ends here */
diff --git a/contrib/ncurses/form/fld_def.c b/contrib/ncurses/form/fld_def.c
deleted file mode 100644
index 3559ba67241c..000000000000
--- a/contrib/ncurses/form/fld_def.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_def.c,v 1.36 2007/10/13 19:29:58 tom Exp $")
-
-/* this can't be readonly */
-static FIELD default_field =
-{
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* frow */
- 0, /* fcol */
- 0, /* drows */
- 0, /* dcols */
- 0, /* maxgrow */
- 0, /* nrow */
- 0, /* nbuf */
- NO_JUSTIFICATION, /* just */
- 0, /* page */
- 0, /* index */
- (int)' ', /* pad */
- A_NORMAL, /* fore */
- A_NORMAL, /* back */
- ALL_FIELD_OPTS, /* opts */
- (FIELD *)0, /* snext */
- (FIELD *)0, /* sprev */
- (FIELD *)0, /* link */
- (FORM *)0, /* form */
- (FIELDTYPE *)0, /* type */
- (char *)0, /* arg */
- (FIELD_CELL *)0, /* buf */
- (char *)0 /* usrptr */
- NCURSES_FIELD_EXTENSION
-};
-
-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-dependent argument list to construct
-| it.
-|
-| Return Values : Pointer to argument structure. Maybe NULL.
-| In case of an error in *err an error counter is increased.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument *)
-_nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
-{
- TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
-
- if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
- {
- assert(err != 0 && ap != (va_list *)0);
- if ((typ->status & _LINKED_TYPE) != 0)
- {
- p = typeMalloc(TypeArgument, 1);
-
- if (p != 0)
- {
- 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 != (void *)0);
- 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 error counter is increased.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument *)
-_nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
-{
- TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
-
- if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
- {
- assert(err != 0 && argp != 0);
- if ((typ->status & _LINKED_TYPE) != 0)
- {
- p = typeMalloc(TypeArgument, 1);
-
- if (p != 0)
- {
- 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 != (void *)0)
- {
- 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 != 0 && (typ->status & _HAS_ARGS) != 0)
- {
- if ((typ->status & _LINKED_TYPE) != 0)
- {
- assert(argp != 0);
- _nc_Free_Argument(typ->left, argp->left);
- _nc_Free_Argument(typ->right, argp->right);
- free(argp);
- }
- else
- {
- if (typ->freearg != (void *)0)
- {
- typ->freearg((void *)argp);
- }
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool _nc_Copy_Type( FIELD *dst, FIELD const *src )
-|
-| Description : Copy argument structure of field src to field dst
-|
-| Return Values : TRUE - copy worked
-| FALSE - error occurred
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-_nc_Copy_Type(FIELD *dst, FIELD const *src)
-{
- int err = 0;
-
- assert(dst != 0 && src != 0);
-
- dst->type = src->type;
- dst->arg = (void *)_nc_Copy_Argument(src->type, (TypeArgument *)(src->arg), &err);
-
- if (err != 0)
- {
- _nc_Free_Argument(dst->type, (TypeArgument *)(dst->arg));
- dst->type = (FIELDTYPE *)0;
- dst->arg = (void *)0;
- return FALSE;
- }
- else
- {
- if (dst->type != 0)
- {
- 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 != 0);
- if (field->type != 0)
- {
- field->type->ref--;
- }
- _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *new_field( int rows, int cols,
-| 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)
-{
- static const FIELD_CELL blank = BLANK;
- static const FIELD_CELL zeros = ZEROS;
-
- FIELD *New_Field = (FIELD *)0;
- int err = E_BAD_ARGUMENT;
-
- T((T_CALLED("new_field(%d,%d,%d,%d,%d,%d)"), rows, cols, frow, fcol, nrow, nbuf));
- if (rows > 0 &&
- cols > 0 &&
- frow >= 0 &&
- fcol >= 0 &&
- nrow >= 0 &&
- nbuf >= 0 &&
- ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field = typeMalloc(FIELD, 1)) != 0)
- {
- T((T_CREATE("field %p"), New_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 USE_WIDEC_SUPPORT
- New_Field->working = newpad(1, Buffer_Length(New_Field) + 1);
- New_Field->expanded = typeCalloc(char *, 1 + (unsigned)nbuf);
-#endif
-
- if (_nc_Copy_Type(New_Field, &default_field))
- {
- size_t len;
-
- len = Total_Buffer_Size(New_Field);
- if ((New_Field->buf = (FIELD_CELL *)malloc(len)))
- {
- /* Prefill buffers with blanks and insert terminating zeroes
- between buffers */
- int i, j;
- int cells = Buffer_Length(New_Field);
-
- for (i = 0; i <= New_Field->nbuf; i++)
- {
- FIELD_CELL *buffer = &(New_Field->buf[(cells + 1) * i]);
-
- for (j = 0; j < cells; ++j)
- {
- buffer[j] = blank;
- }
- buffer[j] = zeros;
- }
- returnField(New_Field);
- }
- }
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR(err);
- returnField((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)
-{
- T((T_CALLED("free_field(%p)"), field));
- if (!field)
- {
- RETURN(E_BAD_ARGUMENT);
- }
- else if (field->form != 0)
- {
- RETURN(E_CONNECTED);
- }
- else if (field == field->link)
- {
- if (field->buf != 0)
- free(field->buf);
- }
- else
- {
- FIELD *f;
-
- for (f = field; f->link != field; f = f->link)
- {
- }
- f->link = field->link;
- }
- _nc_Free_Type(field);
-#if USE_WIDEC_SUPPORT
- if (field->expanded != 0)
- {
- int n;
-
- for (n = 0; n <= field->nbuf; ++n)
- {
- FreeIfNeeded(field->expanded[n]);
- }
- free(field->expanded);
- (void)delwin(field->working);
- }
-#endif
- free(field);
- RETURN(E_OK);
-}
-
-/* fld_def.c ends here */
diff --git a/contrib/ncurses/form/fld_dup.c b/contrib/ncurses/form/fld_dup.c
deleted file mode 100644
index bbc38a3eb715..000000000000
--- a/contrib/ncurses/form/fld_dup.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_dup.c,v 1.12 2007/10/13 19:30:21 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("dup_field(%p,%d,%d)"), field, frow, fcol));
- if (field && (frow >= 0) && (fcol >= 0) &&
- ((err = E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
- (New_Field = typeMalloc(FIELD, 1)))
- {
- T((T_CREATE("field %p"), New_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 i, len;
-
- len = Total_Buffer_Size(New_Field);
- if ((New_Field->buf = (FIELD_CELL *)malloc(len)))
- {
- for (i = 0; i < len; ++i)
- New_Field->buf[i] = field->buf[i];
- returnField(New_Field);
- }
- }
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR(err);
- returnField((FIELD *)0);
-}
-
-/* fld_dup.c ends here */
diff --git a/contrib/ncurses/form/fld_ftchoice.c b/contrib/ncurses/form/fld_ftchoice.c
deleted file mode 100644
index 9237f96d1d0c..000000000000
--- a/contrib/ncurses/form/fld_ftchoice.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_ftchoice.c,v 1.9 2004/12/11 21:44:57 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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 *))
-{
- T((T_CALLED("set_fieldtype_choice(%p,%p,%p)"), typ, next_choice, prev_choice));
-
- if (!typ || !next_choice || !prev_choice)
- RETURN(E_BAD_ARGUMENT);
-
- typ->status |= _HAS_CHOICE;
- typ->next = next_choice;
- typ->prev = prev_choice;
- RETURN(E_OK);
-}
-
-/* fld_ftchoice.c ends here */
diff --git a/contrib/ncurses/form/fld_ftlink.c b/contrib/ncurses/form/fld_ftlink.c
deleted file mode 100644
index 4ed2219262aa..000000000000
--- a/contrib/ncurses/form/fld_ftlink.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_ftlink.c,v 1.13 2007/10/13 19:30:35 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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 occurred.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELDTYPE *)
-link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2)
-{
- FIELDTYPE *nftyp = (FIELDTYPE *)0;
-
- T((T_CALLED("link_fieldtype(%p,%p)"), type1, type2));
- if (type1 && type2)
- {
- nftyp = typeMalloc(FIELDTYPE, 1);
-
- if (nftyp)
- {
- T((T_CREATE("fieldtype %p"), 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);
- }
- returnFieldType(nftyp);
-}
-
-/* fld_ftlink.c ends here */
diff --git a/contrib/ncurses/form/fld_info.c b/contrib/ncurses/form/fld_info.c
deleted file mode 100644
index 324198c42bae..000000000000
--- a/contrib/ncurses/form/fld_info.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_info.c,v 1.10 2004/12/11 22:24:57 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("field_info(%p,%p,%p,%p,%p,%p,%p)"),
- field,
- rows, cols,
- frow, fcol,
- nrow, nbuf));
-
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (rows)
- *rows = field->rows;
- if (cols)
- *cols = field->cols;
- if (frow)
- *frow = field->frow;
- if (fcol)
- *fcol = field->fcol;
- if (nrow)
- *nrow = field->nrow;
- if (nbuf)
- *nbuf = field->nbuf;
- 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)
-{
- T((T_CALLED("dynamic_field_info(%p,%p,%p,%p)"), field, drows, dcols, maxgrow));
-
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (drows)
- *drows = field->drows;
- if (dcols)
- *dcols = field->dcols;
- if (maxgrow)
- *maxgrow = field->maxgrow;
-
- RETURN(E_OK);
-}
-
-/* fld_info.c ends here */
diff --git a/contrib/ncurses/form/fld_just.c b/contrib/ncurses/form/fld_just.c
deleted file mode 100644
index e021fb1cfb92..000000000000
--- a/contrib/ncurses/form/fld_just.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_just.c,v 1.11 2004/12/11 22:55:48 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("set_field_just(%p,%d)"), field, just));
-
- if ((just == NO_JUSTIFICATION) ||
- (just == JUSTIFY_LEFT) ||
- (just == JUSTIFY_CENTER) ||
- (just == JUSTIFY_RIGHT))
- {
- Normalize_Field(field);
- 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)
-{
- T((T_CALLED("field_just(%p)"), field));
- returnCode(Normalize_Field(field)->just);
-}
-
-/* fld_just.c ends here */
diff --git a/contrib/ncurses/form/fld_link.c b/contrib/ncurses/form/fld_link.c
deleted file mode 100644
index 0aac7db78d12..000000000000
--- a/contrib/ncurses/form/fld_link.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_link.c,v 1.11 2007/10/13 19:30:43 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("link_field(%p,%d,%d)"), field, frow, fcol));
- if (field && (frow >= 0) && (fcol >= 0) &&
- ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field = typeMalloc(FIELD, 1)))
- {
- T((T_CREATE("field %p"), New_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))
- returnField(New_Field);
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR(err);
- returnField((FIELD *)0);
-}
-
-/* fld_link.c ends here */
diff --git a/contrib/ncurses/form/fld_max.c b/contrib/ncurses/form/fld_max.c
deleted file mode 100644
index 7f5352e00d6e..000000000000
--- a/contrib/ncurses/form/fld_max.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_max.c,v 1.9 2004/12/11 21:51:54 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_max_field(%p,%d)"), field, maxgrow));
-
- if (!field || (maxgrow < 0))
- RETURN(E_BAD_ARGUMENT);
- else
- {
- bool single_line_field = Single_Line_Field(field);
-
- if (maxgrow > 0)
- {
- if ((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/contrib/ncurses/form/fld_move.c b/contrib/ncurses/form/fld_move.c
deleted file mode 100644
index d9ceaaec2c9c..000000000000
--- a/contrib/ncurses/form/fld_move.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_move.c,v 1.9 2004/12/11 21:52:44 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("move_field(%p,%d,%d)"), field, frow, 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/contrib/ncurses/form/fld_newftyp.c b/contrib/ncurses/form/fld_newftyp.c
deleted file mode 100644
index c2984b10e3c7..000000000000
--- a/contrib/ncurses/form/fld_newftyp.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_newftyp.c,v 1.15 2007/10/13 19:30:55 tom Exp $")
-
-static FIELDTYPE const default_fieldtype =
-{
- 0, /* status */
- 0L, /* reference count */
- (FIELDTYPE *)0, /* pointer to left operand */
- (FIELDTYPE *)0, /* pointer to right operand */
- NULL, /* makearg function */
- NULL, /* copyarg function */
- NULL, /* freearg function */
- NULL, /* field validation function */
- NULL, /* Character check function */
- NULL, /* enumerate next function */
- NULL /* enumerate previous function */
-};
-
-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 occurred
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELDTYPE *)
-new_fieldtype(bool (*const field_check) (FIELD *, const void *),
- bool (*const char_check) (int, const void *))
-{
- FIELDTYPE *nftyp = (FIELDTYPE *)0;
-
- T((T_CALLED("new_fieldtype(%p,%p)"), field_check, char_check));
- if ((field_check) || (char_check))
- {
- nftyp = typeMalloc(FIELDTYPE, 1);
-
- if (nftyp)
- {
- T((T_CREATE("fieldtype %p"), nftyp));
- *nftyp = default_fieldtype;
- nftyp->fcheck = field_check;
- nftyp->ccheck = char_check;
- }
- else
- {
- SET_ERROR(E_SYSTEM_ERROR);
- }
- }
- else
- {
- SET_ERROR(E_BAD_ARGUMENT);
- }
- returnFieldType(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)
-{
- T((T_CALLED("free_fieldtype(%p)"), 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/contrib/ncurses/form/fld_opts.c b/contrib/ncurses/form/fld_opts.c
deleted file mode 100644
index 3c881acf081a..000000000000
--- a/contrib/ncurses/form/fld_opts.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_opts.c,v 1.11 2004/12/11 21:55:46 tom Exp $")
-
-/*----------------------------------------------------------------------------
- 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;
-
- T((T_CALLED("set_field_opts(%p,%d)"), field, opts));
-
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- res = _nc_Synchronize_Options(Normalize_Field(field), opts);
- 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)
-{
- T((T_CALLED("field_opts(%p)"), field));
-
- returnCode(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;
-
- T((T_CALLED("field_opts_on(%p,%d)"), field, opts));
-
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- {
- Normalize_Field(field);
- res = _nc_Synchronize_Options(field, field->opts | opts);
- }
- 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;
-
- T((T_CALLED("field_opts_off(%p,%d)"), field, opts));
-
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- {
- Normalize_Field(field);
- res = _nc_Synchronize_Options(field, field->opts & ~opts);
- }
- RETURN(res);
-}
-
-/* fld_opts.c ends here */
diff --git a/contrib/ncurses/form/fld_pad.c b/contrib/ncurses/form/fld_pad.c
deleted file mode 100644
index 63d8ad1cdbfa..000000000000
--- a/contrib/ncurses/form/fld_pad.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_pad.c,v 1.9 2004/12/11 21:56:49 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("set_field_pad(%p,%d)"), field, ch));
-
- Normalize_Field(field);
- if (isprint(UChar(ch)))
- {
- if (field->pad != ch)
- {
- field->pad = ch;
- res = _nc_Synchronize_Attributes(field);
- }
- 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)
-{
- T((T_CALLED("field_pad(%p)"), field));
-
- returnCode(Normalize_Field(field)->pad);
-}
-
-/* fld_pad.c ends here */
diff --git a/contrib/ncurses/form/fld_page.c b/contrib/ncurses/form/fld_page.c
deleted file mode 100644
index e1af4962b148..000000000000
--- a/contrib/ncurses/form/fld_page.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_page.c,v 1.9 2004/12/11 21:58:19 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_new_page(%p,%d)"), field, 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)
-{
- T((T_CALLED("new_page(%p)"), field));
-
- returnBool((Normalize_Field(field)->status & _NEWPAGE) ? TRUE : FALSE);
-}
-
-/* fld_page.c ends here */
diff --git a/contrib/ncurses/form/fld_stat.c b/contrib/ncurses/form/fld_stat.c
deleted file mode 100644
index b85b4d55f244..000000000000
--- a/contrib/ncurses/form/fld_stat.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_stat.c,v 1.11 2004/12/11 22:28:00 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_field_status(%p,%d)"), field, status));
-
- Normalize_Field(field);
-
- if (status)
- field->status |= _CHANGED;
- else
- field->status &= ~_CHANGED;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("field_status(%p)"), field));
-
- returnBool((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
-}
-
-/* fld_stat.c ends here */
diff --git a/contrib/ncurses/form/fld_type.c b/contrib/ncurses/form/fld_type.c
deleted file mode 100644
index c9a3fbe5c804..000000000000
--- a/contrib/ncurses/form/fld_type.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_type.c,v 1.15 2004/12/25 22:24:10 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("set_field_type(%p,%p)"), field, type));
-
- va_start(ap, type);
-
- Normalize_Field(field);
- _nc_Free_Type(field);
-
- field->type = type;
- field->arg = (void *)_nc_Make_Argument(field->type, &ap, &err);
-
- 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)
-{
- T((T_CALLED("field_type(%p)"), field));
- returnFieldType(Normalize_Field(field)->type);
-}
-
-/* fld_type.c ends here */
diff --git a/contrib/ncurses/form/fld_user.c b/contrib/ncurses/form/fld_user.c
deleted file mode 100644
index 323622c7b379..000000000000
--- a/contrib/ncurses/form/fld_user.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fld_user.c,v 1.15 2004/12/25 22:24:50 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_field_userptr(%p,%p)"), field, 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)
-{
- T((T_CALLED("field_userptr(%p)"), field));
- returnVoidPtr(Normalize_Field(field)->usrptr);
-}
-
-/* fld_user.c ends here */
diff --git a/contrib/ncurses/form/form.h b/contrib/ncurses/form/form.h
deleted file mode 100644
index a4691a86e8e7..000000000000
--- a/contrib/ncurses/form/form.h
+++ /dev/null
@@ -1,403 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/* $Id: form.h,v 0.20 2004/12/04 22:22:10 tom Exp $ */
-
-#ifndef FORM_H
-#define FORM_H
-
-#include <curses.h>
-#include <eti.h>
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-#ifndef FORM_PRIV_H
-typedef void *FIELD_CELL;
-#endif
-
-#ifndef NCURSES_FIELD_INTERNALS
-#define NCURSES_FIELD_INTERNALS /* nothing */
-#endif
-
-typedef int Form_Options;
-typedef int Field_Options;
-
- /**********
- * _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; /* off-screen rows */
- short nbuf; /* additional buffers */
- short just; /* justification */
- short page; /* page on form */
- short index; /* into form -> field */
- int pad; /* pad character */
- chtype fore; /* foreground attribute */
- chtype back; /* background attribute */
- Field_Options opts; /* options */
- struct fieldnode * snext; /* sorted order pointer */
- struct fieldnode * sprev; /* sorted order pointer */
- struct fieldnode * link; /* linked field chain */
- struct formnode * form; /* containing form */
- struct typenode * type; /* field type */
- void * arg; /* argument for type */
- FIELD_CELL * buf; /* field buffers */
- void * usrptr; /* user pointer */
- /*
- * The wide-character configuration requires extra information. Because
- * there are existing applications that manipulate the members of FIELD
- * directly, we cannot make the struct opaque. Offsets of members up to
- * this point are the same in the narrow- and wide-character configuration.
- * But note that the type of buf depends on the configuration, and is made
- * opaque for that reason.
- */
- NCURSES_FIELD_INTERNALS
-} FIELD;
-
- /**************
- * 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 (0x0001U)
-#define O_ACTIVE (0x0002U)
-#define O_PUBLIC (0x0004U)
-#define O_EDIT (0x0008U)
-#define O_WRAP (0x0010U)
-#define O_BLANK (0x0020U)
-#define O_AUTOSKIP (0x0040U)
-#define O_NULLOK (0x0080U)
-#define O_PASSOK (0x0100U)
-#define O_STATIC (0x0200U)
-
-/* form options */
-#define O_NL_OVERLOAD (0x0001U)
-#define O_BS_OVERLOAD (0x0002U)
-
-/* 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 word 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 *));
-extern NCURSES_EXPORT(FIELDTYPE *) 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/contrib/ncurses/form/form.priv.h b/contrib/ncurses/form/form.priv.h
deleted file mode 100644
index e8617f1d5747..000000000000
--- a/contrib/ncurses/form/form.priv.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/* $Id: form.priv.h,v 0.26 2006/12/17 19:47:09 tom Exp $ */
-
-#ifndef FORM_PRIV_H
-#define FORM_PRIV_H 1
-
-#include "curses.priv.h"
-#include "mf_common.h"
-
-#if USE_WIDEC_SUPPORT
-#include <wchar.h>
-
-#if HAVE_WCTYPE_H
-#include <wctype.h>
-#endif
-
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
-#define FIELD_CELL NCURSES_CH_T
-
-#define NCURSES_FIELD_INTERNALS char** expanded; WINDOW *working;
-#define NCURSES_FIELD_EXTENSION , (char **)0, (WINDOW *)0
-
-#else
-
-#define FIELD_CELL char
-
-#define NCURSES_FIELD_EXTENSION /* nothing */
-
-#endif
-
-#include "form.h"
-
-/* form status values */
-#define _OVLMODE (0x04U) /* Form is in overlay mode */
-#define _WINDOW_MODIFIED (0x10U) /* Current field window has been modified */
-#define _FCHECK_REQUIRED (0x20U) /* Current field needs validation */
-
-/* field status values */
-#define _CHANGED (0x01U) /* Field has been changed */
-#define _NEWTOP (0x02U) /* Vertical scrolling occurred */
-#define _NEWPAGE (0x04U) /* field begins new page of form */
-#define _MAY_GROW (0x08U) /* dynamic field may still grow */
-
-/* fieldtype status values */
-#define _LINKED_TYPE (0x01U) /* Type is a linked type */
-#define _HAS_ARGS (0x02U) /* Type has arguments */
-#define _HAS_CHOICE (0x04U) /* Type has choice methods */
-#define _RESIDENT (0x08U) /* Type is built-in */
-
-/* This are the field options required to be a selectable field in field
- navigation requests */
-#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
-
-/* If form is NULL replace form argument by default-form */
-#define Normalize_Form(form) \
- ((form) = (form != 0) ? (form) : _nc_Default_Form)
-
-/* If field is NULL replace field argument by default-field */
-#define Normalize_Field(field) \
- ((field) = (field != 0) ? (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) * sizeof(FIELD_CELL) )
-
-/* Logic to determine whether or not a field is single lined */
-#define Single_Line_Field(field) \
- (((field)->rows + (field)->nrow) == 1)
-
-/* Logic to determine whether or not a field is selectable */
-#define Field_Is_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)==O_SELECTABLE)
-#define Field_Is_Not_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)!=O_SELECTABLE)
-
-typedef struct typearg
- {
- struct typearg *left;
- struct typearg *right;
- }
-TypeArgument;
-
-/* 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 (Field_Options)( \
- 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)
-
-#define C_ZEROS '\0'
-
-extern NCURSES_EXPORT_VAR(const FIELDTYPE *) _nc_Default_FieldType;
-
-extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*);
-extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*);
-extern NCURSES_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*);
-extern NCURSES_EXPORT(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*);
-
-#if USE_WIDEC_SUPPORT
-extern NCURSES_EXPORT(wchar_t *) _nc_Widen_String(char *, int *);
-#endif
-
-#ifdef TRACE
-
-#define returnField(code) TRACE_RETURN(code,field)
-#define returnFieldPtr(code) TRACE_RETURN(code,field_ptr)
-#define returnForm(code) TRACE_RETURN(code,form)
-#define returnFieldType(code) TRACE_RETURN(code,field_type)
-#define returnFormHook(code) TRACE_RETURN(code,form_hook)
-
-extern NCURSES_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **);
-extern NCURSES_EXPORT(FIELD *) _nc_retrace_field (FIELD *);
-extern NCURSES_EXPORT(FIELDTYPE *) _nc_retrace_field_type (FIELDTYPE *);
-extern NCURSES_EXPORT(FORM *) _nc_retrace_form (FORM *);
-extern NCURSES_EXPORT(Form_Hook) _nc_retrace_form_hook (Form_Hook);
-
-#else /* !TRACE */
-
-#define returnFieldPtr(code) return code
-#define returnFieldType(code) return code
-#define returnField(code) return code
-#define returnForm(code) return code
-#define returnFormHook(code) return code
-
-#endif /* TRACE/!TRACE */
-
-/*
- * Use Check_CTYPE_Field() to simplify FIELDTYPE's that use only the ccheck()
- * function.
- */
-#if USE_WIDEC_SUPPORT
-#define Check_CTYPE_Field(result, buffer, width, ccheck) \
- while (*buffer && *buffer == ' ') \
- buffer++; \
- if (*buffer) \
- { \
- bool blank = FALSE; \
- int len; \
- int n; \
- wchar_t *list = _nc_Widen_String((char *)buffer, &len); \
- if (list != 0) \
- { \
- result = TRUE; \
- for (n = 0; n < len; ++n) \
- { \
- if (blank) \
- { \
- if (list[n] != ' ') \
- { \
- result = FALSE; \
- break; \
- } \
- } \
- else if (list[n] == ' ') \
- { \
- blank = TRUE; \
- result = (n + 1 >= width); \
- } \
- else if (!ccheck(list[n], NULL)) \
- { \
- result = FALSE; \
- break; \
- } \
- } \
- free(list); \
- } \
- }
-#else
-#define Check_CTYPE_Field(result, buffer, width, ccheck) \
- while (*buffer && *buffer == ' ') \
- buffer++; \
- if (*buffer) \
- { \
- unsigned char *s = buffer; \
- int l = -1; \
- while (*buffer && ccheck(*buffer, NULL)) \
- buffer++; \
- l = (int)(buffer - s); \
- while (*buffer && *buffer == ' ') \
- buffer++; \
- result = ((*buffer || (l < width)) ? FALSE : TRUE); \
- }
-#endif
-
-#endif /* FORM_PRIV_H */
diff --git a/contrib/ncurses/form/frm_cursor.c b/contrib/ncurses/form/frm_cursor.c
deleted file mode 100644
index 18dabab20889..000000000000
--- a/contrib/ncurses/form/frm_cursor.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_cursor.c,v 1.9 2004/12/11 22:01:03 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("pos_form_cursor(%p)"), form));
-
- 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/contrib/ncurses/form/frm_data.c b/contrib/ncurses/form/frm_data.c
deleted file mode 100644
index 787a17919f04..000000000000
--- a/contrib/ncurses/form/frm_data.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_data.c,v 1.14 2005/11/26 15:34:01 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool data_behind(const FORM *form)
-|
-| Description : Check for off-screen data behind. This is nearly trivial
-| because the beginning 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;
-
- T((T_CALLED("data_behind(%p)"), form));
-
- 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;
- }
- }
- returnBool(result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char * Only_Padding(
-| WINDOW *w,
-| int len,
-| int pad)
-|
-| Description : Test if 'length' cells starting at the current position
-| contain a padding character.
-|
-| Return Values : true if only padding cells are found
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static bool
-Only_Padding(WINDOW *w, int len, int pad)
-{
- bool result = TRUE;
- int y, x, j;
- FIELD_CELL cell;
-
- getyx(w, y, x);
- for (j = 0; j < len; ++j)
- {
- if (wmove(w, y, x + j) != ERR)
- {
-#if USE_WIDEC_SUPPORT
- if (win_wch(w, &cell) != ERR)
- {
- if ((chtype)CharOf(cell) != ChCharOf(pad)
- || cell.chars[1] != 0)
- {
- result = FALSE;
- break;
- }
- }
-#else
- cell = winch(w);
- if (ChCharOf(cell) != ChCharOf(pad))
- {
- result = FALSE;
- break;
- }
-#endif
- }
- else
- {
- /* if an error, return true: no non-padding text found */
- break;
- }
- }
- /* no need to reset the cursor position; caller does this */
- return result;
-}
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("data_ahead(%p)"), form));
-
- if (form && (form->status & _POSTED) && form->current)
- {
- FIELD *field;
- bool cursor_moved = FALSE;
- int pos;
-
- field = form->current;
- assert(form->w);
-
- 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);
- if (Only_Padding(form->w, check_len, field->pad))
- 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++;
- if (!Only_Padding(form->w, field->cols, field->pad))
- {
- result = TRUE;
- break;
- }
- }
- }
-
- if (cursor_moved)
- wmove(form->w, form->currow, form->curcol);
- }
- returnBool(result);
-}
-
-/* frm_data.c ends here */
diff --git a/contrib/ncurses/form/frm_def.c b/contrib/ncurses/form/frm_def.c
deleted file mode 100644
index c2044a39dccd..000000000000
--- a/contrib/ncurses/form/frm_def.c
+++ /dev/null
@@ -1,409 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_def.c,v 1.22 2007/10/13 19:31:17 tom Exp $")
-
-/* this can't be readonly */
-static FORM default_form =
-{
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* currow */
- 0, /* curcol */
- 0, /* toprow */
- 0, /* begincol */
- -1, /* maxfield */
- -1, /* maxpage */
- -1, /* curpage */
- ALL_FORM_OPTS, /* opts */
- (WINDOW *)0, /* win */
- (WINDOW *)0, /* sub */
- (WINDOW *)0, /* w */
- (FIELD **)0, /* field */
- (FIELD *)0, /* current */
- (_PAGE *) 0, /* page */
- (char *)0, /* usrptr */
- NULL, /* forminit */
- NULL, /* formterm */
- NULL, /* fieldinit */
- NULL /* fieldterm */
-};
-
-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;
-
- T((T_CALLED("Connect_Fields(%p,%p)"), form, fields));
-
- 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 || (short)field_cnt < 0)
- RETURN(E_BAD_ARGUMENT);
-
- /* allocate page structures */
- if ((pg = typeMalloc(_PAGE, page_nr)) != (_PAGE *) 0)
- {
- T((T_CREATE("_PAGE %p"), pg));
- 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
-| E_BAD_ARGUMENT - Invalid form pointer or field array
-| E_CONNECTED - a field is already connected
-| E_SYSTEM_ERROR - not enough memory
-+--------------------------------------------------------------------------*/
-NCURSES_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 occurred.
-! Set errno:
-| E_OK - success
-| E_BAD_ARGUMENT - Invalid form pointer or field array
-| E_CONNECTED - a field is already connected
-| E_SYSTEM_ERROR - not enough memory
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FORM *)
-new_form(FIELD **fields)
-{
- int err = E_SYSTEM_ERROR;
-
- FORM *form = typeMalloc(FORM, 1);
-
- T((T_CALLED("new_form(%p)"), fields));
- if (form)
- {
- T((T_CREATE("form %p"), form));
- *form = *_nc_Default_Form;
- if ((err = Associate_Fields(form, fields)) != E_OK)
- {
- free_form(form);
- form = (FORM *)0;
- }
- }
-
- if (!form)
- SET_ERROR(err);
-
- returnForm(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)
-{
- T((T_CALLED("free_form(%p)"), 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 or field array
-| E_CONNECTED - a field is already connected
-| E_POSTED - form is posted
-| E_SYSTEM_ERROR - not enough memory
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_fields(FORM *form, FIELD **fields)
-{
- FIELD **old;
- int res;
-
- T((T_CALLED("set_form_fields(%p,%p)"), form, fields));
-
- 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)
-{
- T((T_CALLED("form_field(%p)"), form));
- returnFieldPtr(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)
-{
- T((T_CALLED("field_count(%p)"), form));
-
- returnCode(Normalize_Form(form)->maxfield);
-}
-
-/* frm_def.c ends here */
diff --git a/contrib/ncurses/form/frm_driver.c b/contrib/ncurses/form/frm_driver.c
deleted file mode 100644
index 0c0912576dbb..000000000000
--- a/contrib/ncurses/form/frm_driver.c
+++ /dev/null
@@ -1,4581 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_driver.c,v 1.86 2008/01/19 20:11:03 tom Exp $")
-
-/*----------------------------------------------------------------------------
- This is the core module of the form library. It contains the majority
- of the driver routines as well as the form_driver function.
-
- 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_ )
- Essentially 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_ )
- Essentially 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 behavior 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 behavior
-of the original SVr4 implementation, although in some areas it is quite
-clear that this isn't the most appropriate way. As far as possible this
-sources will allow you to build a forms lib that behaves quite similar
-to SVr4, but now and in the future we will give you better options.
-Perhaps at some time we will make this configurable at runtime.
-*/
-
-/* Implement a more user-friendly previous/next word behavior */
-#define FRIENDLY_PREV_NEXT_WORD (1)
-/* Fix the wrong behavior 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)
-
-#if USE_WIDEC_SUPPORT
-#define myADDNSTR(w, s, n) wadd_wchnstr(w, s, n)
-#define myINSNSTR(w, s, n) wins_wchnstr(w, s, n)
-#define myINNSTR(w, s, n) fix_wchnstr(w, s, n)
-#define myWCWIDTH(w, y, x) cell_width(w, y, x)
-#else
-#define myADDNSTR(w, s, n) waddnstr(w, s, n)
-#define myINSNSTR(w, s, n) winsnstr(w, s, n)
-#define myINNSTR(w, s, n) winnstr(w, s, n)
-#define myWCWIDTH(w, y, x) 1
-#endif
-
-/*----------------------------------------------------------------------------
- Forward references to some internally used static functions
- --------------------------------------------------------------------------*/
-static int Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form);
-static int FN_Next_Field(FORM *form);
-static int FN_Previous_Field(FORM *form);
-static int 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 whether 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))
-
-/*----------------------------------------------------------------------------
- Useful constants
- --------------------------------------------------------------------------*/
-static FIELD_CELL myBLANK = BLANK;
-static FIELD_CELL myZEROS;
-
-#ifdef TRACE
-static void
-check_pos(FORM *form, int lineno)
-{
- int y, x;
-
- if (form && form->w)
- {
- getyx(form->w, y, x);
- if (y != form->currow || x != form->curcol)
- {
- T(("CHECKPOS %s@%d have position %d,%d vs want %d,%d",
- __FILE__, lineno,
- y, x,
- form->currow, form->curcol));
- }
- }
-}
-#define CHECKPOS(form) check_pos(form, __LINE__)
-#else
-#define CHECKPOS(form) /* nothing */
-#endif
-
-/*----------------------------------------------------------------------------
- Wide-character special functions
- --------------------------------------------------------------------------*/
-#if USE_WIDEC_SUPPORT
-/* like winsnstr */
-static int
-wins_wchnstr(WINDOW *w, cchar_t *s, int n)
-{
- int code = ERR;
- int y, x;
-
- while (n-- > 0)
- {
- getyx(w, y, x);
- if ((code = wins_wch(w, s++)) != OK)
- break;
- if ((code = wmove(w, y, x + 1)) != OK)
- break;
- }
- return code;
-}
-
-/* win_wchnstr is inconsistent with winnstr, since it returns OK rather than
- * the number of items transferred.
- */
-static int
-fix_wchnstr(WINDOW *w, cchar_t *s, int n)
-{
- int x;
-
- win_wchnstr(w, s, n);
- /*
- * This function is used to extract the text only from the window.
- * Strip attributes and color from the string so they will not be added
- * back when copying the string to the window.
- */
- for (x = 0; x < n; ++x)
- {
- RemAttr(s[x], A_ATTRIBUTES);
- SetPair(s[x], 0);
- }
- return n;
-}
-
-/*
- * Returns the column of the base of the given cell.
- */
-static int
-cell_base(WINDOW *win, int y, int x)
-{
- int result = x;
-
- while (LEGALYX(win, y, x))
- {
- cchar_t *data = &(win->_line[y].text[x]);
-
- if (isWidecBase(CHDEREF(data)) || !isWidecExt(CHDEREF(data)))
- {
- result = x;
- break;
- }
- --x;
- }
- return result;
-}
-
-/*
- * Returns the number of columns needed for the given cell in a window.
- */
-static int
-cell_width(WINDOW *win, int y, int x)
-{
- int result = 1;
-
- if (LEGALYX(win, y, x))
- {
- cchar_t *data = &(win->_line[y].text[x]);
-
- if (isWidecExt(CHDEREF(data)))
- {
- /* recur, providing the number of columns to the next character */
- result = cell_width(win, y, x - 1);
- }
- else
- {
- result = wcwidth(CharOf(CHDEREF(data)));
- }
- }
- return result;
-}
-
-/*
- * There is no wide-character function such as wdel_wch(), so we must find
- * all of the cells that comprise a multi-column character and delete them
- * one-by-one.
- */
-static void
-delete_char(FORM *form)
-{
- int cells = cell_width(form->w, form->currow, form->curcol);
-
- form->curcol = cell_base(form->w, form->currow, form->curcol);
- wmove(form->w, form->currow, form->curcol);
- while (cells-- > 0)
- {
- wdelch(form->w);
- }
-}
-#define DeleteChar(form) delete_char(form)
-#else
-#define DeleteChar(form) \
- wmove((form)->w, (form)->currow, (form)->curcol), \
- wdelch((form)->w)
-#endif
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| 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
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static FIELD_CELL *
-Get_Start_Of_Data(FIELD_CELL *buf, int blen)
-{
- FIELD_CELL *p = buf;
- FIELD_CELL *end = &buf[blen];
-
- assert(buf && blen >= 0);
- while ((p < end) && ISBLANK(*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.
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static FIELD_CELL *
-After_End_Of_Data(FIELD_CELL *buf, int blen)
-{
- FIELD_CELL *p = &buf[blen];
-
- assert(buf && blen >= 0);
- while ((p > buf) && ISBLANK(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.
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static FIELD_CELL *
-Get_First_Whitespace_Character(FIELD_CELL *buf, int blen)
-{
- FIELD_CELL *p = buf;
- FIELD_CELL *end = &p[blen];
-
- assert(buf && blen >= 0);
- while ((p < end) && !ISBLANK(*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.
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static FIELD_CELL *
-After_Last_Whitespace_Character(FIELD_CELL *buf, int blen)
-{
- FIELD_CELL *p = &buf[blen];
-
- assert(buf && blen >= 0);
- while ((p > buf) && !ISBLANK(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 : -
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static void
-Adjust_Cursor_Position(FORM *form, const FIELD_CELL *pos)
-{
- FIELD *field;
- int idx;
-
- field = form->current;
- assert(pos >= field->buf && field->dcols > 0);
- idx = (int)(pos - field->buf);
-#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 it is a multi-line
-| field, the buffer is split to the lines of the
-| window without any editing.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void
-Buffer_To_Window(const FIELD *field, WINDOW *win)
-{
- int width, height;
- int y, x;
- int len;
- int row;
- FIELD_CELL *pBuffer;
-
- assert(win && field);
-
- getyx(win, y, x);
- 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);
- myADDNSTR(win, pBuffer, len);
- }
- }
- wmove(win, y, x);
-}
-
-/*---------------------------------------------------------------------------
-| 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;
- FIELD_CELL *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 += myINNSTR(win, p + len, field->dcols);
- }
- p[len] = myZEROS;
-
- /* replace visual padding character by blanks in buffer */
- if (pad != C_BLANK)
- {
- int i;
-
- for (i = 0; i < len; i++, p++)
- {
- if ((unsigned long)CharOf(*p) == ChCharOf(pad)
-#if USE_WIDEC_SUPPORT
- && p->chars[1] == 0
-#endif
- )
- *p = myBLANK;
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| 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 : -
-+--------------------------------------------------------------------------*/
-NCURSES_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;
- FIELD_CELL *oldbuf = field->buf;
- FIELD_CELL *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 = (FIELD_CELL *)malloc(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;
- }
- else
- {
- /* Copy all the buffers. This is the reason why we can't just use
- * realloc().
- */
- int i, j;
- FIELD_CELL *old_bp;
- FIELD_CELL *new_bp;
-
- result = TRUE; /* allow sharing of recovery on failure */
-
- T((T_CREATE("fieldcell %p"), newbuf));
- 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);
- for (j = 0; j < old_buflen; ++j)
- new_bp[j] = old_bp[j];
- while (j < new_buflen)
- new_bp[j++] = myBLANK;
- new_bp[new_buflen] = myZEROS;
- }
-
-#if USE_WIDEC_SUPPORT && NCURSES_EXT_FUNCS
- if (wresize(field->working, 1, Buffer_Length(field) + 1) == ERR)
- result = FALSE;
-#endif
-
- if (need_visual_update && result)
- {
- WINDOW *new_window = newpad(field->drows, field->dcols);
-
- if (new_window != 0)
- {
- assert(form != (FORM *)0);
- if (form->w)
- delwin(form->w);
- form->w = new_window;
- Set_Field_Window_Attributes(field, form->w);
- werase(form->w);
- Buffer_To_Window(field, form->w);
- untouchwin(form->w);
- wmove(form->w, form->currow, form->curcol);
- }
- else
- result = FALSE;
- }
-
- if (result)
- {
- 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;
- }
- }
- }
- else
- {
- /* restore old state */
- field->dcols = old_dcols;
- field->drows = old_drows;
- field->buf = oldbuf;
- if ((single_line_field &&
- (field->dcols != field->maxgrow)) ||
- (!single_line_field &&
- (field->drows != field->maxgrow)))
- field->status |= _MAY_GROW;
- free(newbuf);
- }
- }
- }
- return (result);
-}
-
-#ifdef NCURSES_MOUSE_VERSION
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int Field_encloses(FIELD *field, int ry, int rx)
-|
-| Description : Check if the given coordinates lie within the given field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_SYSTEM_ERROR - form has no current field or
-| field-window
-+--------------------------------------------------------------------------*/
-static int
-Field_encloses(FIELD *field, int ry, int rx)
-{
- T((T_CALLED("Field_encloses(%p)"), field));
- if (field != 0
- && field->frow <= ry
- && (field->frow + field->rows) > ry
- && field->fcol <= rx
- && (field->fcol + field->cols) > rx)
- {
- RETURN(E_OK);
- }
- RETURN(E_INVALID_FIELD);
-}
-#endif
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("_nc_Refresh_Current_Field(%p)"), form));
-
- 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 multi-line, 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);
- returnCode(_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)
-{
- FIELD_CELL *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);
- myADDNSTR(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)
-{
- FIELD_CELL *bp;
- int len;
-
- bp = Get_Start_Of_Data(field->buf, Buffer_Length(field));
- len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp);
-
- if (len > 0)
- {
- assert(win);
- wmove(win, 0, 0);
- myADDNSTR(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 (!iscntrl(UChar(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, WINDOW_ATTRS(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 return value.
-|
-| 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;
-
- T((T_CALLED("_nc_Synchronize_Attributes(%p)"), field));
-
- if (!field)
- returnCode(E_BAD_ARGUMENT);
-
- CHECKPOS(field->form);
- 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);
- wmove(form->w, form->currow, form->curcol);
-
- if (field->opts & O_PUBLIC)
- {
- if (Justification_Allowed(field))
- Undo_Justification(field, form->w);
- else
- Buffer_To_Window(field, form->w);
- }
- 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);
- }
- }
- CHECKPOS(form);
- returnCode(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 behavior of the field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_CURRENT - field is the current one
-| 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;
-
- T((T_CALLED("_nc_Synchronize_Options(%p,%#x)"), field, newopts));
-
- if (!field)
- returnCode(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;
- returnCode(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 behavior,
- 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;
- }
-
- returnCode(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
-| E_NOT_CONNECTED - no fields are connected to the form
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Set_Current_Field(FORM *form, FIELD *newfield)
-{
- FIELD *field;
- WINDOW *new_window;
-
- T((T_CALLED("_nc_Set_Current_Field(%p,%p)"), form, newfield));
-
- if (!form || !newfield || !form->current || (newfield->form != form))
- returnCode(E_BAD_ARGUMENT);
-
- if ((form->status & _IN_DRIVER))
- returnCode(E_BAD_STATE);
-
- if (!(form->field))
- returnCode(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)
- returnCode(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;
- returnCode(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 multi-line
-| field this wraps at the end of the line.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the rightmost position
-+--------------------------------------------------------------------------*/
-static int
-IFN_Next_Character(FORM *form)
-{
- FIELD *field = form->current;
- int step = myWCWIDTH(form->w, form->currow, form->curcol);
-
- T((T_CALLED("IFN_Next_Character(%p)"), form));
- if ((form->curcol += step) == field->dcols)
- {
- if ((++(form->currow)) == field->drows)
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field, 1))
- {
- form->curcol = 0;
- returnCode(E_OK);
- }
-#endif
- form->currow--;
-#if GROW_IF_NAVIGATE
- if (Single_Line_Field(field) && Field_Grown(field, 1))
- returnCode(E_OK);
-#endif
- form->curcol -= step;
- returnCode(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- }
- returnCode(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Previous_Character(FORM * form)
-|
-| Description : Move to the previous character in the field. In a
-| multi-line field this wraps and the beginning of the
-| line.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the leftmost position
-+--------------------------------------------------------------------------*/
-static int
-IFN_Previous_Character(FORM *form)
-{
- int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1);
- int oldcol = form->curcol;
-
- T((T_CALLED("IFN_Previous_Character(%p)"), form));
- if ((form->curcol -= amount) < 0)
- {
- if ((--(form->currow)) < 0)
- {
- form->currow++;
- form->curcol = oldcol;
- returnCode(E_REQUEST_DENIED);
- }
- form->curcol = form->current->dcols - 1;
- }
- returnCode(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;
-
- T((T_CALLED("IFN_Next_Line(%p)"), form));
- if ((++(form->currow)) == field->drows)
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field, 1))
- returnCode(E_OK);
-#endif
- form->currow--;
- returnCode(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- returnCode(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)
-{
- T((T_CALLED("IFN_Previous_Line(%p)"), form));
- if ((--(form->currow)) < 0)
- {
- form->currow++;
- returnCode(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- returnCode(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;
- FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form);
- FIELD_CELL *s;
- FIELD_CELL *t;
-
- T((T_CALLED("IFN_Next_Word(%p)"), form));
-
- /* We really need access to the data, so we have to synchronize */
- Synchronize_Buffer(form);
-
- /* Go to the first whitespace after the current position (including
- current position). This is then the starting point to look for the
- next non-blank data */
- s = Get_First_Whitespace_Character(bp, Buffer_Length(field) -
- (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)
- returnCode(E_REQUEST_DENIED);
- else
-#endif
- {
- Adjust_Cursor_Position(form, t);
- returnCode(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;
- FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form);
- FIELD_CELL *s;
- FIELD_CELL *t;
- bool again = FALSE;
-
- T((T_CALLED("IFN_Previous_Word(%p)"), form));
-
- /* We really need access to the data, so we have to synchronize */
- Synchronize_Buffer(form);
-
- s = After_End_Of_Data(field->buf, (int)(bp - field->buf));
- /* s 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)
- returnCode(E_REQUEST_DENIED);
-#endif
- if (again)
- {
- /* and do it again, replacing bp by t */
- s = After_End_Of_Data(field->buf, (int)(t - field->buf));
- t = After_Last_Whitespace_Character(field->buf, (int)(s - field->buf));
-#if !FRIENDLY_PREV_NEXT_WORD
- if (s == t)
- returnCode(E_REQUEST_DENIED);
-#endif
- }
- Adjust_Cursor_Position(form, t);
- returnCode(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;
-
- T((T_CALLED("IFN_Beginning_Of_Field(%p)"), form));
- Synchronize_Buffer(form);
- Adjust_Cursor_Position(form,
- Get_Start_Of_Data(field->buf, Buffer_Length(field)));
- returnCode(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 cursor is positioned on the last
-| character.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int
-IFN_End_Of_Field(FORM *form)
-{
- FIELD *field = form->current;
- FIELD_CELL *pos;
-
- T((T_CALLED("IFN_End_Of_Field(%p)"), form));
- Synchronize_Buffer(form);
- pos = After_End_Of_Data(field->buf, Buffer_Length(field));
- if (pos == (field->buf + Buffer_Length(field)))
- pos--;
- Adjust_Cursor_Position(form, pos);
- returnCode(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;
-
- T((T_CALLED("IFN_Beginning_Of_Line(%p)"), form));
- Synchronize_Buffer(form);
- Adjust_Cursor_Position(form,
- Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form),
- field->dcols));
- returnCode(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;
- FIELD_CELL *pos;
- FIELD_CELL *bp;
-
- T((T_CALLED("IFN_End_Of_Line(%p)"), form));
- Synchronize_Buffer(form);
- bp = Address_Of_Current_Row_In_Buffer(form);
- pos = After_End_Of_Data(bp, field->dcols);
- if (pos == (bp + field->dcols))
- pos--;
- Adjust_Cursor_Position(form, pos);
- returnCode(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)
-{
- int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1);
- int oldcol = form->curcol;
-
- T((T_CALLED("IFN_Left_Character(%p)"), form));
- if ((form->curcol -= amount) < 0)
- {
- form->curcol = oldcol;
- returnCode(E_REQUEST_DENIED);
- }
- returnCode(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)
-{
- int amount = myWCWIDTH(form->w, form->currow, form->curcol);
- int oldcol = form->curcol;
-
- T((T_CALLED("IFN_Right_Character(%p)"), form));
- if ((form->curcol += amount) >= form->current->dcols)
- {
-#if GROW_IF_NAVIGATE
- FIELD *field = form->current;
-
- if (Single_Line_Field(field) && Field_Grown(field, 1))
- returnCode(E_OK);
-#endif
- form->curcol = oldcol;
- returnCode(E_REQUEST_DENIED);
- }
- returnCode(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)
-{
- T((T_CALLED("IFN_Up_Character(%p)"), form));
- if ((--(form->currow)) < 0)
- {
- form->currow++;
- returnCode(E_REQUEST_DENIED);
- }
- returnCode(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;
-
- T((T_CALLED("IFN_Down_Character(%p)"), form));
- if ((++(form->currow)) == field->drows)
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field, 1))
- returnCode(E_OK);
-#endif
- --(form->currow);
- returnCode(E_REQUEST_DENIED);
- }
- returnCode(E_OK);
-}
-/*----------------------------------------------------------------------------
- END of Intra-Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Vertical scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Generic(FORM *form, int nlines)
-|
-| Description : Scroll multi-line field forward (nlines>0) or
-| backward (nlines<0) this many lines.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - can't scroll
-+--------------------------------------------------------------------------*/
-static int
-VSC_Generic(FORM *form, int nlines)
-{
- FIELD *field = form->current;
- int res = E_REQUEST_DENIED;
- int rows_to_go = (nlines > 0 ? nlines : -nlines);
-
- if (nlines > 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 occurred.
-|
-| 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)
-{
- T((T_CALLED("VSC_Scroll_Line_Forward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("VSC_Scroll_Line_Backward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("VSC_Scroll_Page_Forward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("VSC_Scroll_Half_Page_Forward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("VSC_Scroll_Page_Backward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("VSC_Scroll_Half_Page_Backward(%p)"), form));
- returnCode(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 ncolumns)
-|
-| Description : Scroll single-line field forward (ncolumns>0) or
-| backward (ncolumns<0) this many columns.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - can't scroll
-+--------------------------------------------------------------------------*/
-static int
-HSC_Generic(FORM *form, int ncolumns)
-{
- FIELD *field = form->current;
- int res = E_REQUEST_DENIED;
- int cols_to_go = (ncolumns > 0 ? ncolumns : -ncolumns);
-
- if (ncolumns > 0)
- {
- if ((cols_to_go + form->begincol) > (field->dcols - field->cols))
- cols_to_go = field->dcols - field->cols - form->begincol;
-
- if (cols_to_go > 0)
- {
- form->curcol += cols_to_go;
- form->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)
-{
- T((T_CALLED("HSC_Scroll_Char_Forward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("HSC_Scroll_Char_Backward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("HSC_Horizontal_Line_Forward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("HSC_Horizontal_Half_Line_Forward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("HSC_Horizontal_Line_Backward(%p)"), form));
- returnCode(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)
-{
- T((T_CALLED("HSC_Horizontal_Half_Line_Backward(%p)"), form));
- returnCode(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
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static bool
-Is_There_Room_For_A_Line(FORM *form)
-{
- FIELD *field = form->current;
- FIELD_CELL *begin_of_last_line, *s;
-
- Synchronize_Buffer(form);
- begin_of_last_line = Address_Of_Row_In_Buffer(field, (field->drows - 1));
- s = After_End_Of_Data(begin_of_last_line, field->dcols);
- return ((s == begin_of_last_line) ? TRUE : FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| 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)
-+--------------------------------------------------------------------------*/
-NCURSES_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, FIELD_CELL *txt, int len)
-{
- FIELD *field = form->current;
- FIELD_CELL *bp = Address_Of_Row_In_Buffer(field, row);
- int datalen = (int)(After_End_Of_Data(bp, field->dcols) - bp);
- int freelen = field->dcols - datalen;
- int requiredlen = len + 1;
- FIELD_CELL *split;
- int result = E_REQUEST_DENIED;
-
- if (freelen >= requiredlen)
- {
- wmove(form->w, row, 0);
- myINSNSTR(form->w, txt, len);
- wmove(form->w, row, len);
- myINSNSTR(form->w, &myBLANK, 1);
- return E_OK;
- }
- else
- {
- /* we have to move characters on the next line. If we are on the
- last line this may work, if the field is growable */
- 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);
- myINSNSTR(form->w, txt, len);
- wmove(form->w, row, len);
- myINSNSTR(form->w, &myBLANK, 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 successful
-| 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 */
- {
- FIELD_CELL *bp;
- FIELD_CELL *split;
- int chars_to_be_wrapped;
- int chars_to_remain_on_line;
-
- if (Last_Row)
- {
- /* the above logic already ensures, that in this case the field
- 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)
- {
- DeleteChar(form);
- 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 occurred.
-| 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
- behavior of New_Line and Delete_Previous requests.
- They may end up in navigational requests if we are on the first
- character in a field. But navigation is also allowed on non-
- editable fields.
- */
- if ((fct == FE_Delete_Previous) &&
- (form->opts & O_BS_OVERLOAD) &&
- First_Position_In_Current_Field(form))
- {
- 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;
- FIELD_CELL *bp, *t;
- bool Last_Row = ((field->drows - 1) == form->currow);
-
- T((T_CALLED("FE_New_Line(%p)"), form));
- if (form->status & _OVLMODE)
- {
- if (Last_Row &&
- (!(Growable(field) && !Single_Line_Field(field))))
- {
- if (!(form->opts & O_NL_OVERLOAD))
- returnCode(E_REQUEST_DENIED);
- wmove(form->w, form->currow, form->curcol);
- wclrtoeol(form->w);
- /* we have to set this here, although it is also
- handled in the generic routine. The reason is,
- that FN_Next_Field may fail, but the form is
- definitively changed */
- form->status |= _WINDOW_MODIFIED;
- returnCode(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 */
- returnCode(E_SYSTEM_ERROR);
- }
- wmove(form->w, form->currow, form->curcol);
- wclrtoeol(form->w);
- form->currow++;
- form->curcol = 0;
- form->status |= _WINDOW_MODIFIED;
- returnCode(E_OK);
- }
- }
- else
- {
- /* Insert Mode */
- if (Last_Row &&
- !(Growable(field) && !Single_Line_Field(field)))
- {
- if (!(form->opts & O_NL_OVERLOAD))
- returnCode(E_REQUEST_DENIED);
- returnCode(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)))
- returnCode(E_REQUEST_DENIED);
- if (!May_Do_It && !Field_Grown(field, 1))
- returnCode(E_SYSTEM_ERROR);
-
- bp = Address_Of_Current_Position_In_Buffer(form);
- t = After_End_Of_Data(bp, field->dcols - form->curcol);
- wmove(form->w, form->currow, form->curcol);
- wclrtoeol(form->w);
- form->currow++;
- form->curcol = 0;
- wmove(form->w, form->currow, form->curcol);
- winsertln(form->w);
- myADDNSTR(form->w, bp, (int)(t - bp));
- form->status |= _WINDOW_MODIFIED;
- returnCode(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;
-
- T((T_CALLED("FE_Insert_Character(%p)"), form));
- if (Check_Char(field->type, (int)C_BLANK, (TypeArgument *)(field->arg)))
- {
- bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
-
- if (There_Is_Room ||
- ((Single_Line_Field(field) && Growable(field))))
- {
- if (!There_Is_Room && !Field_Grown(field, 1))
- result = E_SYSTEM_ERROR;
- else
- {
- winsch(form->w, (chtype)C_BLANK);
- result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form);
- }
- }
- }
- returnCode(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;
-
- T((T_CALLED("FE_Insert_Line(%p)"), form));
- if (Check_Char(field->type, (int)C_BLANK, (TypeArgument *)(field->arg)))
- {
- bool Maybe_Done = (form->currow != (field->drows - 1)) &&
- Is_There_Room_For_A_Line(form);
-
- 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;
- }
- }
- }
- returnCode(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)
-{
- T((T_CALLED("FE_Delete_Character(%p)"), form));
- DeleteChar(form);
- returnCode(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;
-
- T((T_CALLED("FE_Delete_Previous(%p)"), form));
- if (First_Position_In_Current_Field(form))
- returnCode(E_REQUEST_DENIED);
-
- if ((--(form->curcol)) < 0)
- {
- FIELD_CELL *this_line, *prev_line, *prev_end, *this_end;
- int this_row = form->currow;
-
- form->curcol++;
- if (form->status & _OVLMODE)
- returnCode(E_REQUEST_DENIED);
-
- prev_line = Address_Of_Row_In_Buffer(field, (form->currow - 1));
- this_line = Address_Of_Row_In_Buffer(field, (form->currow));
- Synchronize_Buffer(form);
- prev_end = After_End_Of_Data(prev_line, field->dcols);
- this_end = After_End_Of_Data(this_line, field->dcols);
- if ((int)(this_end - this_line) >
- (field->cols - (int)(prev_end - prev_line)))
- returnCode(E_REQUEST_DENIED);
- wmove(form->w, form->currow, form->curcol);
- wdeleteln(form->w);
- Adjust_Cursor_Position(form, prev_end);
- /*
- * If we did not really move to the previous line, help the user a
- * little. It is however a little inconsistent. Normally, when
- * backspacing around the point where text wraps to a new line in a
- * multi-line form, we absorb one keystroke for the wrapping point. That
- * is consistent with SVr4 forms. However, SVr4 does not allow typing
- * into the last column of the field, and requires the user to enter a
- * newline to move to the next line. Therefore it can consistently eat
- * that keystroke. Since ncurses allows the last column, it wraps
- * automatically (given the proper options). But we cannot eat the
- * keystroke to back over the wrapping point, since that would put the
- * cursor past the end of the form field. In this case, just delete the
- * character at the end of the field.
- */
- if (form->currow == this_row && this_row > 0)
- {
- form->currow -= 1;
- form->curcol = field->dcols - 1;
- DeleteChar(form);
- }
- else
- {
- wmove(form->w, form->currow, form->curcol);
- myADDNSTR(form->w, this_line, (int)(this_end - this_line));
- }
- }
- else
- {
- DeleteChar(form);
- }
- returnCode(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)
-{
- T((T_CALLED("FE_Delete_Line(%p)"), form));
- form->curcol = 0;
- wdeleteln(form->w);
- returnCode(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;
- FIELD_CELL *bp = Address_Of_Current_Row_In_Buffer(form);
- FIELD_CELL *ep = bp + field->dcols;
- FIELD_CELL *cp = bp + form->curcol;
- FIELD_CELL *s;
-
- T((T_CALLED("FE_Delete_Word(%p)"), form));
- Synchronize_Buffer(form);
- if (ISBLANK(*cp))
- returnCode(E_REQUEST_DENIED); /* not in word */
-
- /* move cursor to begin of word and erase to end of screen-line */
- Adjust_Cursor_Position(form,
- After_Last_Whitespace_Character(bp, form->curcol));
- wmove(form->w, form->currow, form->curcol);
- 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) && !ISBLANK(*s))
- {
- /* copy remaining line to window */
- myADDNSTR(form->w, s, (int)(s - After_End_Of_Data(s, (int)(ep - s))));
- }
- returnCode(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)
-{
- T((T_CALLED("FE_Clear_To_End_Of_Line(%p)"), form));
- wmove(form->w, form->currow, form->curcol);
- wclrtoeol(form->w);
- returnCode(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Clear_To_End_Of_Field(FORM * form)
-|
-| Description : Clear to end of field.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int
-FE_Clear_To_End_Of_Field(FORM *form)
-{
- T((T_CALLED("FE_Clear_To_End_Of_Field(%p)"), form));
- wmove(form->w, form->currow, form->curcol);
- wclrtobot(form->w);
- returnCode(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)
-{
- T((T_CALLED("FE_Clear_Field(%p)"), form));
- form->currow = form->curcol = 0;
- werase(form->w);
- returnCode(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)
-{
- T((T_CALLED("EM_Overlay_Mode(%p)"), form));
- form->status |= _OVLMODE;
- returnCode(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)
-{
- T((T_CALLED("EM_Insert_Mode(%p)"), form));
- form->status &= ~_OVLMODE;
- returnCode(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;
-
- T((T_CALLED("CR_Next_Choice(%p)"), form));
- Synchronize_Buffer(form);
- returnCode((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;
-
- T((T_CALLED("CR_Previous_Choice(%p)"), form));
- Synchronize_Buffer(form);
- returnCode((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)
- {
- FIELD_CELL *bp = field->buf;
-
- assert(bp);
- while (ISBLANK(*bp))
- {
- bp++;
- }
- if (CharOf(*bp) == 0)
- return TRUE;
- }
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return (
- Check_Field(typ->left, field, argp->left) ||
- Check_Field(typ->right, field, argp->right));
- }
- 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)
-{
- T((T_CALLED("FV_Validation(%p)"), form));
- if (_nc_Internal_Validation(form))
- returnCode(E_OK);
- else
- returnCode(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.
-+--------------------------------------------------------------------------*/
-NCURSES_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.
-+--------------------------------------------------------------------------*/
-NCURSES_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.
-+--------------------------------------------------------------------------*/
-NCURSES_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.
-+--------------------------------------------------------------------------*/
-NCURSES_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_Neighbor_Field(FIELD * field)
-|
-| Description : Get the left neighbor of the field on the same line
-| and the same page. Cycles through the line.
-|
-| Return Values : Pointer to left neighbor field.
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static FIELD *
-Left_Neighbor_Field(FIELD *field)
-{
- FIELD *field_on_page = field;
-
- /* For a field that has really a left neighbor, the while clause
- immediately fails and the loop is left, positioned at the right
- neighbor. Otherwise we cycle backwards through the sorted field list
- until we enter the same line (from the right end).
- */
- do
- {
- field_on_page = Sorted_Previous_Field(field_on_page);
- }
- while (field_on_page->frow != field->frow);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Right_Neighbor_Field(FIELD * field)
-|
-| Description : Get the right neighbor of the field on the same line
-| and the same page.
-|
-| Return Values : Pointer to right neighbor field.
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static FIELD *
-Right_Neighbor_Field(FIELD *field)
-{
- FIELD *field_on_page = field;
-
- /* See the comments on Left_Neighbor_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_Neighbor_Field(FIELD * field)
-|
-| Description : Because of the row-major nature of sorting the fields,
-| it is more difficult to define whats the upper neighbor
-| field really means. We define that it must be on a
-| '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 neighbor field.
-+--------------------------------------------------------------------------*/
-static FIELD *
-Upper_Neighbor_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_Neighbor_Field(FIELD * field)
-|
-| Description : Because of the row-major nature of sorting the fields,
-| its more difficult to define whats the down neighbor
-| field really means. We define that it must be on a
-| '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 neighbor field.
-+--------------------------------------------------------------------------*/
-static FIELD *
-Down_Neighbor_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 behavior for changing the current field, the
-| field is left and a new field is entered. So the field
-| must be validated and the field init/term hooks must
-| 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)
-{
- T((T_CALLED("FN_Next_Field(%p)"), form));
- returnCode(_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)
-{
- T((T_CALLED("FN_Previous_Field(%p)"), form));
- returnCode(_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)
-{
- T((T_CALLED("FN_First_Field(%p)"), form));
- returnCode(_nc_Set_Current_Field(form,
- Next_Field_On_Page(form->field[form->page[form->curpage].pmax])));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| 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)
-{
- T((T_CALLED("FN_Last_Field(%p)"), form));
- returnCode(
- _nc_Set_Current_Field(form,
- Previous_Field_On_Page(form->field[form->page[form->curpage].pmin])));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| 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)
-{
- T((T_CALLED("FN_Sorted_Next_Field(%p)"), form));
- returnCode(_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)
-{
- T((T_CALLED("FN_Sorted_Previous_Field(%p)"), form));
- returnCode(_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)
-{
- T((T_CALLED("FN_Sorted_First_Field(%p)"), form));
- returnCode(_nc_Set_Current_Field(form,
- Sorted_Next_Field(form->field[form->page[form->curpage].smax])));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| 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)
-{
- T((T_CALLED("FN_Sorted_Last_Field(%p)"), form));
- returnCode(_nc_Set_Current_Field(form,
- Sorted_Previous_Field(form->field[form->page[form->curpage].smin])));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| 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)
-{
- T((T_CALLED("FN_Left_Field(%p)"), form));
- returnCode(_nc_Set_Current_Field(form,
- Left_Neighbor_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)
-{
- T((T_CALLED("FN_Right_Field(%p)"), form));
- returnCode(_nc_Set_Current_Field(form,
- Right_Neighbor_Field(form->current)));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Up_Field(FORM * form)
-|
-| Description : Get the upper neighbor of the current field. This
-| cycles through the page. See the comments of the
-| Upper_Neighbor_Field function to understand how
-| 'upper' is defined.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int
-FN_Up_Field(FORM *form)
-{
- T((T_CALLED("FN_Up_Field(%p)"), form));
- returnCode(_nc_Set_Current_Field(form,
- Upper_Neighbor_Field(form->current)));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Down_Field(FORM * form)
-|
-| Description : Get the down neighbor of the current field. This
-| cycles through the page. See the comments of the
-| Down_Neighbor_Field function to understand how
-| 'down' is defined.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int
-FN_Down_Field(FORM *form)
-{
- T((T_CALLED("FN_Down_Field(%p)"), form));
- returnCode(_nc_Set_Current_Field(form,
- Down_Neighbor_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 number the current page and make
-| the given field the current field on the page. If
-| for the field NULL is given, make the first field on
-| 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
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-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
-+--------------------------------------------------------------------------*/
-NCURSES_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
-+--------------------------------------------------------------------------*/
-NCURSES_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 behavior for changing a page. This means
-| that the field is left and a new field is entered.
-| So the field must be validated and the field init/term
-| 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)
-{
- T((T_CALLED("PN_Next_Page(%p)"), form));
- returnCode(_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)
-{
- T((T_CALLED("PN_Previous_Page(%p)"), form));
- returnCode(_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)
-{
- T((T_CALLED("PN_First_Page(%p)"), form));
- returnCode(_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)
-{
- T((T_CALLED("PN_Last_Page(%p)"), form));
- returnCode(_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 - success
-| E_REQUEST_DENIED - driver could not process the request
-| E_SYSTEM_ERROR -
-+--------------------------------------------------------------------------*/
-static int
-Data_Entry(FORM *form, int c)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
-
- T((T_CALLED("Data_Entry(%p,%s)"), form, _tracechtype((chtype)c)));
- 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
- {
-#if USE_WIDEC_SUPPORT
- /*
- * We have just added a byte to the form field. It may have
- * been part of a multibyte character. If it was, the
- * addch_used field is nonzero and we should not try to move
- * to a new column.
- */
- if (WINDOW_EXT(form->w, addch_used) == 0)
- IFN_Next_Character(form);
-#else
- IFN_Next_Character(form);
-#endif
- result = E_OK;
- }
- }
- }
- }
- RETURN(result);
-}
-
-/* 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 */
-/* *INDENT-OFF* */
-static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
-{
- { REQ_NEXT_PAGE |ID_PN ,PN_Next_Page},
- { REQ_PREV_PAGE |ID_PN ,PN_Previous_Page},
- { REQ_FIRST_PAGE |ID_PN ,PN_First_Page},
- { REQ_LAST_PAGE |ID_PN ,PN_Last_Page},
-
- { REQ_NEXT_FIELD |ID_FN ,FN_Next_Field},
- { REQ_PREV_FIELD |ID_FN ,FN_Previous_Field},
- { REQ_FIRST_FIELD |ID_FN ,FN_First_Field},
- { 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_Field},
- { REQ_CLR_FIELD |ID_FE ,FE_Clear_Field},
-
- { REQ_OVL_MODE |ID_EM ,EM_Overlay_Mode},
- { REQ_INS_MODE |ID_EM ,EM_Insert_Mode},
-
- { REQ_SCR_FLINE |ID_VSC ,VSC_Scroll_Line_Forward},
- { REQ_SCR_BLINE |ID_VSC ,VSC_Scroll_Line_Backward},
- { REQ_SCR_FPAGE |ID_VSC ,VSC_Scroll_Page_Forward},
- { REQ_SCR_BPAGE |ID_VSC ,VSC_Scroll_Page_Backward},
- { REQ_SCR_FHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Forward},
- { REQ_SCR_BHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Backward},
-
- { REQ_SCR_FCHAR |ID_HSC ,HSC_Scroll_Char_Forward},
- { REQ_SCR_BCHAR |ID_HSC ,HSC_Scroll_Char_Backward},
- { REQ_SCR_HFLINE |ID_HSC ,HSC_Horizontal_Line_Forward},
- { REQ_SCR_HBLINE |ID_HSC ,HSC_Horizontal_Line_Backward},
- { REQ_SCR_HFHALF |ID_HSC ,HSC_Horizontal_Half_Line_Forward},
- { REQ_SCR_HBHALF |ID_HSC ,HSC_Horizontal_Half_Line_Backward},
-
- { REQ_VALIDATION |ID_FV ,FV_Validation},
-
- { REQ_NEXT_CHOICE |ID_CH ,CR_Next_Choice},
- { REQ_PREV_CHOICE |ID_CH ,CR_Previous_Choice}
-};
-/* *INDENT-ON* */
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| 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_NOT_CONNECTED - no fields are connected to the form
-| 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;
-
- T((T_CALLED("form_driver(%p,%d)"), form, c));
-
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->field))
- RETURN(E_NOT_CONNECTED);
-
- assert(form->page);
-
- if (c == FIRST_ACTIVE_MAGIC)
- {
- 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);
- }
- }
-#ifdef NCURSES_MOUSE_VERSION
- else if (KEY_MOUSE == c)
- {
- MEVENT event;
- WINDOW *win = form->win ? form->win : stdscr;
- WINDOW *sub = form->sub ? form->sub : win;
-
- getmouse(&event);
- if ((event.bstate & (BUTTON1_CLICKED |
- BUTTON1_DOUBLE_CLICKED |
- BUTTON1_TRIPLE_CLICKED))
- && wenclose(win, event.y, event.x))
- { /* we react only if the click was in the userwin, that means
- * inside the form display area or at the decoration window.
- */
- int ry = event.y, rx = event.x; /* screen coordinates */
-
- res = E_REQUEST_DENIED;
- if (mouse_trafo(&ry, &rx, FALSE))
- { /* rx, ry are now "curses" coordinates */
- if (ry < sub->_begy)
- { /* we clicked above the display region; this is
- * interpreted as "scroll up" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- res = form_driver(form, REQ_PREV_FIELD);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- res = form_driver(form, REQ_PREV_PAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- res = form_driver(form, REQ_FIRST_FIELD);
- }
- else if (ry > sub->_begy + sub->_maxy)
- { /* we clicked below the display region; this is
- * interpreted as "scroll down" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- res = form_driver(form, REQ_NEXT_FIELD);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- res = form_driver(form, REQ_NEXT_PAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- res = form_driver(form, REQ_LAST_FIELD);
- }
- else if (wenclose(sub, event.y, event.x))
- { /* Inside the area we try to find the hit item */
- int i;
-
- ry = event.y;
- rx = event.x;
- if (wmouse_trafo(sub, &ry, &rx, FALSE))
- {
- int min_field = form->page[form->curpage].pmin;
- int max_field = form->page[form->curpage].pmax;
-
- for (i = min_field; i <= max_field; ++i)
- {
- FIELD *field = form->field[i];
-
- if (Field_Is_Selectable(field)
- && Field_encloses(field, ry, rx) == E_OK)
- {
- res = _nc_Set_Current_Field(form, field);
- if (res == E_OK)
- res = _nc_Position_Form_Cursor(form);
- if (res == E_OK
- && (event.bstate & BUTTON1_DOUBLE_CLICKED))
- res = E_UNKNOWN_COMMAND;
- break;
- }
- }
- }
- }
- }
- }
- else
- res = E_REQUEST_DENIED;
- }
-#endif /* NCURSES_MOUSE_VERSION */
- else if (!(c & (~(int)MAX_REGULAR_CHARACTER)))
- {
- /*
- * If we're using 8-bit characters, iscntrl+isprint cover the whole set.
- * But with multibyte characters, there is a third possibility, i.e.,
- * parts of characters that build up into printable characters which are
- * not considered printable.
- *
- * FIXME: the wide-character branch should also use Check_Char().
- */
-#if USE_WIDEC_SUPPORT
- if (!iscntrl(UChar(c)))
-#else
- if (isprint(UChar(c)) &&
- Check_Char(form->current->type, c,
- (TypeArgument *)(form->current->arg)))
-#endif
- res = Data_Entry(form, c);
- }
- _nc_Refresh_Current_Field(form);
- RETURN(res);
-}
-
-/*----------------------------------------------------------------------------
- Field-Buffer manipulation routines.
- The effects of setting a buffer are tightly coupled to the core of the form
- driver logic. This is especially true in the case of growable fields.
- So I don't separate this into a separate 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)
-{
- FIELD_CELL *p;
- int res = E_OK;
- unsigned int i;
- unsigned int len;
-
-#if USE_WIDEC_SUPPORT
- FIELD_CELL *widevalue = 0;
-#endif
-
- T((T_CALLED("set_field_buffer(%p,%d,%s)"), field, buffer, _nc_visbuf(value)));
-
- if (!field || !value || ((buffer < 0) || (buffer > field->nbuf)))
- RETURN(E_BAD_ARGUMENT);
-
- len = Buffer_Length(field);
-
- if (buffer == 0)
- {
- for (i = 0; (value[i] != '\0') && (i < len); ++i)
- {
- if (iscntrl(UChar(value[i])))
- 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, whether or not the remaining
- characters in value are also printable for buffer 0. */
- if (buffer == 0)
- {
- for (i = len; i < vlen; i++)
- if (iscntrl(UChar(value[i])))
- RETURN(E_BAD_ARGUMENT);
- }
- len = vlen;
- }
- }
-
- p = Address_Of_Nth_Buffer(field, buffer);
-
-#if USE_WIDEC_SUPPORT
- /*
- * Use addstr's logic for converting a string to an array of cchar_t's.
- * There should be a better way, but this handles nonspacing characters
- * and other special cases that we really do not want to handle here.
- */
- wclear(field->working);
- mvwaddstr(field->working, 0, 0, value);
-
- if ((widevalue = typeCalloc(FIELD_CELL, len + 1)) == 0)
- {
- RETURN(E_SYSTEM_ERROR);
- }
- else
- {
- mvwin_wchnstr(field->working, 0, 0, widevalue, (int)len);
- for (i = 0; i < len; ++i)
- {
- if (CharEq(myZEROS, widevalue[i]))
- {
- while (i < len)
- p[i++] = myBLANK;
- break;
- }
- p[i] = widevalue[i];
- }
- free(widevalue);
- }
-#else
- for (i = 0; i < len; ++i)
- {
- if (value[i] == '\0')
- {
- while (i < len)
- p[i++] = myBLANK;
- break;
- }
- p[i] = value[i];
- }
-#endif
-
- 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)
-{
- char *result = 0;
-
- T((T_CALLED("field_buffer(%p,%d)"), field, buffer));
-
- if (field && (buffer >= 0) && (buffer <= field->nbuf))
- {
-#if USE_WIDEC_SUPPORT
- FIELD_CELL *data = Address_Of_Nth_Buffer(field, buffer);
- unsigned need = 0;
- int size = Buffer_Length(field);
- int n;
-
- /* determine the number of bytes needed to store the expanded string */
- for (n = 0; n < size; ++n)
- {
- if (!isWidecExt(data[n]))
- {
- mbstate_t state;
- size_t next;
-
- init_mb(state);
- next = _nc_wcrtomb(0, data[n].chars[0], &state);
- if (!isEILSEQ(next))
- need += next;
- }
- }
-
- /* allocate a place to store the expanded string */
- if (field->expanded[buffer] != 0)
- free(field->expanded[buffer]);
- field->expanded[buffer] = typeMalloc(char, need + 1);
-
- /* expand the multibyte data */
- if ((result = field->expanded[buffer]) != 0)
- {
- wclear(field->working);
- mvwadd_wchnstr(field->working, 0, 0, data, size);
- mvwinnstr(field->working, 0, 0, result, (int)need);
- }
-#else
- result = Address_Of_Nth_Buffer(field, buffer);
-#endif
- }
- returnPtr(result);
-}
-
-#if USE_WIDEC_SUPPORT
-
-/* FIXME: see lib_get_wch.c */
-#if HAVE_MBTOWC && HAVE_MBLEN
-#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
-#define count_mbytes(buffer,length,state) mblen(buffer,length)
-#define trans_mbytes(wch,buffer,length,state) \
- (int) mbtowc(&wch, buffer, length)
-#elif HAVE_MBRTOWC && HAVE_MBRLEN
-#define NEED_STATE
-#define reset_mbytes(state) init_mb(state)
-#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
-#define trans_mbytes(wch,buffer,length,state) \
- (int) mbrtowc(&wch, buffer, length, &state)
-#else
-make an error
-#endif
-
-/*---------------------------------------------------------------------------
-| Convert a multibyte string to a wide-character string. The result must be
-| freed by the caller.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(wchar_t *)
-_nc_Widen_String(char *source, int *lengthp)
-{
- wchar_t *result = 0;
- wchar_t wch;
- size_t given = strlen(source);
- size_t tries;
- int pass;
- int status;
-
-#ifdef NEED_STATE
- mbstate_t state;
-#endif
-
- for (pass = 0; pass < 2; ++pass)
- {
- unsigned need = 0;
- size_t passed = 0;
-
- while (passed < given)
- {
- bool found = FALSE;
-
- for (tries = 1, status = 0; tries <= (given - passed); ++tries)
- {
- int save = source[passed + tries];
-
- source[passed + tries] = 0;
- reset_mbytes(state);
- status = trans_mbytes(wch, source + passed, tries, state);
- source[passed + tries] = save;
-
- if (status > 0)
- {
- found = TRUE;
- break;
- }
- }
- if (found)
- {
- if (pass)
- {
- result[need] = wch;
- }
- passed += status;
- ++need;
- }
- else
- {
- if (pass)
- {
- result[need] = source[passed];
- }
- ++need;
- ++passed;
- }
- }
-
- if (!pass)
- {
- if (!need)
- break;
- result = typeCalloc(wchar_t, need);
-
- *lengthp = need;
- if (result == 0)
- break;
- }
- }
-
- return result;
-}
-#endif
-
-/* frm_driver.c ends here */
diff --git a/contrib/ncurses/form/frm_hook.c b/contrib/ncurses/form/frm_hook.c
deleted file mode 100644
index 18e6d71f31ab..000000000000
--- a/contrib/ncurses/form/frm_hook.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_hook.c,v 1.14 2004/12/25 22:37:27 tom Exp $")
-
-/* "Template" macro to generate function to set application specific hook */
-#define GEN_HOOK_SET_FUNCTION( typ, name ) \
-NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
-{\
- T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), form, func));\
- (Normalize_Form( form ) -> typ ## name) = func ;\
- RETURN(E_OK);\
-}
-
-/* "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 )\
-{\
- T((T_CALLED(#typ "_" #name "(%p)"), form));\
- returnFormHook( 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/contrib/ncurses/form/frm_opts.c b/contrib/ncurses/form/frm_opts.c
deleted file mode 100644
index d36d618a5343..000000000000
--- a/contrib/ncurses/form/frm_opts.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_opts.c,v 1.14 2005/04/16 16:59:18 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_form_opts(%p,%d)"), form, opts));
-
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form(form)->opts = opts;
- 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)
-{
- T((T_CALLED("form_opts(%p)"), form));
- returnCode((int)(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)
-{
- T((T_CALLED("form_opts_on(%p,%d)"), form, opts));
-
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form(form)->opts |= opts;
- 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)
-{
- T((T_CALLED("form_opts_off(%p,%d)"), form, 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/contrib/ncurses/form/frm_page.c b/contrib/ncurses/form/frm_page.c
deleted file mode 100644
index a371838d950e..000000000000
--- a/contrib/ncurses/form/frm_page.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_page.c,v 1.10 2004/12/11 22:08:21 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("set_form_page(%p,%d)"), form, page));
-
- if (!form || (page < 0) || (page >= form->maxpage))
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->status & _POSTED))
- {
- form->curpage = page;
- form->current = _nc_First_Active_Field(form);
- }
- else
- {
- if (form->status & _IN_DRIVER)
- 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)
-{
- T((T_CALLED("form_page(%p)"), form));
-
- returnCode(Normalize_Form(form)->curpage);
-}
-
-/* frm_page.c ends here */
diff --git a/contrib/ncurses/form/frm_post.c b/contrib/ncurses/form/frm_post.c
deleted file mode 100644
index 28937e91b0b2..000000000000
--- a/contrib/ncurses/form/frm_post.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_post.c,v 1.9 2004/12/11 22:19:06 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("post_form(%p)"), form));
-
- 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)
-{
- T((T_CALLED("unpost_form(%p)"), 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/contrib/ncurses/form/frm_req_name.c b/contrib/ncurses/form/frm_req_name.c
deleted file mode 100644
index e4d5c335d8ec..000000000000
--- a/contrib/ncurses/form/frm_req_name.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module form_request_name *
-* Routines to handle external names of menu requests *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_req_name.c,v 1.15 2005/04/16 16:59:27 tom Exp $")
-
-static const char *request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
-{
- "NEXT_PAGE",
- "PREV_PAGE",
- "FIRST_PAGE",
- "LAST_PAGE",
-
- "NEXT_FIELD",
- "PREV_FIELD",
- "FIRST_FIELD",
- "LAST_FIELD",
- "SNEXT_FIELD",
- "SPREV_FIELD",
- "SFIRST_FIELD",
- "SLAST_FIELD",
- "LEFT_FIELD",
- "RIGHT_FIELD",
- "UP_FIELD",
- "DOWN_FIELD",
-
- "NEXT_CHAR",
- "PREV_CHAR",
- "NEXT_LINE",
- "PREV_LINE",
- "NEXT_WORD",
- "PREV_WORD",
- "BEG_FIELD",
- "END_FIELD",
- "BEG_LINE",
- "END_LINE",
- "LEFT_CHAR",
- "RIGHT_CHAR",
- "UP_CHAR",
- "DOWN_CHAR",
-
- "NEW_LINE",
- "INS_CHAR",
- "INS_LINE",
- "DEL_CHAR",
- "DEL_PREV",
- "DEL_LINE",
- "DEL_WORD",
- "CLR_EOL",
- "CLR_EOF",
- "CLR_FIELD",
- "OVL_MODE",
- "INS_MODE",
- "SCR_FLINE",
- "SCR_BLINE",
- "SCR_FPAGE",
- "SCR_BPAGE",
- "SCR_FHPAGE",
- "SCR_BHPAGE",
- "SCR_FCHAR",
- "SCR_BCHAR",
- "SCR_HFLINE",
- "SCR_HBLINE",
- "SCR_HFHALF",
- "SCR_HBHALF",
-
- "VALIDATION",
- "NEXT_CHOICE",
- "PREV_CHOICE"
-};
-
-#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("form_request_name(%d)"), request));
-
- if ((request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND))
- {
- SET_ERROR(E_BAD_ARGUMENT);
- returnCPtr((const char *)0);
- }
- else
- returnCPtr(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];
-
- T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str)));
-
- if (str)
- {
- strncpy(buf, str, sizeof(buf));
- while ((i < sizeof(buf)) && (buf[i] != '\0'))
- {
- buf[i] = toupper(buf[i]);
- i++;
- }
-
- for (i = 0; i < A_SIZE; i++)
- {
- if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
- returnCode(MIN_FORM_COMMAND + (int) i);
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/* frm_req_name.c ends here */
diff --git a/contrib/ncurses/form/frm_scale.c b/contrib/ncurses/form/frm_scale.c
deleted file mode 100644
index 2ebf72d06c67..000000000000
--- a/contrib/ncurses/form/frm_scale.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_scale.c,v 1.9 2004/12/11 22:12:34 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("scale_form(%p,%p,%p)"), form, rows, 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/contrib/ncurses/form/frm_sub.c b/contrib/ncurses/form/frm_sub.c
deleted file mode 100644
index 6db0023db1ab..000000000000
--- a/contrib/ncurses/form/frm_sub.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_sub.c,v 1.9 2004/12/11 22:13:39 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_form_sub(%p,%p)"), form, 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;
-
- T((T_CALLED("form_sub(%p)"), form));
-
- f = Normalize_Form(form);
- returnWin(Get_Form_Window(f));
-}
-
-/* frm_sub.c ends here */
diff --git a/contrib/ncurses/form/frm_user.c b/contrib/ncurses/form/frm_user.c
deleted file mode 100644
index 4d5e0e463a43..000000000000
--- a/contrib/ncurses/form/frm_user.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_user.c,v 1.14 2004/12/25 22:37:56 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_form_userptr(%p,%p)"), form, 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)
-{
- T((T_CALLED("form_userptr(%p)"), form));
- returnVoidPtr(Normalize_Form(form)->usrptr);
-}
-
-/* frm_user.c ends here */
diff --git a/contrib/ncurses/form/frm_win.c b/contrib/ncurses/form/frm_win.c
deleted file mode 100644
index 2258f0a6195b..000000000000
--- a/contrib/ncurses/form/frm_win.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: frm_win.c,v 1.13 2004/12/11 22:15:27 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_form_win(%p,%p)"), form, 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;
-
- T((T_CALLED("form_win(%p)"), form));
-
- f = Normalize_Form(form);
- returnWin(f->win ? f->win : stdscr);
-}
-
-/* frm_win.c ends here */
diff --git a/contrib/ncurses/form/fty_alnum.c b/contrib/ncurses/form/fty_alnum.c
deleted file mode 100644
index 59dd2736e8ab..000000000000
--- a/contrib/ncurses/form/fty_alnum.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fty_alnum.c,v 1.21 2007/10/13 19:31:52 tom Exp $")
-
-#define thisARG alnumARG
-
-typedef struct
- {
- int width;
- }
-thisARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_This_Type(va_list *ap)
-|
-| Description : Allocate structure for alphanumeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *
-Make_This_Type(va_list *ap)
-{
- thisARG *argp = typeMalloc(thisARG, 1);
-
- if (argp)
- {
- T((T_CREATE("thisARG %p"), argp));
- argp->width = va_arg(*ap, int);
- }
-
- return ((void *)argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_ThisType(const void *argp)
-|
-| Description : Copy structure for alphanumeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *
-Copy_This_Type(const void *argp)
-{
- const thisARG *ap = (const thisARG *)argp;
- thisARG *result = typeMalloc(thisARG, 1);
-
- if (result)
- {
- T((T_CREATE("thisARG %p"), result));
- *result = *ap;
- }
-
- return ((void *)result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_This_Type(void *argp)
-|
-| Description : Free structure for alphanumeric type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void
-Free_This_Type(void *argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_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_This_Character(int c, const void *argp GCC_UNUSED)
-{
-#if USE_WIDEC_SUPPORT
- if (iswalnum((wint_t) c))
- return TRUE;
-#endif
- return (isalnum(UChar(c)) ? TRUE : FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_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_This_Field(FIELD *field, const void *argp)
-{
- int width = ((const thisARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field, 0);
- bool result = (width < 0);
-
- Check_CTYPE_Field(result, bp, width, Check_This_Character);
- return (result);
-}
-
-static FIELDTYPE typeTHIS =
-{
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_This_Type,
- Copy_This_Type,
- Free_This_Type,
- Check_This_Field,
- Check_This_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeTHIS;
-
-/* fty_alnum.c ends here */
diff --git a/contrib/ncurses/form/fty_alpha.c b/contrib/ncurses/form/fty_alpha.c
deleted file mode 100644
index bd49544ffdb5..000000000000
--- a/contrib/ncurses/form/fty_alpha.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fty_alpha.c,v 1.23 2007/10/13 19:32:09 tom Exp $")
-
-#define thisARG alphaARG
-
-typedef struct
- {
- int width;
- }
-thisARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_This_Type(va_list *ap)
-|
-| Description : Allocate structure for alpha type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *
-Make_This_Type(va_list *ap)
-{
- thisARG *argp = typeMalloc(thisARG, 1);
-
- if (argp)
- {
- T((T_CREATE("thisARG %p"), argp));
- argp->width = va_arg(*ap, int);
- }
-
- return ((void *)argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_This_Type(const void * argp)
-|
-| Description : Copy structure for alpha type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *
-Copy_This_Type(const void *argp)
-{
- const thisARG *ap = (const thisARG *)argp;
- thisARG *result = typeMalloc(thisARG, 1);
-
- if (result)
- {
- T((T_CREATE("thisARG %p"), result));
- *result = *ap;
- }
-
- return ((void *)result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_This_Type(void *argp)
-|
-| Description : Free structure for alpha type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void
-Free_This_Type(void *argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_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_This_Character(int c, const void *argp GCC_UNUSED)
-{
-#if USE_WIDEC_SUPPORT
- if (iswalpha((wint_t) c))
- return TRUE;
-#endif
- return (isalpha(UChar(c)) ? TRUE : FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_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_This_Field(FIELD *field, const void *argp)
-{
- int width = ((const thisARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field, 0);
- bool result = (width < 0);
-
- Check_CTYPE_Field(result, bp, width, Check_This_Character);
- return (result);
-}
-
-static FIELDTYPE typeTHIS =
-{
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_This_Type,
- Copy_This_Type,
- Free_This_Type,
- Check_This_Field,
- Check_This_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeTHIS;
-
-/* fty_alpha.c ends here */
diff --git a/contrib/ncurses/form/fty_enum.c b/contrib/ncurses/form/fty_enum.c
deleted file mode 100644
index c96a080db09d..000000000000
--- a/contrib/ncurses/form/fty_enum.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fty_enum.c,v 1.22 2007/10/13 19:32:26 tom Exp $")
-
-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 = typeMalloc(enumARG, 1);
-
- if (argp)
- {
- int cnt = 0;
- char **kp = (char **)0;
- int ccase, cunique;
-
- T((T_CREATE("enumARG %p"), argp));
- 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 = typeMalloc(enumARG, 1);
-
- if (result)
- {
- T((T_CREATE("enumARG %p"), 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 whether 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/contrib/ncurses/form/fty_int.c b/contrib/ncurses/form/fty_int.c
deleted file mode 100644
index 8a5367f74084..000000000000
--- a/contrib/ncurses/form/fty_int.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fty_int.c,v 1.22 2007/10/13 19:32:40 tom Exp $")
-
-#if USE_WIDEC_SUPPORT
-#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
-#else
-#define isDigit(c) isdigit(UChar(c))
-#endif
-
-#define thisARG integerARG
-
-typedef struct
- {
- int precision;
- long low;
- long high;
- }
-thisARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_This_Type( va_list * ap )
-|
-| Description : Allocate structure for integer type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *
-Make_This_Type(va_list *ap)
-{
- thisARG *argp = typeMalloc(thisARG, 1);
-
- if (argp)
- {
- T((T_CREATE("thisARG %p"), 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_This_Type(const void * argp)
-|
-| Description : Copy structure for integer type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *
-Copy_This_Type(const void *argp)
-{
- const thisARG *ap = (const thisARG *)argp;
- thisARG *result = (thisARG *) 0;
-
- if (argp)
- {
- result = typeMalloc(thisARG, 1);
- if (result)
- {
- T((T_CREATE("thisARG %p"), result));
- *result = *ap;
- }
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_This_Type(void * argp)
-|
-| Description : Free structure for integer type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void
-Free_This_Type(void *argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid integer value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool
-Check_This_Field(FIELD *field, const void *argp)
-{
- const thisARG *argi = (const thisARG *)argp;
- long low = argi->low;
- long high = argi->high;
- int prec = argi->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field, 0);
- char *s = (char *)bp;
- long val;
- char buf[100];
- bool result = FALSE;
-
- while (*bp && *bp == ' ')
- bp++;
- if (*bp)
- {
- if (*bp == '-')
- bp++;
-#if USE_WIDEC_SUPPORT
- if (*bp)
- {
- bool blank = FALSE;
- int len;
- int n;
- wchar_t *list = _nc_Widen_String((char *)bp, &len);
-
- if (list != 0)
- {
- result = TRUE;
- for (n = 0; n < len; ++n)
- {
- if (blank)
- {
- if (list[n] != ' ')
- {
- result = FALSE;
- break;
- }
- }
- else if (list[n] == ' ')
- {
- blank = TRUE;
- }
- else if (!isDigit(list[n]))
- {
- result = FALSE;
- break;
- }
- }
- free(list);
- }
- }
-#else
- while (*bp)
- {
- if (!isdigit(UChar(*bp)))
- break;
- bp++;
- }
- while (*bp && *bp == ' ')
- bp++;
- result = (*bp == '\0');
-#endif
- if (result)
- {
- val = atol(s);
- if (low < high)
- {
- if (val < low || val > high)
- result = FALSE;
- }
- if (result)
- {
- sprintf(buf, "%.*ld", (prec > 0 ? prec : 0), val);
- set_field_buffer(field, 0, buf);
- }
- }
- }
- return (result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_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_This_Character(int c, const void *argp GCC_UNUSED)
-{
- return ((isDigit(UChar(c)) || (c == '-')) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeTHIS =
-{
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_This_Type,
- Copy_This_Type,
- Free_This_Type,
- Check_This_Field,
- Check_This_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeTHIS;
-
-/* fty_int.c ends here */
diff --git a/contrib/ncurses/form/fty_ipv4.c b/contrib/ncurses/form/fty_ipv4.c
deleted file mode 100644
index 5d1a2098ef94..000000000000
--- a/contrib/ncurses/form/fty_ipv4.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/***************************************************************************
-* *
-* Author : Per Foreby, perf@efd.lth.se *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fty_ipv4.c,v 1.8 2006/12/02 19:33:02 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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(UChar(*bp))) /* Must start with digit */
- {
- num = sscanf(bp, "%u.%u.%u.%u%n", &d1, &d2, &d3, &d4, &len);
- if (num == 4)
- {
- bp += len; /* Make bp point to what sscanf() left */
- while (isspace(UChar(*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(UChar(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/contrib/ncurses/form/fty_num.c b/contrib/ncurses/form/fty_num.c
deleted file mode 100644
index e74e8e36fe25..000000000000
--- a/contrib/ncurses/form/fty_num.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fty_num.c,v 1.25 2007/10/13 19:32:54 tom Exp $")
-
-#if HAVE_LOCALE_H
-#include <locale.h>
-#endif
-
-#if HAVE_LOCALE_H
-#define isDecimalPoint(c) ((c) == ((L && L->decimal_point) ? *(L->decimal_point) : '.'))
-#else
-#define isDecimalPoint(c) ((c) == '.')
-#endif
-
-#if USE_WIDEC_SUPPORT
-#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
-#else
-#define isDigit(c) isdigit(UChar(c))
-#endif
-
-#define thisARG numericARG
-
-typedef struct
- {
- int precision;
- double low;
- double high;
- struct lconv *L;
- }
-thisARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_This_Type(va_list * ap)
-|
-| Description : Allocate structure for numeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *
-Make_This_Type(va_list *ap)
-{
- thisARG *argn = typeMalloc(thisARG, 1);
-
- if (argn)
- {
- T((T_CREATE("thisARG %p"), 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_This_Type(const void * argp)
-|
-| Description : Copy structure for numeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *
-Copy_This_Type(const void *argp)
-{
- const thisARG *ap = (const thisARG *)argp;
- thisARG *result = (thisARG *) 0;
-
- if (argp)
- {
- result = typeMalloc(thisARG, 1);
- if (result)
- {
- T((T_CREATE("thisARG %p"), result));
- *result = *ap;
- }
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_This_Type(void * argp)
-|
-| Description : Free structure for numeric type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void
-Free_This_Type(void *argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_Field(FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid numeric value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool
-Check_This_Field(FIELD *field, const void *argp)
-{
- const thisARG *argn = (const thisARG *)argp;
- double low = argn->low;
- double high = argn->high;
- int prec = argn->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field, 0);
- char *s = (char *)bp;
- double val = 0.0;
- struct lconv *L = argn->L;
- char buf[64];
- bool result = FALSE;
-
- while (*bp && *bp == ' ')
- bp++;
- if (*bp)
- {
- if (*bp == '-' || *bp == '+')
- bp++;
-#if USE_WIDEC_SUPPORT
- if (*bp)
- {
- bool blank = FALSE;
- int state = 0;
- int len;
- int n;
- wchar_t *list = _nc_Widen_String((char *)bp, &len);
-
- if (list != 0)
- {
- result = TRUE;
- for (n = 0; n < len; ++n)
- {
- if (blank)
- {
- if (list[n] != ' ')
- {
- result = FALSE;
- break;
- }
- }
- else if (list[n] == ' ')
- {
- blank = TRUE;
- }
- else if (isDecimalPoint(list[n]))
- {
- if (++state > 1)
- {
- result = FALSE;
- break;
- }
- }
- else if (!isDigit(list[n]))
- {
- result = FALSE;
- break;
- }
- }
- free(list);
- }
- }
-#else
- while (*bp)
- {
- if (!isdigit(UChar(*bp)))
- break;
- bp++;
- }
- if (isDecimalPoint(*bp))
- {
- bp++;
- while (*bp)
- {
- if (!isdigit(UChar(*bp)))
- break;
- bp++;
- }
- }
- while (*bp && *bp == ' ')
- bp++;
- result = (*bp == '\0');
-#endif
- if (result)
- {
- val = atof(s);
- if (low < high)
- {
- if (val < low || val > high)
- result = FALSE;
- }
- if (result)
- {
- sprintf(buf, "%.*f", (prec > 0 ? prec : 0), val);
- set_field_buffer(field, 0, buf);
- }
- }
- }
- return (result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_This_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the numeric type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool
-Check_This_Character(int c, const void *argp)
-{
- const thisARG *argn = (const thisARG *)argp;
- struct lconv *L = argn->L;
-
- return ((isDigit(c) ||
- c == '+' ||
- c == '-' ||
- isDecimalPoint(c))
- ? TRUE
- : FALSE);
-}
-
-static FIELDTYPE typeTHIS =
-{
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_This_Type,
- Copy_This_Type,
- Free_This_Type,
- Check_This_Field,
- Check_This_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeTHIS;
-
-/* fty_num.c ends here */
diff --git a/contrib/ncurses/form/fty_regex.c b/contrib/ncurses/form/fty_regex.c
deleted file mode 100644
index 247779f28c1d..000000000000
--- a/contrib/ncurses/form/fty_regex.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id: fty_regex.c,v 1.21 2007/10/13 19:33:50 tom Exp $")
-
-#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 = typeMalloc(RegExp_Arg, 1);
-
- if (preg)
- {
- T((T_CREATE("RegExp_Arg %p"), preg));
- if (((preg->pRegExp = typeMalloc(regex_t, 1)) != 0)
- && !regcomp(preg->pRegExp, rx,
- (REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
- {
- T((T_CREATE("regex_t %p"), preg->pRegExp));
- preg->refCount = typeMalloc(unsigned long, 1);
-
- *(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 = typeMalloc(RegExp_Arg, 1);
-
- if (pArg)
- {
- int blen = RX_INCREMENT;
-
- T((T_CREATE("RegExp_Arg %p"), pArg));
- pArg->compiled_expression = NULL;
- pArg->refCount = typeMalloc(unsigned long, 1);
-
- *(pArg->refCount) = 1;
-
- do
- {
- char *buf = typeMalloc(char, 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/contrib/ncurses/form/headers b/contrib/ncurses/form/headers
deleted file mode 100644
index 56d72f012238..000000000000
--- a/contrib/ncurses/form/headers
+++ /dev/null
@@ -1,32 +0,0 @@
-##############################################################################
-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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
-# vile:makemode
diff --git a/contrib/ncurses/form/llib-lform b/contrib/ncurses/form/llib-lform
deleted file mode 100644
index bd7c3a4f1d87..000000000000
--- a/contrib/ncurses/form/llib-lform
+++ /dev/null
@@ -1,734 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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,2002,2005 *
- ****************************************************************************/
-/* LINTLIBRARY */
-
-/* ./f_trace.c */
-
-#include "form.priv.h"
-
-#undef _nc_retrace_field_ptr
-FIELD **_nc_retrace_field_ptr(
- FIELD **code)
- { return(*(FIELD ***)0); }
-
-#undef _nc_retrace_field
-FIELD *_nc_retrace_field(
- FIELD *code)
- { return(*(FIELD **)0); }
-
-#undef _nc_retrace_field_type
-FIELDTYPE *_nc_retrace_field_type(
- FIELDTYPE *code)
- { return(*(FIELDTYPE **)0); }
-
-#undef _nc_retrace_form
-FORM *_nc_retrace_form(
- FORM *code)
- { return(*(FORM **)0); }
-
-#undef _nc_retrace_form_hook
-Form_Hook _nc_retrace_form_hook(
- Form_Hook code)
- { return(*(Form_Hook *)0); }
-
-/* ./fld_arg.c */
-
-#undef set_fieldtype_arg
-int set_fieldtype_arg(
- FIELDTYPE *typ,
- 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/contrib/ncurses/form/llib-lformw b/contrib/ncurses/form/llib-lformw
deleted file mode 100644
index 7690c5b0bd88..000000000000
--- a/contrib/ncurses/form/llib-lformw
+++ /dev/null
@@ -1,740 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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,2005 *
- ****************************************************************************/
-/* LINTLIBRARY */
-
-/* ./f_trace.c */
-
-#include "form.priv.h"
-
-#undef _nc_retrace_field_ptr
-FIELD **_nc_retrace_field_ptr(
- FIELD **code)
- { return(*(FIELD ***)0); }
-
-#undef _nc_retrace_field
-FIELD *_nc_retrace_field(
- FIELD *code)
- { return(*(FIELD **)0); }
-
-#undef _nc_retrace_field_type
-FIELDTYPE *_nc_retrace_field_type(
- FIELDTYPE *code)
- { return(*(FIELDTYPE **)0); }
-
-#undef _nc_retrace_form
-FORM *_nc_retrace_form(
- FORM *code)
- { return(*(FORM **)0); }
-
-#undef _nc_retrace_form_hook
-Form_Hook _nc_retrace_form_hook(
- Form_Hook code)
- { return(*(Form_Hook *)0); }
-
-/* ./fld_arg.c */
-
-#undef set_fieldtype_arg
-int set_fieldtype_arg(
- FIELDTYPE *typ,
- 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); }
-
-#undef _nc_Widen_String
-wchar_t *_nc_Widen_String(
- char *source,
- int *lengthp)
- { return(*(wchar_t **)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/contrib/ncurses/form/modules b/contrib/ncurses/form/modules
deleted file mode 100644
index 89f9f9f54346..000000000000
--- a/contrib/ncurses/form/modules
+++ /dev/null
@@ -1,76 +0,0 @@
-# $Id: modules,v 1.15 2006/12/24 00:52:58 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1995-on
-#
-
-@ base
-# Library objects
-f_trace lib $(srcdir) $(FORM_PRIV_H)
-fld_arg lib $(srcdir) $(FORM_PRIV_H)
-fld_attr lib $(srcdir) $(FORM_PRIV_H)
-fld_current lib $(srcdir) $(FORM_PRIV_H)
-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)
-
-# vile:makemode
diff --git a/contrib/ncurses/include/Caps b/contrib/ncurses/include/Caps
deleted file mode 100644
index 7c63c7f039a5..000000000000
--- a/contrib/ncurses/include/Caps
+++ /dev/null
@@ -1,1264 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or 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: Caps,v 1.36 2006/05/27 15:33:04 tom Exp $
-#
-# 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 lock memory above cursor
-memory_unlock memu str mu - - ----K unlock memory
-#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/contrib/ncurses/include/Caps.aix4 b/contrib/ncurses/include/Caps.aix4
deleted file mode 100644
index 75913dc6e9a4..000000000000
--- a/contrib/ncurses/include/Caps.aix4
+++ /dev/null
@@ -1,1255 +0,0 @@
-##############################################################################
-# Copyright (c) 2001-2002,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas Dickey
-#
-# $Id: Caps.aix4,v 1.7 2006/05/27 15:33:04 tom Exp $
-#
-# This is an adaptation of ncurses' termcap/terminfo capability table, which
-# is designed to align with AIX 4.x's terminfo.
-#
-# This table is used to generate initializers for tables that drive tic,
-# infocmp, and the library compilation code used to support the termcap
-# compatibility hack. It is also used to generate the tabular portion of the
-# terminfo(5) man page; lines beginning with `#%' are passed through to become
-# the terminfo table.
-#
-# This file has three major sections; a standard-capabilities table, two
-# extension-capability tables, and a section of aliases declarations.
-# The first two have the same format, as follows:
-#
-# FILE FORMAT
-#
-# Column 1: terminfo variable name
-# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
-# Column 4: termcap capability name
-# Column 5: KEY_xxx name, if any, `-' otherwise
-# Column 6: value for KEY_xxx name, if any, `-' otherwise
-# Column 7: Lead with `Y' if capability should be emitted in termcap
-# translations, `-' otherwise
-# Column 8: capability description
-#
-# The codes following [Y-] in column 7 describe the versions of termcap which
-# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
-# termcap entry translations that are more than 1023 bytes long (and tank a
-# lot of old termcap-using programs). The codes read as follows:
-# B = mentioned in the BSD man page for 4.4BSD curses
-# C = used by the 4.4BSD curses library
-# G = mentioned in the documentation for GNU termcap
-# E = used by GNU Emacs
-# K = remove this terminfo capability when translating to standard format
-# The important codes are C and E. A cap with C or E should be preserved in
-# translation if possible. The problem is that preserving all such caps may
-# lead to some termcap translations being too long. The termcap maintainer
-# has a bit of a juggling act to do...potential problem cases are marked with
-# an asterisk (*).
-#
-# The aliases section has the following format:
-#
-# Column 1: either `capalias' or `infoalias'
-# Column 2: name to be aliased
-# Column 3: what name it should translate to. The name IGNORE means it
-# should be discarded with a warning message.
-# Column 4: name of the extension set (used for compiler warning messages)
-# Column 5: capability description (usually an associated terminfo variable)
-#
-# HANDLING TERMCAP AND TERMINFO EXTENSIONS
-#
-# There are basically five different ways to handle termcap and terminfo
-# extensions:
-#
-# 1. Don't list the capname here, or list it but comment it out (the latter
-# is preferable; someone might want to handle it in the future). If you do
-# this, the capability will be treated as unknown and raise a warning from
-# the compiler.
-#
-# 2. Alias it. This is appropriate if the capability has the same meaning
-# as an already-supported one. The compiler will handle aliasing, emitting
-# an appropriate informational message whenever an alias fires.
-#
-# 3. List it in the standard table. You almost certainly do *not* want
-# to do this -- the capabilities in that one, and their order, have been
-# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up the ncurses
-# library what to do with the terminfo data after it's read in.
-#
-# 4. List it in the aliases table with an IGNORE target field. If you
-# do this, the capability will be ignored on input (though the user will
-# get a warning message about it).
-#
-# 5. List it in the extensions table. If you do this, the compiler will
-# silently accept the capability, but the curses library proper will never
-# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
-#
-# There are two opposite reasons to choose option 5. One is when you want
-# to eat the capability silently and discard it when doing translations
-# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
-# in this class. Nothing will ever use them again.
-#
-# More usually, you want the compiler to try to deduce something from the
-# capability value that it can use to translate it into your output format.
-# You'll need to write custom code, probably in postprocess_termcap() or
-# postprocess_terminfo(), to handle the translation.
-#
-# CONTROLLING ENTRY LENGTH
-#
-# Notes on specific elisions made to fit translations within 1023 bytes:
-#
-# Machines with IBM PC-like keyboards want to be able to define the following
-# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
-# only environments for End or Home-Down), key_dc, and key_ic. This is also
-# the set of keys the `joe' editor will be upset if it can't see. So don't
-# trim those out of the set to be translated to termcap, or various users of
-# the termcap file will become irate.
-#
-# It might look tempting to leave those long init strings out of translations.
-# We can't do it (yet); 4.4BSD tput and tset use them.
-#
-# We retain the sgr capability in translation in spite of the fact that neither
-# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
-# hard to understand without it, and (b) the entries in which it is long tend
-# to be older types that don't use up a lot of string space on function keys.
-# The tic(1) translation code will complain and elide it if it makes a critical
-# difference (there is special code in tic to recognize this situation).
-#
-# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
-# optimizer in BSD curses didn't use them. This omission seems to be the
-# single most effective one, it shortened the resolved length of all thirteen
-# problem entries in the 9.9.0 version of the terminfo master below critical.
-#
-# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
-# translations go back over critical if we do this. As 4.4BSD curses fades
-# into history and GNU termcap's application base shrinks towards being GNU
-# Emacs only, we'll probably elide out some BSD-only capabilities in order
-# to buy space for non-essentials Emacs is still using. Capabilities high
-# on that hit list: rc, sc, uc.
-#
-#############################################################################
-#
-# STANDARD CAPABILITIES
-#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
-#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
-#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed through tparm with
-#%parms as given (#\fIi\fP).
-#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
-#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
-#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
-auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
-auto_right_margin am bool am - - YBCGE terminal has automatic margins
-no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
-ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
-eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
-erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
-generic_type gn bool gn - - YB-G- generic line type
-hard_copy hc bool hc - - YBCG- hardcopy terminal
-has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
-has_status_line hs bool hs - - YB-G- has extra status line
-insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
-memory_above da bool da - - YBCG- display may be retained above the screen
-memory_below db bool db - - YB-GE display may be retained below the screen
-move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
-move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
-over_strike os bool os - - YBCG- terminal can overstrike
-status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
-dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
-tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine)
-transparent_underline ul bool ul - - YBCGE underline character overstrikes
-xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
-needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
-prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
-hard_cursor chts bool HC - - ----- cursor is hard to see
-non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
-no_pad_char npc bool NP - - ----- pad character does not exist
-non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
-can_change ccc bool cc - - ----- terminal can re-define existing colors
-back_color_erase bce bool ut - - ----- screen erased with background color
-hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
-col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps
-cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode
-has_print_wheel daisy bool YC - - ----- printer needs operator to change character set
-row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
-semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
-cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
-lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
-#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
-columns cols num co - - YBCGE number of columns in a line
-init_tabs it num it - - YB-G- tabs initially every # spaces
-lines lines num li - - YBCGE number of lines on screen or page
-lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
-magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
-padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
-virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
-width_status_line wsl num ws - - YB-G- number of columns in status line
-num_labels nlab num Nl - - ----- number of labels on screen
-label_height lh num lh - - ----- rows in each label
-label_width lw num lw - - ----- columns in each label
-max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
-maximum_windows wnum num MW - - ----- maximum number of defineable windows
-# These came in with SVr4's color support
-max_colors colors num Co - - ----- maximum number of colors on screen
-max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
-no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
-#%.TE
-#%.ad
-#%
-#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
-buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
-dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
-dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
-max_micro_address maddr num Yd - - ----- maximum value in micro_..._address
-max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro
-micro_col_size mcs num Yf - - ----- character step size when in micro mode
-micro_line_size mls num Yg - - ----- line step size when in micro mode
-number_of_pins npins num Yh - - ----- numbers of pins in print-head
-output_res_char orc num Yi - - ----- horizontal resolution in units per line
-output_res_line orl num Yj - - ----- vertical resolution in units per line
-output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch
-output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch
-print_rate cps num Ym - - ----- print rate in characters per second
-wide_char_size widcs num Yn - - ----- character step size when in double wide mode
-buttons btns num BT - - ----- number of buttons on mouse
-bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
-bit_image_type bitype num Yp - - ----- type of bit-image device
-#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-back_tab cbt str bt - - YBCGE back tab (P)
-bell bel str bl - - YB-GE audible signal (bell) (P)
-carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
-change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
-clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
-clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
-clr_eol el str ce - - YBCGE clear to end of line (P)
-clr_eos ed str cd - - YBCGE clear to end of screen (P*)
-column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
-command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
-cursor_address cup str cm - - YBCGE move to row #1 columns #2
-cursor_down cud1 str do - - YBCGE down one line
-cursor_home home str ho - - YBCGE home cursor (if no cup)
-cursor_invisible civis str vi - - YB-G- make cursor invisible
-cursor_left cub1 str le - - YBCGE move left one space
-cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
-cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
-cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
-cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
-cursor_up cuu1 str up - - YBCGE up one line
-cursor_visible cvvis str vs - - YBCGE make cursor very visible
-delete_character dch1 str dc - - YBCGE delete character (P*)
-delete_line dl1 str dl - - YBCGE delete line (P*)
-dis_status_line dsl str ds - - YB-G- disable status line
-down_half_line hd str hd - - YB-G- half a line down
-enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
-enter_blink_mode blink str mb - - YB-G- turn on blinking
-enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
-enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
-enter_delete_mode smdc str dm - - YBCGE enter delete mode
-enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
-enter_insert_mode smir str im - - YBCGE enter insert mode
-enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
-enter_protected_mode prot str mp - - -B-G-* turn on protected mode
-enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
-enter_standout_mode smso str so - - YBCGE begin standout mode
-enter_underline_mode smul str us - - YBCGE begin underline mode
-erase_chars ech str ec - - YB-G- erase #1 characters (P)
-exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
-exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
-exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
-exit_delete_mode rmdc str ed - - YBCGE end delete mode
-exit_insert_mode rmir str ei - - YBCGE exit insert mode
-exit_standout_mode rmso str se - - YBCGE exit standout mode
-exit_underline_mode rmul str ue - - YBCGE exit underline mode
-flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
-form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
-from_status_line fsl str fs - - YB-G- return from status line
-init_1string is1 str i1 - - YB-G- initialization string
-init_2string is2 str is - - YB-G- initialization string
-init_3string is3 str i3 - - YB-G- initialization string
-init_file if str if - - YB-G- name of initialization file
-insert_character ich1 str ic - - YBCGE insert character (P)
-insert_line il1 str al - - YBCGE insert line (P*)
-insert_padding ip str ip - - YBCGE insert padding after inserted character
-key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
-key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
-key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
-key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
-key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
-key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
-key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
-key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
-key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
-key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
-key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
-key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
-key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
-key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
-key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
-key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
-key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
-key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
-key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
-key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
-key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
-key_home khome str kh KEY_HOME 0406 YBCGE home key
-key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
-key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
-key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
-key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
-key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
-key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
-key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
-key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
-key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
-key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
-key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
-keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
-keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
-lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
-lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
-lab_f10 lf10 str la - - ----- label on function key f10 if not f10
-lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
-lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
-lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
-lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
-lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
-lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
-lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
-lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
-meta_off rmm str mo - - YB-G-* turn off meta mode
-meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
-newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
-pad_char pad str pc - - YBCGE padding char (instead of null)
-parm_dch dch str DC - - YB-GE delete #1 characters (P*)
-parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
-parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
-parm_ich ich str IC - - YB-GE insert #1 characters (P*)
-parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
-parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
-parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
-parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
-parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
-parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
-pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
-pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
-pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
-print_screen mc0 str ps - - -B-G-* print contents of screen
-prtr_off mc4 str pf - - -B-G-* turn off printer
-prtr_on mc5 str po - - -B-G-* turn on printer
-repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
-reset_1string rs1 str r1 - - -B--- reset string
-reset_2string rs2 str r2 - - -B--- reset string
-reset_3string rs3 str r3 - - -B--- reset string
-reset_file rf str rf - - -B--- name of reset file
-restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
-row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
-save_cursor sc str sc - - YBCG- save current cursor position (P)
-scroll_forward ind str sf - - YBCGE scroll text up (P)
-scroll_reverse ri str sr - - YBCGE scroll text down (P)
-set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
-set_tab hts str st - - YB-G- set a tab in every row, current columns
-set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
-tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
-to_status_line tsl str ts - - YB-G- move to status line, column #1
-underline_char uc str uc - - YBCG- underline char and move past it
-up_half_line hu str hu - - YB-G- half a line up
-init_prog iprog str iP - - -B--- path name of program for initialization
-key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
-key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
-key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
-key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
-key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
-prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
-#
-# IBM extensions
-#
-# These extensions follow ptr_non (replacing everything after it) in IBM
-# terminfo files.
-#
-# The places in the box[12] capabilities correspond to acsc characters, here is
-# the mapping:
-#
-# box1[0] = ACS_ULCORNER
-# box1[1] = ACS_HLINE
-# box1[2] = ACS_URCORNER
-# box1[3] = ACS_VLINE
-# box1[4] = ACS_LRCORNER
-# box1[5] = ACS_LLCORNER
-# box1[6] = ACS_TTEE
-# box1[7] = ACS_RTEE
-# box1[8] = ACS_BTEE
-# box1[9] = ACS_LTEE
-# box1[10] = ACS_PLUS
-#
-# The box2 characters are the double-line versions of these forms graphics.
-#
-box_chars_1 box1 str bx - - ----K box characters primary set
-box_chars_2 box2 str by - - ----K box characters secondary set
-box_attr_1 batt1 str Bx - - ----K attributes for box1
-box_attr_2 batt2 str By - - ----K attributes for box2
-color_bg_0 colb0 str d0 - - ----K background color 0
-color_bg_1 colb1 str d1 - - ----K background color 1
-color_bg_2 colb2 str d2 - - ----K background color 2
-color_bg_3 colb3 str d3 - - ----K background color 3
-color_bg_4 colb4 str d4 - - ----K background color 4
-color_bg_5 colb5 str d5 - - ----K background color 5
-color_bg_6 colb6 str d6 - - ----K background color 6
-color_bg_7 colb7 str d7 - - ----K background color 7
-color_fg_0 colf0 str c0 - - ----K foreground color 0
-color_fg_1 colf1 str c1 - - ----K foreground color 1
-color_fg_2 colf2 str c2 - - ----K foreground color 2
-color_fg_3 colf3 str c3 - - ----K foreground color 3
-color_fg_4 colf4 str c4 - - ----K foreground color 4
-color_fg_5 colf5 str c5 - - ----K foreground color 5
-color_fg_6 colf6 str c6 - - ----K foreground color 6
-color_fg_7 colf7 str c7 - - ----K foreground color 7
-font_0 font0 str f0 - - ----K select font 0
-font_1 font1 str f1 - - ----K select font 1
-font_2 font2 str f2 - - ----K select font 2
-font_3 font3 str f3 - - ----K select font 3
-font_4 font4 str f4 - - ----K select font 4
-font_5 font5 str f5 - - ----K select font 5
-font_6 font6 str f6 - - ----K select font 6
-font_7 font7 str f7 - - ----K select font 7
-key_back_tab kbtab str k0 - - ----K backtab key
-key_do kdo str ki - - ----K do request key
-key_command kcmd str kd - - ----K command-request key
-key_command_pane kcpn str kW - - ----K command-pane key
-key_end kend str kw KEY_END 0550 ----- end key
-key_help khlp str kq - - ----- help key
-key_newline knl str nl - - ----K newline key
-key_next_pane knpn str kv - - ----K next-pane key
-key_prev_cmd kppn str kp - - ----K previous-command key
-key_prev_pane kppn str kV - - ----K previous-pane key
-key_quit kquit str kQ - - ----K quit key
-key_select_aix ksel str kU - - ----- select key
-key_scroll_left kscl str kz - - ----K scroll left
-key_scroll_right kscr str kZ - - ----K scroll right
-key_tab ktab str ko - - ----K tab key
-key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
-key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
-key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
-key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
-key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
-key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
-key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
-key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
-key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
-key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
-appl_defined_str apstr str za - - ----K application-defined string
-key_smap_in6 kmpf6 str kr - - ----K special mapped key 6 input
-key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output
-key_smap_in7 kmpf7 str ks - - ----K special mapped key 7 input
-key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output
-key_smap_in8 kmpf8 str kt - - ----K special mapped key 8 input
-key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output
-key_smap_in9 kmpf9 str ku - - ----K special mapped key 9 input
-key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output
-key_sf1 ksf1 str S1 - - ----K special function key 1
-key_sf2 ksf2 str S2 - - ----K special function key 2
-key_sf3 ksf3 str S3 - - ----K special function key 3
-key_sf4 ksf4 str S4 - - ----K special function key 4
-key_sf5 ksf5 str S5 - - ----K special function key 5
-key_sf6 ksf6 str S6 - - ----K special function key 6
-key_sf7 ksf7 str S7 - - ----K special function key 7
-key_sf8 ksf8 str S8 - - ----K special function key 8
-key_sf9 ksf9 str S9 - - ----K special function key 9
-key_sf10 ksf10 str S0 - - ----K special function key 10
-key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
-key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
-key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
-key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
-key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
-key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
-key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
-key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
-key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
-key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
-key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
-key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
-key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
-key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
-key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
-key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
-key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
-key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
-key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
-key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
-key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
-key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
-key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
-key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
-key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
-key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
-key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
-key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
-key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
-key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
-key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
-key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
-key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
-key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
-key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
-key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
-key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
-key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
-key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
-key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
-key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
-key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
-key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
-key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
-key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
-key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
-key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
-key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
-key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
-key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
-key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
-key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
-key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
-key_action kact str kJ - - ----K sent by action key
-
-# The IBM docs say these capabilities are for table-drawing, and are
-# valid only for aixterm descriptions.
-enter_topline_mode topl str tp - - ----K start top-line mode
-enter_bottom_mode btml str bm - - ----K start bottom-line mode
-enter_rvert_mode rvert str rv - - ----K start right-vertical mode
-enter_lvert_mode lvert str lv - - ----K start left-vertical mode
-#
-# SVr4 capabilities resume here. Note that key_end is in the IBM-extensions.
-#
-char_padding rmp str rP - - ----- like ip but when in insert mode
-acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
-plab_norm pln str pn - - ----- program label #1 to show string #2
-key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key
-enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
-exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
-enter_am_mode smam str SA - - ----- turn on automatic margins
-exit_am_mode rmam str RA - - ----- turn off automatic margins
-xon_character xonc str XN - - ----- XON character
-xoff_character xoffc str XF - - ----- XOFF character
-ena_acs enacs str eA - - ----- enable alternate char set
-label_on smln str LO - - ----- turn on soft labels
-label_off rmln str LF - - ----- turn off soft labels
-key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
-key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
-key_close kclo str @3 KEY_CLOSE 0544 ----- close key
-#key_command kcmd str @4 KEY_COMMAND 0545 ----- command key
-key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
-key_create kcrt str @6 KEY_CREATE 0547 ----- create key
-#key_end kend str @7 KEY_END 0550 ----- end key
-key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
-key_exit kext str @9 KEY_EXIT 0551 ----- exit key
-key_find kfnd str @0 KEY_FIND 0552 ----- find key
-#key_help khlp str %1 KEY_HELP 0553 ----- help key
-key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
-key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
-key_move kmov str %4 KEY_MOVE 0556 ----- move key
-key_next knxt str %5 KEY_NEXT 0557 ----- next key
-key_open kopn str %6 KEY_OPEN 0560 ----- open key
-key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
-key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
-key_print kprt str %9 KEY_PRINT 0532 ----- print key
-key_redo krdo str %0 KEY_REDO 0563 ----- redo key
-key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
-key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
-key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
-key_restart krst str &4 KEY_RESTART 0567 ----- restart key
-key_resume kres str &5 KEY_RESUME 0570 ----- resume key
-key_save ksav str &6 KEY_SAVE 0571 ----- save key
-key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
-key_undo kund str &8 KEY_UNDO 0630 ----- undo key
-key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
-key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
-key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
-key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
-key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
-key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
-key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
-key_select kslt str *6 KEY_SELECT 0601 ----- select key
-key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
-key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
-key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
-key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
-key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
-key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
-key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
-key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
-key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
-key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
-key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
-key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
-key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
-key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
-key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
-key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
-key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
-key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
-key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
-key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
-key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
-req_for_input rfi str RF - - ----- send next input char (for ptys)
-clr_bol el1 str cb - - ----- Clear to beginning of line
-clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
-set_right_margin smgr str MR - - ----- set right soft margin at current column
-label_format fln str Lf - - ----- label format
-set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
-display_clock dclk str DK - - ----- display clock
-remove_clock rmclk str RC - - ----- remove clock
-create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5
-goto_window wingo str WG - - ----- go to window #1
-hangup hup str HU - - ----- hang-up phone
-dial_phone dial str DI - - ----- dial number #1
-quick_dial qdial str QD - - ----- dial number #1 without checking
-tone tone str TO - - ----- select touch tone dialing
-pulse pulse str PU - - ----- select pulse dialing
-flash_hook hook str fh - - ----- flash switch hook
-fixed_pause pause str PA - - ----- pause for 2-3 seconds
-wait_tone wait str WA - - ----- wait for dial-tone
-user0 u0 str u0 - - ----- User string #0
-user1 u1 str u1 - - ----- User string #1
-user2 u2 str u2 - - ----- User string #2
-user3 u3 str u3 - - ----- User string #3
-user4 u4 str u4 - - ----- User string #4
-user5 u5 str u5 - - ----- User string #5
-user6 u6 str u6 - - ----- User string #6
-user7 u7 str u7 - - ----- User string #7
-user8 u8 str u8 - - ----- User string #8
-user9 u9 str u9 - - ----- User string #9
-#
-# SVr4 added these capabilities to support color
-#
-orig_pair op str op - - ----- Set default pair to its original value
-orig_colors oc str oc - - ----- Set all color pairs to the original ones
-initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
-initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
-set_color_pair scp str sp - - ----- Set current color pair to #1
-set_foreground setf str Sf - - ----- Set foreground color #1
-set_background setb str Sb - - ----- Set background color #1
-#
-# SVr4 added these capabilities to support printers
-#
-change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1
-change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1
-change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
-change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
-define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
-enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
-enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
-enter_italics_mode sitm str ZH - - ----- Enter italic mode
-enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
-enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode
-enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode
-enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode
-enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode
-enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode
-enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode
-enter_upward_mode sum str ZP - - ----- Start upward carriage motion
-exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode
-exit_italics_mode ritm str ZR - - ----- End italic mode
-exit_leftward_mode rlm str ZS - - ----- End left-motion mode
-exit_micro_mode rmicm str ZT - - ----- End micro-motion mode
-exit_shadow_mode rshm str ZU - - ----- End shadow-print mode
-exit_subscript_mode rsubm str ZV - - ----- End subscript mode
-exit_superscript_mode rsupm str ZW - - ----- End superscript mode
-exit_upward_mode rum str ZX - - ----- End reverse character motion
-micro_column_address mhpa str ZY - - ----- Like column_address in micro mode
-micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode
-micro_left mcub1 str Za - - ----- Like cursor_left in micro mode
-micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode
-micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode
-micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode
-order_of_pins porder str Ze - - ----- Match software bits to print-head pins
-parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode
-parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode
-parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode
-parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode
-select_char_set scs str Zj - - ----- Select character set, #1
-set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line
-set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
-set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
-set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1
-set_top_margin smgt str Zo - - ----- Set top margin at current line
-set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1
-start_bit_image sbim str Zq - - ----- Start printing bit image graphics
-start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set
-stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics
-stop_char_set_def rcsd str Zt - - ----- End definition of character set #1
-subscript_characters subcs str Zu - - ----- List of subscriptable characters
-superscript_characters supcs str Zv - - ----- List of superscriptable characters
-these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
-zero_motion zerom str Zx - - ----- No motion for subsequent character
-#%.TE
-#%.ad
-#%
-#%The following string capabilities are present in the SVr4.0 term structure,
-#%but were originally not documented in the man page.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw18.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
-key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
-mouse_info minfo str Mi - - ----- Mouse status information
-req_mouse_pos reqmp str RQ - - ----- Request mouse position
-get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
-set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
-set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
-pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
-device_type devt str dv - - ----- Indicate language/codeset support
-code_set_init csin str ci - - ----- Init sequence for multiple codesets
-set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
-set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
-set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
-set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
-set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
-set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2
-bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times
-bit_image_newline binel str Zz - - ----- Move to next row of the bit image
-bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row
-color_names colornm str Yw - - ----- Give name for color #1
-define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region
-end_bit_image_region endbi str Yy - - ----- End a bit-image region
-set_color_band setcolor str Yz - - ----- Change to ribbon color #1
-set_page_length slines str YZ - - ----- Set page length to #1 lines
-#
-# SVr4 added these capabilities for direct PC-clone support
-#
-display_pc_char dispc str S1 - - ----- Display PC character #1
-enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode
-exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode
-enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode
-exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode
-pc_term_options pctrm str S6 - - ----- PC terminal options
-scancode_escape scesc str S7 - - ----- Escape for scancode emulation
-alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
-#%.TE
-#%.ad
-#%
-#%.in .8i
-#%The XSI Curses standard added these. They are some post-4.1
-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
-#%The \fBncurses\fR termcap names for them are invented; according to the
-#%XSI Curses standard, they have no termcap names. If your compiled terminfo
-#%entries use these, they may not be binary-compatible with System V terminfo
-#%entries after SVr4.1; beware!
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
-enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
-enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
-enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode
-enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
-enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
-set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-#%.TE
-#%.ad
-#
-# The magic token below tells the tic compiler-generator code that all the caps
-# past it should be ignored (not written out) when dumping terminfo objects. It
-# also tells the man page table generator not to pass through following lines
-# This means we can have obsolete capabilities and pseudo-capabilities that are
-# recognized for termcap or terminfo compilation, but not output.
-#
-# %%-STOP-HERE-%%
-#
-# Don't move this casually! In fact, don't move it at all unless you're
-# either doing it to add System V or XPG4 extensions, or have decided you
-# don't care about SVr4 binary compatibility.
-#
-#############################################################################
-#
-# TERMCAP EXTENSION CAPABILITIES
-#
-# The capabilities below are either obsolete or extensions on certain systems.
-# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
-# termcap sources; the rest are listed for completeness, and in case somebody
-# cares about them enough to hack in code that will translate them into
-# terminfo capabilities.
-#
-# The first part of the list is from Ross Ridge's `mytinfo' package
-# (comp.sources.unix, volume 26); the variable names and terminfo names (as
-# well as the termcap codes) match his list.
-#
-# This group of codes is not marked obsolete in 4.4BSD, but have no direct
-# terminfo equivalents. The rs capability is specially translated to terminfo
-# r2, and vice versa, if an entry does not already have an r2. Similarly,
-# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
-# The ug capability is thrown away, but assumed to be whatever sg is if the
-# latter is nonzero and we're dumping in termcap format.
-#
-termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
-termcap_reset OTrs str rs - - YB-G- terminal reset string
-magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
-#
-# Obsolete termcap capabilities. Some are used for termcap translation. The
-# code uses the 'OT' prefix we put on obsolete capabilities to suppress
-# printing them in terminfo source dumps of compiled entries.
-#
-backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
-crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
-no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
-carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
-new_line_delay OTdN num dN - - YB-G- pad needed for LF
-linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
-backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
-#
-# GNU termcap library extensions. The GNU termcap file distributed with
-# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
-# BSD termcap file. The name clash with terminfo MT is resolved by type
-# info; MT is converted to km.
-#
-gnu_has_meta_key OTMT bool MT - - ----E has meta key
-# gnu_tab_width OTtw num tw - - ----E tab width in spaces
-#
-# GNU termcap *does* include the following extended capability, Only the
-# now-obsolete Ann Arbor terminals used it.
-#
-# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
-#
-# The following comments describe capnames so ancient that I believe no
-# software uses them any longer. Some of these have to go because they
-# clash with terminfo names in ways that cannot be resolved by type
-# information.
-#
-# These mytinfo codes are not used in the 4.4BSD curses code. They are
-# marked obsolete in the 4.4BSD manual pages.
-#
-# There is one conflict with terminfo; ma is in both. This conflict is
-# resolved by type information.
-#
-# The `ko' capability is translated by special code. It should contain a
-# comma-separated list of capabilities for which there are corresponding keys.
-# The `kn' code is accepted but ignored.
-#
-# The `ma' capability seems to have been designed to map between the rogue(2)
-# motion keys (including jkhl) and characters emitted by arrow keys on some
-# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
-#
-# Here is a description of memory_lock_above and memory_unlock:
-# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
-# text. All lines above the cursor's current line become locked in place on
-# the screen. Then enter data normally. When the screen fills up, any
-# further data entered forces the first line of unfrozen line text to scroll
-# under the frozen data. Lines scrolled off the screen are inserted into
-# memory immediately preceding the first frozen line." (from the HP 700/96
-# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
-#
-# Applications that use terminfo are supposed to behave as though xr is
-# always true.
-#
-linefeed_is_newline OTNL bool NL - - YB--- move down with \n
-# even_parity OTEP bool EP - - -B--- terminal requires even parity
-# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
-# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
-# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
-# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
-backspace_delay OTdB num dB - - YB-G- padding required for ^H
-# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
-horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
-# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
-number_of_function_keys OTkn num kn - - -B-G- count of function keys
-other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
-arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
-# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
-# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
-has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
-return_does_clr_eol OTxr bool xr - - YB--- return clears the line
-# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
-#
-# mytinfo described this as a termcap capability, but it's not listed in the
-# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
-# package, like System V, behaves as though it is always true.
-#
-# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
-#
-# University of Waterloo termcap extensions (as described in mytinfo).
-# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
-# be resolved by a type check. The descriptions are guesses from what was
-# in the mytinfo tables.
-#
-# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
-# key_kill_char OTkk str kk - - ----- string set by kill key (?)
-# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
-# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
-# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
-#
-# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
-# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
-# check.
-#
-# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
-# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
-# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
-# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
-#
-# The mytinfo capabilities end here.
-#
-# XENIX extensions:
-#
-# Xenix defined its own set of forms-drawing capabilities:
-#
-# cap IBM ASCII description ACS ASCII
-# --- ----------- -------------------- ------------- ------
-# G1 191 \277 M-? single upper right ACS_URCORNER
-# G2 218 \332 M-Z single upper left ACS_ULCORNER
-# G3 192 \300 M-@ single lower left ACS_LLCORNER
-# G4 217 \331 M-Y single lower right ACS_LRCORNER
-# G5 187 \273 M-; double upper right
-# G6 201 \311 M-I double upper left
-# G7 200 \310 M-H double lower left
-# G8 188 \274 M-< double lower right
-# GC 197 \305 M-E single intersection ACS_PLUS _ _
-# GD 194 \302 M-B single down-tick ACS_TTEE |
-# GH 196 \304 M-D single horizontal line ACS_HLINE
-# GL 180 \264 M-4 single left tick ACS_RTEE -|
-# GR 195 \303 M-C single right tick ACS_LTEE |-
-# GU 193 \301 M-A single up tick ACS_BTEE _|_
-# GV 179 \263 M-3 single vertical line ACS_VLINE
-# Gc 206 \316 M-N double intersection
-# Gd 203 \313 M-K double down tick
-# Gh 205 \315 M-M double horizontal line
-# Gl 204 \204 M-L double left tick
-# Gr 185 \271 M-9 double right tick
-# Gu 202 \312 M-J double up tick
-# Gv 186 \272 M-: double vertical line
-#
-# The compiler will translate the single-line caps and discard the others
-# (via IGNORE aliases further down). We don't want to do normal pad
-# translation on these, they're often single-character printable ASCII
-# strings that happen to be numerics. There's awk code in parametrized.sh
-# that detects the acs_ prefix and uses it to suppress pad translation.
-# These terminfo names are invented.
-#
-acs_ulcorner OTG2 str G2 - - ----- single upper left
-acs_llcorner OTG3 str G3 - - ----- single lower left
-acs_urcorner OTG1 str G1 - - ----- single upper right
-acs_lrcorner OTG4 str G4 - - ----- single lower right
-acs_ltee OTGR str GR - - ----- tee pointing right
-acs_rtee OTGL str GL - - ----- tee pointing left
-acs_btee OTGU str GU - - ----- tee pointing up
-acs_ttee OTGD str GD - - ----- tee pointing down
-acs_hline OTGH str GH - - ----- single horizontal line
-acs_vline OTGV str GV - - ----- single vertical line
-acs_plus OTGC str GC - - ----- single intersection
-#
-#############################################################################
-#
-# TERMINFO EXTENSION CAPABILITIES
-#
-# This section is almost all comments. What it's mainly for is to describe
-# what capabilities need to be squeezed out to get down to the XSI Curses
-# standard set. They are flagged with K.
-#
-# HP extensions
-#
-# These extensions follow ptr_non (replacing everything after it) in HP
-# terminfo files. Except for memory_lock and memory_unlock, they are
-# functionally identical to SVr4 extensions, but they make the binary format
-# different. Grrr....
-#
-memory_lock meml str ml - - ----K lock memory above cursor
-memory_unlock memu str mu - - ----K unlock memory
-#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/contrib/ncurses/include/Caps.hpux11 b/contrib/ncurses/include/Caps.hpux11
deleted file mode 100644
index b74acdb44b70..000000000000
--- a/contrib/ncurses/include/Caps.hpux11
+++ /dev/null
@@ -1,1278 +0,0 @@
-##############################################################################
-# Copyright (c) 2002-2003,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas Dickey
-#
-# $Id: Caps.hpux11,v 1.4 2006/05/27 15:33:04 tom Exp $
-#
-# This is an adaptation of ncurses' termcap/terminfo capability table, which
-# is designed to align with HPUX 11.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
-# end booleans for HPUX 9, 10 (non-color curses)
-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
-# end numbers for HPUX 9, 10 (non-color curses)
-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 lock memory above cursor
-memory_unlock memu str mu - - ----K unlock memory
-#
-#
-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
-# end of strings in HPUX 9
-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/contrib/ncurses/include/Caps.keys b/contrib/ncurses/include/Caps.keys
deleted file mode 100644
index 6841ae5c1d5b..000000000000
--- a/contrib/ncurses/include/Caps.keys
+++ /dev/null
@@ -1,1354 +0,0 @@
-##############################################################################
-# Copyright (c) 2001-2002,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas Dickey
-# and: Ilya Zakharevich
-#
-# $Id: Caps.keys,v 1.3 2006/05/27 15:33:04 tom Exp $
-#
-# This is an adaptation of ncurses' termcap/terminfo capability table, which
-# is illustrates an experimental extension to describe alt-, shift- and
-# control-modifiers applied to function and normal keys, as done on IBM pc's.
-#
-# This table is used to generate initializers for tables that drive tic,
-# infocmp, and the library compilation code used to support the termcap
-# compatibility hack. It is also used to generate the tabular portion of the
-# terminfo(5) man page; lines beginning with `#%' are passed through to become
-# the terminfo table.
-#
-# This file has three major sections; a standard-capabilities table, two
-# extension-capability tables, and a section of aliases declarations.
-# The first two have the same format, as follows:
-#
-# FILE FORMAT
-#
-# Column 1: terminfo variable name
-# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
-# Column 4: termcap capability name
-# Column 5: KEY_xxx name, if any, `-' otherwise
-# Column 6: value for KEY_xxx name, if any, `-' otherwise
-# Column 7: Lead with `Y' if capability should be emitted in termcap
-# translations, `-' otherwise
-# Column 8: capability description
-#
-# The codes following [Y-] in column 7 describe the versions of termcap which
-# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
-# termcap entry translations that are more than 1023 bytes long (and tank a
-# lot of old termcap-using programs). The codes read as follows:
-# B = mentioned in the BSD man page for 4.4BSD curses
-# C = used by the 4.4BSD curses library
-# G = mentioned in the documentation for GNU termcap
-# E = used by GNU Emacs
-# K = remove this terminfo capability when translating to standard format
-# The important codes are C and E. A cap with C or E should be preserved in
-# translation if possible. The problem is that preserving all such caps may
-# lead to some termcap translations being too long. The termcap maintainer
-# has a bit of a juggling act to do...potential problem cases are marked with
-# an asterisk (*).
-#
-# The aliases section has the following format:
-#
-# Column 1: either `capalias' or `infoalias'
-# Column 2: name to be aliased
-# Column 3: what name it should translate to. The name IGNORE means it
-# should be discarded with a warning message.
-# Column 4: name of the extension set (used for compiler warning messages)
-# Column 5: capability description (usually an associated terminfo variable)
-#
-# HANDLING TERMCAP AND TERMINFO EXTENSIONS
-#
-# There are basically five different ways to handle termcap and terminfo
-# extensions:
-#
-# 1. Don't list the capname here, or list it but comment it out (the latter
-# is preferable; someone might want to handle it in the future). If you do
-# this, the capability will be treated as unknown and raise a warning from
-# the compiler.
-#
-# 2. Alias it. This is appropriate if the capability has the same meaning
-# as an already-supported one. The compiler will handle aliasing, emitting
-# an appropriate informational message whenever an alias fires.
-#
-# 3. List it in the standard table. You almost certainly do *not* want
-# to do this -- the capabilities in that one, and their order, have been
-# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up the ncurses
-# library what to do with the terminfo data after it's read in.
-#
-# 4. List it in the aliases table with an IGNORE target field. If you
-# do this, the capability will be ignored on input (though the user will
-# get a warning message about it).
-#
-# 5. List it in the extensions table. If you do this, the compiler will
-# silently accept the capability, but the curses library proper will never
-# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
-#
-# There are two opposite reasons to choose option 5. One is when you want
-# to eat the capability silently and discard it when doing translations
-# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
-# in this class. Nothing will ever use them again.
-#
-# More usually, you want the compiler to try to deduce something from the
-# capability value that it can use to translate it into your output format.
-# You'll need to write custom code, probably in postprocess_termcap() or
-# postprocess_terminfo(), to handle the translation.
-#
-# CONTROLLING ENTRY LENGTH
-#
-# Notes on specific elisions made to fit translations within 1023 bytes:
-#
-# Machines with IBM PC-like keyboards want to be able to define the following
-# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
-# only environments for End or Home-Down), key_dc, and key_ic. This is also
-# the set of keys the `joe' editor will be upset if it can't see. So don't
-# trim those out of the set to be translated to termcap, or various users of
-# the termcap file will become irate.
-#
-# It might look tempting to leave those long init strings out of translations.
-# We can't do it (yet); 4.4BSD tput and tset use them.
-#
-# We retain the sgr capability in translation in spite of the fact that neither
-# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
-# hard to understand without it, and (b) the entries in which it is long tend
-# to be older types that don't use up a lot of string space on function keys.
-# The tic(1) translation code will complain and elide it if it makes a critical
-# difference (there is special code in tic to recognize this situation).
-#
-# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
-# optimizer in BSD curses didn't use them. This omission seems to be the
-# single most effective one, it shortened the resolved length of all thirteen
-# problem entries in the 9.9.0 version of the terminfo master below critical.
-#
-# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
-# translations go back over critical if we do this. As 4.4BSD curses fades
-# into history and GNU termcap's application base shrinks towards being GNU
-# Emacs only, we'll probably elide out some BSD-only capabilities in order
-# to buy space for non-essentials Emacs is still using. Capabilities high
-# on that hit list: rc, sc, uc.
-#
-#############################################################################
-#
-# STANDARD CAPABILITIES
-#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
-#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
-#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed through tparm with
-#%parms as given (#\fIi\fP).
-#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
-#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
-#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
-auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
-auto_right_margin am bool am - - YBCGE terminal has automatic margins
-no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
-ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
-eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
-erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
-generic_type gn bool gn - - YB-G- generic line type
-hard_copy hc bool hc - - YBCG- hardcopy terminal
-has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
-has_status_line hs bool hs - - YB-G- has extra status line
-insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
-memory_above da bool da - - YBCG- display may be retained above the screen
-memory_below db bool db - - YB-GE display may be retained below the screen
-move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
-move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
-over_strike os bool os - - YBCG- terminal can overstrike
-status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
-dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
-tilde_glitch hz bool hz - - YB-GE can't print ~'s (hazeltine)
-transparent_underline ul bool ul - - YBCGE underline character overstrikes
-xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
-needs_xon_xoff nxon bool nx - - ----- padding won't work, xon/xoff required
-prtr_silent mc5i bool 5i - - ----- printer won't echo on screen
-hard_cursor chts bool HC - - ----- cursor is hard to see
-non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
-no_pad_char npc bool NP - - ----- pad character does not exist
-non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
-can_change ccc bool cc - - ----- terminal can re-define existing colors
-back_color_erase bce bool ut - - ----- screen erased with background color
-hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
-col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps
-cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode
-has_print_wheel daisy bool YC - - ----- printer needs operator to change character set
-row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
-semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
-cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
-lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
-#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
-columns cols num co - - YBCGE number of columns in a line
-init_tabs it num it - - YB-G- tabs initially every # spaces
-lines lines num li - - YBCGE number of lines on screen or page
-lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
-magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
-padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
-virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
-width_status_line wsl num ws - - YB-G- number of columns in status line
-num_labels nlab num Nl - - ----- number of labels on screen
-label_height lh num lh - - ----- rows in each label
-label_width lw num lw - - ----- columns in each label
-max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
-maximum_windows wnum num MW - - ----- maximum number of defineable windows
-# These came in with SVr4's color support
-max_colors colors num Co - - ----- maximum number of colors on screen
-max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
-no_color_video ncv num NC - - ----- video attributes that can't be used with colors
-#%.TE
-#%.ad
-#%
-#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
-buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
-dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
-dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
-max_micro_address maddr num Yd - - ----- maximum value in micro_..._address
-max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro
-micro_col_size mcs num Yf - - ----- character step size when in micro mode
-micro_line_size mls num Yg - - ----- line step size when in micro mode
-number_of_pins npins num Yh - - ----- numbers of pins in print-head
-output_res_char orc num Yi - - ----- horizontal resolution in units per line
-output_res_line orl num Yj - - ----- vertical resolution in units per line
-output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch
-output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch
-print_rate cps num Ym - - ----- print rate in characters per second
-wide_char_size widcs num Yn - - ----- character step size when in double wide mode
-buttons btns num BT - - ----- number of buttons on mouse
-bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
-bit_image_type bitype num Yp - - ----- type of bit-image device
-#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-back_tab cbt str bt - - YBCGE back tab (P)
-bell bel str bl - - YB-GE audible signal (bell) (P)
-carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
-change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
-clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
-clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
-clr_eol el str ce - - YBCGE clear to end of line (P)
-clr_eos ed str cd - - YBCGE clear to end of screen (P*)
-column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
-command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
-cursor_address cup str cm - - YBCGE move to row #1 columns #2
-cursor_down cud1 str do - - YBCGE down one line
-cursor_home home str ho - - YBCGE home cursor (if no cup)
-cursor_invisible civis str vi - - YB-G- make cursor invisible
-cursor_left cub1 str le - - YBCGE move left one space
-cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
-cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
-cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
-cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
-cursor_up cuu1 str up - - YBCGE up one line
-cursor_visible cvvis str vs - - YBCGE make cursor very visible
-delete_character dch1 str dc - - YBCGE delete character (P*)
-delete_line dl1 str dl - - YBCGE delete line (P*)
-dis_status_line dsl str ds - - YB-G- disable status line
-down_half_line hd str hd - - YB-G- half a line down
-enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
-enter_blink_mode blink str mb - - YB-G- turn on blinking
-enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
-enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
-enter_delete_mode smdc str dm - - YBCGE enter delete mode
-enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
-enter_insert_mode smir str im - - YBCGE enter insert mode
-enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
-enter_protected_mode prot str mp - - -B-G-* turn on protected mode
-enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
-enter_standout_mode smso str so - - YBCGE begin standout mode
-enter_underline_mode smul str us - - YBCGE begin underline mode
-erase_chars ech str ec - - YB-G- erase #1 characters (P)
-exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
-exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
-exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
-exit_delete_mode rmdc str ed - - YBCGE end delete mode
-exit_insert_mode rmir str ei - - YBCGE exit insert mode
-exit_standout_mode rmso str se - - YBCGE exit standout mode
-exit_underline_mode rmul str ue - - YBCGE exit underline mode
-flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
-form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
-from_status_line fsl str fs - - YB-G- return from status line
-init_1string is1 str i1 - - YB-G- initialization string
-init_2string is2 str is - - YB-G- initialization string
-init_3string is3 str i3 - - YB-G- initialization string
-init_file if str if - - YB-G- name of initialization file
-insert_character ich1 str ic - - YBCGE insert character (P)
-insert_line il1 str al - - YBCGE insert line (P*)
-insert_padding ip str ip - - YBCGE insert padding after inserted character
-key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
-key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
-key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
-key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
-key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
-key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
-key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
-key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
-key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
-key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
-key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
-key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
-key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
-key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
-key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
-key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
-key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
-key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
-key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
-key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
-key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
-key_home khome str kh KEY_HOME 0406 YBCGE home key
-key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
-key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
-key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
-key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
-key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
-key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
-key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
-key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
-key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
-key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
-key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
-keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
-keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
-lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
-lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
-lab_f10 lf10 str la - - ----- label on function key f10 if not f10
-lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
-lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
-lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
-lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
-lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
-lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
-lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
-lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
-meta_off rmm str mo - - YB-G-* turn off meta mode
-meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
-newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
-pad_char pad str pc - - YBCGE padding char (instead of null)
-parm_dch dch str DC - - YB-GE delete #1 characters (P*)
-parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
-parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
-parm_ich ich str IC - - YB-GE insert #1 characters (P*)
-parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
-parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
-parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
-parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
-parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
-parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
-pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
-pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
-pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
-print_screen mc0 str ps - - -B-G-* print contents of screen
-prtr_off mc4 str pf - - -B-G-* turn off printer
-prtr_on mc5 str po - - -B-G-* turn on printer
-repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
-reset_1string rs1 str r1 - - -B--- reset string
-reset_2string rs2 str r2 - - -B--- reset string
-reset_3string rs3 str r3 - - -B--- reset string
-reset_file rf str rf - - -B--- name of reset file
-restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
-row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
-save_cursor sc str sc - - YBCG- save current cursor position (P)
-scroll_forward ind str sf - - YBCGE scroll text up (P)
-scroll_reverse ri str sr - - YBCGE scroll text down (P)
-set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
-set_tab hts str st - - YB-G- set a tab in every row, current columns
-set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
-tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
-to_status_line tsl str ts - - YB-G- move to status line, column #1
-underline_char uc str uc - - YBCG- underline char and move past it
-up_half_line hu str hu - - YB-G- half a line up
-init_prog iprog str iP - - -B--- path name of program for initialization
-key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
-key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
-key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
-key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
-key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
-prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
-#
-# SVr1 capabilities stop here. IBM's version of terminfo is the same as
-# SVr4 up to this point, but has a different set afterwards.
-#
-char_padding rmp str rP - - ----- like ip but when in insert mode
-acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
-plab_norm pln str pn - - ----- program label #1 to show string #2
-key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key
-enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
-exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
-enter_am_mode smam str SA - - ----- turn on automatic margins
-exit_am_mode rmam str RA - - ----- turn off automatic margins
-xon_character xonc str XN - - ----- XON character
-xoff_character xoffc str XF - - ----- XOFF character
-ena_acs enacs str eA - - ----- enable alternate char set
-label_on smln str LO - - ----- turn on soft labels
-label_off rmln str LF - - ----- turn off soft labels
-key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
-key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
-key_close kclo str @3 KEY_CLOSE 0544 ----- close key
-key_command kcmd str @4 KEY_COMMAND 0545 ----- command key
-key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
-key_create kcrt str @6 KEY_CREATE 0547 ----- create key
-key_end kend str @7 KEY_END 0550 ----- end key
-key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
-key_exit kext str @9 KEY_EXIT 0551 ----- exit key
-key_find kfnd str @0 KEY_FIND 0552 ----- find key
-key_help khlp str %1 KEY_HELP 0553 ----- help key
-key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
-key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
-key_move kmov str %4 KEY_MOVE 0556 ----- move key
-key_next knxt str %5 KEY_NEXT 0557 ----- next key
-key_open kopn str %6 KEY_OPEN 0560 ----- open key
-key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
-key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
-key_print kprt str %9 KEY_PRINT 0532 ----- print key
-key_redo krdo str %0 KEY_REDO 0563 ----- redo key
-key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
-key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
-key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
-key_restart krst str &4 KEY_RESTART 0567 ----- restart key
-key_resume kres str &5 KEY_RESUME 0570 ----- resume key
-key_save ksav str &6 KEY_SAVE 0571 ----- save key
-key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
-key_undo kund str &8 KEY_UNDO 0630 ----- undo key
-key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
-key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
-key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
-key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
-key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
-key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
-key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
-key_select kslt str *6 KEY_SELECT 0601 ----- select key
-key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
-key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
-key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
-key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
-key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
-key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
-key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
-key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
-key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
-key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
-key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
-key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
-key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
-key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
-key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
-key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
-key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
-key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
-key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
-key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
-key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
-req_for_input rfi str RF - - ----- send next input char (for ptys)
-key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
-key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
-key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
-key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
-key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
-key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
-key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
-key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
-key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
-key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
-key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
-key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
-key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
-key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
-key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
-key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
-key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
-key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
-key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
-key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
-key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
-key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
-key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
-key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
-key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
-key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
-key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
-key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
-key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
-key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
-key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
-key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
-key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
-key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
-key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
-key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
-key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
-key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
-key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
-key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
-key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
-key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
-key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
-key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
-key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
-key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
-key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
-key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
-key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
-key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
-key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
-key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
-key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
-clr_bol el1 str cb - - ----- Clear to beginning of line
-clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
-set_right_margin smgr str MR - - ----- set right soft margin at current column
-label_format fln str Lf - - ----- label format
-set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
-display_clock dclk str DK - - ----- display clock
-remove_clock rmclk str RC - - ----- remove clock
-create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5
-goto_window wingo str WG - - ----- go to window #1
-hangup hup str HU - - ----- hang-up phone
-dial_phone dial str DI - - ----- dial number #1
-quick_dial qdial str QD - - ----- dial number #1 without checking
-tone tone str TO - - ----- select touch tone dialing
-pulse pulse str PU - - ----- select pulse dialing
-flash_hook hook str fh - - ----- flash switch hook
-fixed_pause pause str PA - - ----- pause for 2-3 seconds
-wait_tone wait str WA - - ----- wait for dial-tone
-user0 u0 str u0 - - ----- User string #0
-user1 u1 str u1 - - ----- User string #1
-user2 u2 str u2 - - ----- User string #2
-user3 u3 str u3 - - ----- User string #3
-user4 u4 str u4 - - ----- User string #4
-user5 u5 str u5 - - ----- User string #5
-user6 u6 str u6 - - ----- User string #6
-user7 u7 str u7 - - ----- User string #7
-user8 u8 str u8 - - ----- User string #8
-user9 u9 str u9 - - ----- User string #9
-#
-# NCurses extensions for keys accessible on most PC consoles
-#
-key_sup kUP str !5 KEY_SUP + ----- shifted up-arrow key
-key_sdown kDOWN str !6 KEY_SDOWN + ----- shifted down-arrow key
-key_sbackspace kBS str !7 KEY_SBACKSPACE + ----- shifted backspace key
-key_c_delete kcdelete str !8 KEY_C_DELETE + ----- control- delete-character key
-key_c_end kcend str !9 KEY_C_END + ----- control- end key
-key_c_home kchom str !0 KEY_C_HOME + ----- control- home key
-key_c_insert kcinsert str !_ KEY_C_INSERT + ----- control- insert-character key
-key_c_left kclft str %k KEY_C_LEFT + ----- control- left-arrow key
-key_c_next kcnxt str %l KEY_C_NEXT + ----- control- next key
-key_c_previous kcprv str %m KEY_C_PREVIOUS + ----- control- previous key
-key_c_print kcprt str %n KEY_C_PRINT + ----- control- print key
-key_c_right kcrit str %o KEY_C_RIGHT + ----- control- right-arrow key
-key_c_backspace kcbs str %p KEY_C_BACKSPACE + ----- control- backspace key
-key_c_up kcup str %q KEY_C_UP + ----- control- up-arrow key
-key_c_down kcdown str %r KEY_C_DOWN + ----- control- down-arrow key
-key_a_delete kadelete str %s KEY_A_DELETE + ----- alt- delete-character key
-key_a_end kaend str %t KEY_A_END + ----- alt- end key
-key_a_home kahom str %u KEY_A_HOME + ----- alt- home key
-key_a_insert kainsert str %v KEY_A_INSERT + ----- alt- insert-character key
-key_a_left kalft str %w KEY_A_LEFT + ----- alt- left-arrow key
-key_a_next kanxt str %x KEY_A_NEXT + ----- alt- next key
-key_a_previous kaprv str %y KEY_A_PREVIOUS + ----- alt- previous key
-key_a_print kaprt str %z KEY_A_PRINT + ----- alt- print key
-key_a_right karit str %! KEY_A_RIGHT + ----- alt- right-arrow key
-key_a_backspace kabs str %@ KEY_A_BACKSPACE + ----- alt- backspace key
-key_a_up kaup str %# KEY_A_UP + ----- alt- up-arrow key
-key_a_down kadown str %$ KEY_A_DOWN + ----- alt- down-arrow key
-key_a_a kaa str $a KEY_A_A + ----- alt- a key
-key_a_b kab str $b KEY_A_B + ----- alt- b key
-key_a_c kac str $c KEY_A_C + ----- alt- c key
-key_a_d kad str $d KEY_A_D + ----- alt- d key
-key_a_e kae str $e KEY_A_E + ----- alt- e key
-key_a_f kaf str $f KEY_A_F + ----- alt- f key
-key_a_g kag str $g KEY_A_G + ----- alt- g key
-key_a_h kah str $h KEY_A_H + ----- alt- h key
-key_a_i kai str $i KEY_A_I + ----- alt- i key
-key_a_j kaj str $j KEY_A_J + ----- alt- j key
-key_a_k kak str $k KEY_A_K + ----- alt- k key
-key_a_l kal str $l KEY_A_L + ----- alt- l key
-key_a_m kam str $m KEY_A_M + ----- alt- m key
-key_a_n kan str $n KEY_A_N + ----- alt- n key
-key_a_o kao str $o KEY_A_O + ----- alt- o key
-key_a_p kap str $p KEY_A_P + ----- alt- p key
-key_a_q kaq str $q KEY_A_Q + ----- alt- q key
-key_a_r kar str $r KEY_A_R + ----- alt- r key
-key_a_s kas str $s KEY_A_S + ----- alt- s key
-key_a_t kat str $t KEY_A_T + ----- alt- t key
-key_a_u kau str $u KEY_A_U + ----- alt- u key
-key_a_v kav str $v KEY_A_V + ----- alt- v key
-key_a_w kaw str $w KEY_A_W + ----- alt- w key
-key_a_x kax str $x KEY_A_X + ----- alt- x key
-key_a_y kay str $y KEY_A_Y + ----- alt- y key
-key_a_z kaz str $z KEY_A_Z + ----- alt- z key
-key_a_0 ka_0 str $0 KEY_A_0 + ----- alt- 0 key
-key_a_1 ka_1 str $1 KEY_A_1 + ----- alt- 1 key
-key_a_2 ka_2 str $2 KEY_A_2 + ----- alt- 2 key
-key_a_3 ka_3 str $3 KEY_A_3 + ----- alt- 3 key
-key_a_4 ka_4 str $4 KEY_A_4 + ----- alt- 4 key
-key_a_5 ka_5 str $5 KEY_A_5 + ----- alt- 5 key
-key_a_6 ka_6 str $6 KEY_A_6 + ----- alt- 6 key
-key_a_7 ka_7 str $7 KEY_A_7 + ----- alt- 7 key
-key_a_8 ka_8 str $8 KEY_A_8 + ----- alt- 8 key
-key_a_9 ka_9 str $9 KEY_A_9 + ----- alt- 9 key
-key_a_backtick ka_bt str $` KEY_A_BACKTICK + ----- alt- ` key
-key_a_under ka_und str $_ KEY_A_UNDER + ----- alt- _ key
-key_a_equals ka_eq str $= KEY_A_EQUALS + ----- alt- = key
-key_a_bar ka_bsl str $| KEY_A_BAR + ----- alt- | key
-key_a_lbracker ka_lbr str $[ KEY_A_LBRACKER + ----- alt- [ key
-key_a_rbracker ka_rbr str $] KEY_A_RBRACKER + ----- alt- ] key
-key_a_semi ka_semi str $; KEY_A_SEMI + ----- alt- ; key
-key_a_tick ka_tick str $' KEY_A_TICK + ----- alt- ' key
-key_a_comma ka_com str $, KEY_A_COMMA + ----- alt- , key
-key_a_dot ka_dot str $. KEY_A_DOT + ----- alt- . key
-key_a_question ka_sla str $? KEY_A_QUESTION + ----- alt- ? key
-key_a_divide ka_div str $/ KEY_A_DIVIDE + ----- alt- keypad / key
-key_a_multiply ka_mul str $* KEY_A_MULTIPLY + ----- alt- keypad * key
-key_a_add ka_add str $+ KEY_A_ADD + ----- alt- keypad + key
-key_a_subtract ka_sub str $- KEY_A_SUBTRACT + ----- alt- keypad - key
-key_a_kenter ka_kent str $< KEY_A_KENTER + ----- alt- keypad enter key
-key_a_enter ka_ent str $> KEY_A_ENTER + ----- alt- enter key
-key_c_at kcat str %% KEY_C_AT + ----- control- @ key
-key_c_divide kcdiv str %/ KEY_C_DIVIDE + ----- control- keypad / key
-key_c_multiply kcmul str %* KEY_C_MULTIPLY + ----- control- keypad * key
-key_c_add kcadd str %+ KEY_C_ADD + ----- control- keypad + key
-key_c_subtract kcsub str %- KEY_C_SUBTRACT + ----- control- keypad - key
-#
-# SVr4 added these capabilities to support color
-#
-orig_pair op str op - - ----- Set default pair to its original value
-orig_colors oc str oc - - ----- Set all color pairs to the original ones
-initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
-initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
-set_color_pair scp str sp - - ----- Set current color pair to #1
-set_foreground setf str Sf - - ----- Set foreground color #1
-set_background setb str Sb - - ----- Set background color #1
-#
-# SVr4 added these capabilities to support printers
-#
-change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1
-change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1
-change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
-change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
-define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
-enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
-enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
-enter_italics_mode sitm str ZH - - ----- Enter italic mode
-enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
-enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode
-enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode
-enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode
-enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode
-enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode
-enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode
-enter_upward_mode sum str ZP - - ----- Start upward carriage motion
-exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode
-exit_italics_mode ritm str ZR - - ----- End italic mode
-exit_leftward_mode rlm str ZS - - ----- End left-motion mode
-exit_micro_mode rmicm str ZT - - ----- End micro-motion mode
-exit_shadow_mode rshm str ZU - - ----- End shadow-print mode
-exit_subscript_mode rsubm str ZV - - ----- End subscript mode
-exit_superscript_mode rsupm str ZW - - ----- End superscript mode
-exit_upward_mode rum str ZX - - ----- End reverse character motion
-micro_column_address mhpa str ZY - - ----- Like column_address in micro mode
-micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode
-micro_left mcub1 str Za - - ----- Like cursor_left in micro mode
-micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode
-micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode
-micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode
-order_of_pins porder str Ze - - ----- Match software bits to print-head pins
-parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode
-parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode
-parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode
-parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode
-select_char_set scs str Zj - - ----- Select character set, #1
-set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line
-set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
-set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
-set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1
-set_top_margin smgt str Zo - - ----- Set top margin at current line
-set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1
-start_bit_image sbim str Zq - - ----- Start printing bit image graphics
-start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set
-stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics
-stop_char_set_def rcsd str Zt - - ----- End definition of character set #1
-subscript_characters subcs str Zu - - ----- List of subscriptable characters
-superscript_characters supcs str Zv - - ----- List of superscriptable characters
-these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
-zero_motion zerom str Zx - - ----- No motion for subsequent character
-#%.TE
-#%.ad
-#%
-#%The following string capabilities are present in the SVr4.0 term structure,
-#%but were originally not documented in the man page.
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw18.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
-key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
-mouse_info minfo str Mi - - ----- Mouse status information
-req_mouse_pos reqmp str RQ - - ----- Request mouse position
-get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
-set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
-set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
-pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
-device_type devt str dv - - ----- Indicate language/codeset support
-code_set_init csin str ci - - ----- Init sequence for multiple codesets
-set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
-set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
-set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
-set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
-set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
-set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2
-bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times
-bit_image_newline binel str Zz - - ----- Move to next row of the bit image
-bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row
-color_names colornm str Yw - - ----- Give name for color #1
-define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region
-end_bit_image_region endbi str Yy - - ----- End a bit-image region
-set_color_band setcolor str Yz - - ----- Change to ribbon color #1
-set_page_length slines str YZ - - ----- Set page length to #1 lines
-#
-# SVr4 added these capabilities for direct PC-clone support
-#
-display_pc_char dispc str S1 - - ----- Display PC character #1
-enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode
-exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode
-enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode
-exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode
-pc_term_options pctrm str S6 - - ----- PC terminal options
-scancode_escape scesc str S7 - - ----- Escape for scancode emulation
-alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
-#%.TE
-#%.ad
-#%
-#%.in .8i
-#%The XSI Curses standard added these. They are some post-4.1
-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
-#%The \fBncurses\fR termcap names for them are invented; according to the
-#%XSI Curses standard, they have no termcap names. If your compiled terminfo
-#%entries use these, they may not be binary-compatible with System V terminfo
-#%entries after SVr4.1; beware!
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
-enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
-enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
-enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode
-enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
-enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
-set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-#%.TE
-#%.ad
-#
-# The magic token below tells the tic compiler-generator code that all the caps
-# past it should be ignored (not written out) when dumping terminfo objects. It
-# also tells the man page table generator not to pass through following lines
-# This means we can have obsolete capabilities and pseudo-capabilities that are
-# recognized for termcap or terminfo compilation, but not output.
-#
-# %%-STOP-HERE-%%
-#
-# Don't move this casually! In fact, don't move it at all unless you're
-# either doing it to add System V or XPG4 extensions, or have decided you
-# don't care about SVr4 binary compatibility.
-#
-#############################################################################
-#
-# TERMCAP EXTENSION CAPABILITIES
-#
-# The capabilities below are either obsolete or extensions on certain systems.
-# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
-# termcap sources; the rest are listed for completeness, and in case somebody
-# cares about them enough to hack in code that will translate them into
-# terminfo capabilities.
-#
-# The first part of the list is from Ross Ridge's `mytinfo' package
-# (comp.sources.unix, volume 26); the variable names and terminfo names (as
-# well as the termcap codes) match his list.
-#
-# This group of codes is not marked obsolete in 4.4BSD, but have no direct
-# terminfo equivalents. The rs capability is specially translated to terminfo
-# r2, and vice versa, if an entry does not already have an r2. Similarly,
-# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
-# The ug capability is thrown away, but assumed to be whatever sg is if the
-# latter is nonzero and we're dumping in termcap format.
-#
-termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
-termcap_reset OTrs str rs - - YB-G- terminal reset string
-magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
-#
-# Obsolete termcap capabilities. Some are used for termcap translation. The
-# code uses the 'OT' prefix we put on obsolete capabilities to suppress
-# printing them in terminfo source dumps of compiled entries.
-#
-backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
-crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
-no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
-carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
-new_line_delay OTdN num dN - - YB-G- pad needed for LF
-linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
-backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
-#
-# GNU termcap library extensions. The GNU termcap file distributed with
-# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
-# BSD termcap file. The name clash with terminfo MT is resolved by type
-# info; MT is converted to km.
-#
-gnu_has_meta_key OTMT bool MT - - ----E has meta key
-# gnu_tab_width OTtw num tw - - ----E tab width in spaces
-#
-# GNU termcap *does* include the following extended capability, Only the
-# now-obsolete Ann Arbor terminals used it.
-#
-# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
-#
-# The following comments describe capnames so ancient that I believe no
-# software uses them any longer. Some of these have to go because they
-# clash with terminfo names in ways that cannot be resolved by type
-# information.
-#
-# These mytinfo codes are not used in the 4.4BSD curses code. They are
-# marked obsolete in the 4.4BSD manual pages.
-#
-# There is one conflict with terminfo; ma is in both. This conflict is
-# resolved by type information.
-#
-# The `ko' capability is translated by special code. It should contain a
-# comma-separated list of capabilities for which there are corresponding keys.
-# The `kn' code is accepted but ignored.
-#
-# The `ma' capability seems to have been designed to map between the rogue(2)
-# motion keys (including jkhl) and characters emitted by arrow keys on some
-# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
-#
-# Here is a description of memory_lock_above and memory_unlock:
-# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
-# text. All lines above the cursor's current line become locked in place on
-# the screen. Then enter data normally. When the screen fills up, any
-# further data entered forces the first line of unfrozen line text to scroll
-# under the frozen data. Lines scrolled off the screen are inserted into
-# memory immediately preceding the first frozen line." (from the HP 700/96
-# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
-#
-# Applications that use terminfo are supposed to behave as though xr is
-# always true.
-#
-linefeed_is_newline OTNL bool NL - - YB--- move down with \n
-# even_parity OTEP bool EP - - -B--- terminal requires even parity
-# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
-# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
-# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
-# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
-backspace_delay OTdB num dB - - YB-G- padding required for ^H
-# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
-horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
-# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
-number_of_function_keys OTkn num kn - - -B-G- count of function keys
-other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
-arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
-# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
-# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
-has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
-return_does_clr_eol OTxr bool xr - - YB--- return clears the line
-# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
-#
-# mytinfo described this as a termcap capability, but it's not listed in the
-# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
-# package, like System V, behaves as though it is always true.
-#
-# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
-#
-# University of Waterloo termcap extensions (as described in mytinfo).
-# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
-# be resolved by a type check. The descriptions are guesses from what was
-# in the mytinfo tables.
-#
-# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
-# key_kill_char OTkk str kk - - ----- string set by kill key (?)
-# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
-# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
-# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
-#
-# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
-# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
-# check.
-#
-# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
-# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
-# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
-# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
-#
-# The mytinfo capabilities end here.
-#
-# XENIX extensions:
-#
-# Xenix defined its own set of forms-drawing capabilities:
-#
-# cap IBM ASCII description ACS ASCII
-# --- ----------- -------------------- ------------- ------
-# G1 191 \277 M-? single upper right ACS_URCORNER
-# G2 218 \332 M-Z single upper left ACS_ULCORNER
-# G3 192 \300 M-@ single lower left ACS_LLCORNER
-# G4 217 \331 M-Y single lower right ACS_LRCORNER
-# G5 187 \273 M-; double upper right
-# G6 201 \311 M-I double upper left
-# G7 200 \310 M-H double lower left
-# G8 188 \274 M-< double lower right
-# GC 197 \305 M-E single intersection ACS_PLUS _ _
-# GD 194 \302 M-B single down-tick ACS_TTEE |
-# GH 196 \304 M-D single horizontal line ACS_HLINE
-# GL 180 \264 M-4 single left tick ACS_RTEE -|
-# GR 195 \303 M-C single right tick ACS_LTEE |-
-# GU 193 \301 M-A single up tick ACS_BTEE _|_
-# GV 179 \263 M-3 single vertical line ACS_VLINE
-# Gc 206 \316 M-N double intersection
-# Gd 203 \313 M-K double down tick
-# Gh 205 \315 M-M double horizontal line
-# Gl 204 \204 M-L double left tick
-# Gr 185 \271 M-9 double right tick
-# Gu 202 \312 M-J double up tick
-# Gv 186 \272 M-: double vertical line
-#
-# The compiler will translate the single-line caps and discard the others
-# (via IGNORE aliases further down). We don't want to do normal pad
-# translation on these, they're often single-character printable ASCII
-# strings that happen to be numerics. There's awk code in parametrized.sh
-# that detects the acs_ prefix and uses it to suppress pad translation.
-# These terminfo names are invented.
-#
-acs_ulcorner OTG2 str G2 - - ----- single upper left
-acs_llcorner OTG3 str G3 - - ----- single lower left
-acs_urcorner OTG1 str G1 - - ----- single upper right
-acs_lrcorner OTG4 str G4 - - ----- single lower right
-acs_ltee OTGR str GR - - ----- tee pointing right
-acs_rtee OTGL str GL - - ----- tee pointing left
-acs_btee OTGU str GU - - ----- tee pointing up
-acs_ttee OTGD str GD - - ----- tee pointing down
-acs_hline OTGH str GH - - ----- single horizontal line
-acs_vline OTGV str GV - - ----- single vertical line
-acs_plus OTGC str GC - - ----- single intersection
-#
-#############################################################################
-#
-# TERMINFO EXTENSION CAPABILITIES
-#
-# This section is almost all comments. What it's mainly for is to describe
-# what capabilities need to be squeezed out to get down to the XSI Curses
-# standard set. They are flagged with K.
-#
-# HP extensions
-#
-# These extensions follow ptr_non (replacing everything after it) in HP
-# terminfo files. Except for memory_lock and memory_unlock, they are
-# functionally identical to SVr4 extensions, but they make the binary format
-# different. Grrr....
-#
-memory_lock meml str ml - - ----K lock memory above cursor
-memory_unlock memu str mu - - ----K unlock memory
-#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/contrib/ncurses/include/Caps.osf1r5 b/contrib/ncurses/include/Caps.osf1r5
deleted file mode 100644
index d9ea5646ff5a..000000000000
--- a/contrib/ncurses/include/Caps.osf1r5
+++ /dev/null
@@ -1,1274 +0,0 @@
-##############################################################################
-# Copyright (c) 2002,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas Dickey
-#
-# $Id: Caps.osf1r5,v 1.4 2006/05/27 15:33:04 tom Exp $
-#
-# This is an adaptation of ncurses' termcap/terminfo capability table, which
-# is designed to align with OSF/1 version 5 (Tru64) terminfo.
-#
-# This table is used to generate initializers for tables that drive tic,
-# infocmp, and the library compilation code used to support the termcap
-# compatibility hack. It is also used to generate the tabular portion of the
-# terminfo(5) man page; lines beginning with `#%' are passed through to become
-# the terminfo table.
-#
-# This file has three major sections; a standard-capabilities table, two
-# extension-capability tables, and a section of aliases declarations.
-# The first two have the same format, as follows:
-#
-# FILE FORMAT
-#
-# Column 1: terminfo variable name
-# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
-# Column 4: termcap capability name
-# Column 5: KEY_xxx name, if any, `-' otherwise
-# Column 6: value for KEY_xxx name, if any, `-' otherwise
-# Column 7: Lead with `Y' if capability should be emitted in termcap
-# translations, `-' otherwise
-# Column 8: capability description
-#
-# The codes following [Y-] in column 7 describe the versions of termcap which
-# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
-# termcap entry translations that are more than 1023 bytes long (and tank a
-# lot of old termcap-using programs). The codes read as follows:
-# B = mentioned in the BSD man page for 4.4BSD curses
-# C = used by the 4.4BSD curses library
-# G = mentioned in the documentation for GNU termcap
-# E = used by GNU Emacs
-# K = remove this terminfo capability when translating to standard format
-# The important codes are C and E. A cap with C or E should be preserved in
-# translation if possible. The problem is that preserving all such caps may
-# lead to some termcap translations being too long. The termcap maintainer
-# has a bit of a juggling act to do...potential problem cases are marked with
-# an asterisk (*).
-#
-# The aliases section has the following format:
-#
-# Column 1: either `capalias' or `infoalias'
-# Column 2: name to be aliased
-# Column 3: what name it should translate to. The name IGNORE means it
-# should be discarded with a warning message.
-# Column 4: name of the extension set (used for compiler warning messages)
-# Column 5: capability description (usually an associated terminfo variable)
-#
-# HANDLING TERMCAP AND TERMINFO EXTENSIONS
-#
-# There are basically five different ways to handle termcap and terminfo
-# extensions:
-#
-# 1. Don't list the capname here, or list it but comment it out (the latter
-# is preferable; someone might want to handle it in the future). If you do
-# this, the capability will be treated as unknown and raise a warning from
-# the compiler.
-#
-# 2. Alias it. This is appropriate if the capability has the same meaning
-# as an already-supported one. The compiler will handle aliasing, emitting
-# an appropriate informational message whenever an alias fires.
-#
-# 3. List it in the standard table. You almost certainly do *not* want
-# to do this -- the capabilities in that one, and their order, have been
-# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up the ncurses
-# library what to do with the terminfo data after it's read in.
-#
-# 4. List it in the aliases table with an IGNORE target field. If you
-# do this, the capability will be ignored on input (though the user will
-# get a warning message about it).
-#
-# 5. List it in the extensions table. If you do this, the compiler will
-# silently accept the capability, but the curses library proper will never
-# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
-#
-# There are two opposite reasons to choose option 5. One is when you want
-# to eat the capability silently and discard it when doing translations
-# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
-# in this class. Nothing will ever use them again.
-#
-# More usually, you want the compiler to try to deduce something from the
-# capability value that it can use to translate it into your output format.
-# You'll need to write custom code, probably in postprocess_termcap() or
-# postprocess_terminfo(), to handle the translation.
-#
-# CONTROLLING ENTRY LENGTH
-#
-# Notes on specific elisions made to fit translations within 1023 bytes:
-#
-# Machines with IBM PC-like keyboards want to be able to define the following
-# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
-# only environments for End or Home-Down), key_dc, and key_ic. This is also
-# the set of keys the `joe' editor will be upset if it can't see. So don't
-# trim those out of the set to be translated to termcap, or various users of
-# the termcap file will become irate.
-#
-# It might look tempting to leave those long init strings out of translations.
-# We can't do it (yet); 4.4BSD tput and tset use them.
-#
-# We retain the sgr capability in translation in spite of the fact that neither
-# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
-# hard to understand without it, and (b) the entries in which it is long tend
-# to be older types that don't use up a lot of string space on function keys.
-# The tic(1) translation code will complain and elide it if it makes a critical
-# difference (there is special code in tic to recognize this situation).
-#
-# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
-# optimizer in BSD curses didn't use them. This omission seems to be the
-# single most effective one, it shortened the resolved length of all thirteen
-# problem entries in the 9.9.0 version of the terminfo master below critical.
-#
-# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
-# translations go back over critical if we do this. As 4.4BSD curses fades
-# into history and GNU termcap's application base shrinks towards being GNU
-# Emacs only, we'll probably elide out some BSD-only capabilities in order
-# to buy space for non-essentials Emacs is still using. Capabilities high
-# on that hit list: rc, sc, uc.
-#
-#############################################################################
-#
-# STANDARD CAPABILITIES
-#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
-#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
-#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed through tparm with
-#%parms as given (#\fIi\fP).
-#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
-#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
-#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
-auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
-auto_right_margin am bool am - - YBCGE terminal has automatic margins
-no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
-ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
-eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
-erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
-generic_type gn bool gn - - YB-G- generic line type
-hard_copy hc bool hc - - YBCG- hardcopy terminal
-has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
-has_status_line hs bool hs - - YB-G- has extra status line
-insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
-memory_above da bool da - - YBCG- display may be retained above the screen
-memory_below db bool db - - YB-GE display may be retained below the screen
-move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
-move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
-over_strike os bool os - - YBCG- terminal can overstrike
-status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
-dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
-tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine)
-transparent_underline ul bool ul - - YBCGE underline character overstrikes
-xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
-back_color_erase bce bool ut - - ----- screen erased with background color
-can_change ccc bool cc - - ----- terminal can re-define existing colors
-col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps
-cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
-cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode
-hard_cursor chts bool HC - - ----- cursor is hard to see
-has_print_wheel daisy bool YC - - ----- printer needs operator to change character set
-hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
-lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
-needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
-non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
-non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
-no_pad_char npc bool NP - - ----- pad character does not exist
-prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
-row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
-semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
-#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
-columns cols num co - - YBCGE number of columns in a line
-init_tabs it num it - - YB-G- tabs initially every # spaces
-lines lines num li - - YBCGE number of lines on screen or page
-lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
-magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
-padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
-virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
-width_status_line wsl num ws - - YB-G- number of columns in status line
-bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
-bit_image_type bitype num Yp - - ----- type of bit-image device
-buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
-buttons btns num BT - - ----- number of buttons on mouse
-dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
-dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
-label_height lh num lh - - ----- rows in each label
-label_width lw num lw - - ----- columns in each label
-max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
-max_colors colors num Co - - ----- maximum number of colors on screen
-max_micro_address maddr num Yd - - ----- maximum value in micro_..._address
-max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro
-max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
-maximum_windows wnum num MW - - ----- maximum number of defineable windows
-micro_col_size mcs num Yf - - ----- character step size when in micro mode
-micro_line_size mls num Yg - - ----- line step size when in micro mode
-no_color_video ncv num NC - - ----- video attributes that can not be used with colors
-number_of_pins npins num Yh - - ----- numbers of pins in print-head
-num_labels nlab num Nl - - ----- number of labels on screen
-output_res_char orc num Yi - - ----- horizontal resolution in units per line
-output_res_line orl num Yj - - ----- vertical resolution in units per line
-output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch
-output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch
-print_rate cps num Ym - - ----- print rate in characters per second
-wide_char_size widcs num Yn - - ----- character step size when in double wide mode
-#%.TE
-#%.ad
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-back_tab cbt str bt - - YBCGE back tab (P)
-bell bel str bl - - YB-GE audible signal (bell) (P)
-carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
-change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
-clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
-clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
-clr_eol el str ce - - YBCGE clear to end of line (P)
-clr_eos ed str cd - - YBCGE clear to end of screen (P*)
-column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
-command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
-cursor_address cup str cm - - YBCGE move to row #1 columns #2
-cursor_down cud1 str do - - YBCGE down one line
-cursor_home home str ho - - YBCGE home cursor (if no cup)
-cursor_invisible civis str vi - - YB-G- make cursor invisible
-cursor_left cub1 str le - - YBCGE move left one space
-cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
-cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
-cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
-cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
-cursor_up cuu1 str up - - YBCGE up one line
-cursor_visible cvvis str vs - - YBCGE make cursor very visible
-delete_character dch1 str dc - - YBCGE delete character (P*)
-delete_line dl1 str dl - - YBCGE delete line (P*)
-dis_status_line dsl str ds - - YB-G- disable status line
-down_half_line hd str hd - - YB-G- half a line down
-enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
-enter_blink_mode blink str mb - - YB-G- turn on blinking
-enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
-enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
-enter_delete_mode smdc str dm - - YBCGE enter delete mode
-enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
-enter_insert_mode smir str im - - YBCGE enter insert mode
-enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
-enter_protected_mode prot str mp - - -B-G-* turn on protected mode
-enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
-enter_standout_mode smso str so - - YBCGE begin standout mode
-enter_underline_mode smul str us - - YBCGE begin underline mode
-erase_chars ech str ec - - YB-G- erase #1 characters (P)
-exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
-exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
-exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
-exit_delete_mode rmdc str ed - - YBCGE end delete mode
-exit_insert_mode rmir str ei - - YBCGE exit insert mode
-exit_standout_mode rmso str se - - YBCGE exit standout mode
-exit_underline_mode rmul str ue - - YBCGE exit underline mode
-flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
-form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
-from_status_line fsl str fs - - YB-G- return from status line
-init_1string is1 str i1 - - YB-G- initialization string
-init_2string is2 str is - - YB-G- initialization string
-init_3string is3 str i3 - - YB-G- initialization string
-init_file if str if - - YB-G- name of initialization file
-insert_character ich1 str ic - - YBCGE insert character (P)
-insert_line il1 str al - - YBCGE insert line (P*)
-insert_padding ip str ip - - YBCGE insert padding after inserted character
-key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
-key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
-key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
-key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
-key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
-key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
-key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
-key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
-key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
-key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
-key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
-key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
-key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
-key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
-key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
-key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
-key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
-key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
-key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
-key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
-key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
-key_home khome str kh KEY_HOME 0406 YBCGE home key
-key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
-key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
-key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
-key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
-key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
-key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
-key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
-key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
-key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
-key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
-key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
-keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
-keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
-lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
-lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
-lab_f10 lf10 str la - - ----- label on function key f10 if not f10
-lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
-lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
-lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
-lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
-lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
-lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
-lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
-lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
-meta_off rmm str mo - - YB-G-* turn off meta mode
-meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
-newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
-pad_char pad str pc - - YBCGE padding char (instead of null)
-parm_dch dch str DC - - YB-GE delete #1 characters (P*)
-parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
-parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
-parm_ich ich str IC - - YB-GE insert #1 characters (P*)
-parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
-parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
-parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
-parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
-parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
-parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
-pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
-pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
-pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
-print_screen mc0 str ps - - -B-G-* print contents of screen
-prtr_off mc4 str pf - - -B-G-* turn off printer
-prtr_on mc5 str po - - -B-G-* turn on printer
-repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
-reset_1string rs1 str r1 - - -B--- reset string
-reset_2string rs2 str r2 - - -B--- reset string
-reset_3string rs3 str r3 - - -B--- reset string
-reset_file rf str rf - - -B--- name of reset file
-restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
-row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
-save_cursor sc str sc - - YBCG- save current cursor position (P)
-scroll_forward ind str sf - - YBCGE scroll text up (P)
-scroll_reverse ri str sr - - YBCGE scroll text down (P)
-set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
-set_tab hts str st - - YB-G- set a tab in every row, current columns
-set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
-tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
-to_status_line tsl str ts - - YB-G- move to status line, column #1
-underline_char uc str uc - - YBCG- underline char and move past it
-up_half_line hu str hu - - YB-G- half a line up
-init_prog iprog str iP - - -B--- path name of program for initialization
-key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
-key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
-key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
-key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
-key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
-prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
-#
-# SVr1 capabilities stop here. IBM's version of terminfo is the same as
-# SVr4 up to this point, but has a different set afterwards.
-#
-# OSF1 differences start here, based on IBM version:
-#
-box_chars_1 box1 str bx - - ----K box characters primary set
-box_chars_2 box2 str by - - ----K box characters secondary set
-box_attr_1 batt1 str Bx - - ----K attributes for box1
-box_attr_2 batt2 str By - - ----K attributes for box2
-color_bg_0 colb0 str d0 - - ----K background color 0
-color_bg_1 colb1 str d1 - - ----K background color 1
-color_bg_2 colb2 str d2 - - ----K background color 2
-color_bg_3 colb3 str d3 - - ----K background color 3
-color_bg_4 colb4 str d4 - - ----K background color 4
-color_bg_5 colb5 str d5 - - ----K background color 5
-color_bg_6 colb6 str d6 - - ----K background color 6
-color_bg_7 colb7 str d7 - - ----K background color 7
-color_fg_0 colf0 str c0 - - ----K foreground color 0
-color_fg_1 colf1 str c1 - - ----K foreground color 1
-color_fg_2 colf2 str c2 - - ----K foreground color 2
-color_fg_3 colf3 str c3 - - ----K foreground color 3
-color_fg_4 colf4 str c4 - - ----K foreground color 4
-color_fg_5 colf5 str c5 - - ----K foreground color 5
-color_fg_6 colf6 str c6 - - ----K foreground color 6
-color_fg_7 colf7 str c7 - - ----K foreground color 7
-font_0 font0 str f0 - - ----- select font 0
-font_1 font1 str f1 - - ----- select font 1
-font_2 font2 str f2 - - ----- select font 2
-font_3 font3 str f3 - - ----- select font 3
-font_4 font4 str f4 - - ----K select font 4
-font_5 font5 str f5 - - ----K select font 5
-font_6 font6 str f6 - - ----K select font 6
-font_7 font7 str f7 - - ----K select font 7
-key_back_tab kbtab str k0 - - ----- backtab key
-key_do kdo str ki - - ----K do request key
-key_command kcmd str kc KEY_COMMAND 0545 ----- command key
-key_command_pane kcpn str kW - - ----K command-pane key
-key_end kend str @7 KEY_END 0550 ----- end key
-key_help khlp str %1 KEY_HELP 0553 ----- help key
-key_newline knl str nl - - ----K newline key
-key_next_pane knpn str kv - - ----K next-pane key
-key_prev_cmd kppn str kp - - ----K previous-command key
-key_prev_pane kppn str kV - - ----K previous-pane key
-key_quit kquit str kQ - - ----K quit key
-key_select kslt str *6 KEY_SELECT 0601 ----- select key
-key_scroll_left kscl str kz - - ----K scroll left
-key_scroll_right kscr str kZ - - ----K scroll right
-key_tab ktab str ko - - ----K tab key
-key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
-key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
-key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
-key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
-key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
-key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
-key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
-key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
-key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
-key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
-appl_defined_str apstr str za - - ----K application-defined string
-# The key_smap_in[6789] and key_smap_out[6789] capabilities are described in
-# the Tru64 manual pages.
-key_smap_in6 kmpf6 str Kr - - ----K special mapped key 6 input
-key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output
-key_smap_in7 kmpf7 str Ks - - ----K special mapped key 7 input
-key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output
-key_smap_in8 kmpf8 str Kt - - ----K special mapped key 8 input
-key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output
-key_smap_in9 kmpf9 str Ku - - ----K special mapped key 9 input
-key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output
-key_sf1 ksf1 str S1 - - ----K special function key 1
-key_sf2 ksf2 str S2 - - ----K special function key 2
-key_sf3 ksf3 str S3 - - ----K special function key 3
-key_sf4 ksf4 str S4 - - ----K special function key 4
-key_sf5 ksf5 str S5 - - ----K special function key 5
-key_sf6 ksf6 str S6 - - ----K special function key 6
-key_sf7 ksf7 str S7 - - ----K special function key 7
-key_sf8 ksf8 str S8 - - ----K special function key 8
-key_sf9 ksf9 str S9 - - ----K special function key 9
-key_sf10 ksf10 str SA - - ----K special function key 10
-#
-key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
-key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
-key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
-key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
-key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
-key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
-key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
-key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
-key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
-key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
-key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
-key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
-key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
-key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
-key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
-key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
-key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
-key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
-key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
-key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
-key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
-key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
-key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
-key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
-key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
-key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
-key_action kact str kJ KEY_ACTION 0541 ----K sent by action key
-acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
-alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
-bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times
-bit_image_newline binel str Zz - - ----- Move to next row of the bit image
-bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row
-change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1
-change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1
-change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
-change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
-char_padding rmp str rP - - ----- like ip but when in insert mode
-char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
-clear_margins mgc str MC - - ----- clear right and left soft margins
-clr_bol el1 str cb - - ----- Clear to beginning of line
-code_set_init csin str ci - - ----- Init sequence for multiple codesets
-color_names colornm str Yw - - ----- Give name for color #1
-create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5
-define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region
-define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
-device_type devt str dv - - ----- Indicate language/codeset support
-dial_phone dial str DI - - ----- dial number #1
-display_clock dclk str DK - - ----- display clock
-display_pc_char dispc str S1 - - ----- Display PC character #1
-ena_acs enacs str eA - - ----- enable alternate char set
-end_bit_image_region endbi str Yy - - ----- End a bit-image region
-enter_am_mode smam str SA - - ----- turn on automatic margins
-enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
-enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
-enter_italics_mode sitm str ZH - - ----- Enter italic mode
-enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
-enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode
-enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode
-enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode
-enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode
-enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode
-enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode
-enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode
-enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode
-enter_upward_mode sum str ZP - - ----- Start upward carriage motion
-enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
-exit_am_mode rmam str RA - - ----- turn off automatic margins
-exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode
-exit_italics_mode ritm str ZR - - ----- End italic mode
-exit_leftward_mode rlm str ZS - - ----- End left-motion mode
-exit_micro_mode rmicm str ZT - - ----- End micro-motion mode
-exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode
-exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode
-exit_shadow_mode rshm str ZU - - ----- End shadow-print mode
-exit_subscript_mode rsubm str ZV - - ----- End subscript mode
-exit_superscript_mode rsupm str ZW - - ----- End superscript mode
-exit_upward_mode rum str ZX - - ----- End reverse character motion
-exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
-fixed_pause pause str PA - - ----- pause for 2-3 seconds
-flash_hook hook str fh - - ----- flash switch hook
-get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
-goto_window wingo str WG - - ----- go to window #1
-hangup hup str HU - - ----- hang-up phone
-initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
-initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
-key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
-key_btab kcbt str kB KEY_BTAB 0632 ----- back-tab key
-key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
-key_close kclo str @3 KEY_CLOSE 0544 ----- close key
-key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
-key_create kcrt str @6 KEY_CREATE 0547 ----- create key
-key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
-key_exit kext str @9 KEY_EXIT 0551 ----- exit key
-key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
-key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
-key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
-key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
-key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
-key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
-key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
-key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
-key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
-key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
-key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
-key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
-key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
-key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
-key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
-key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
-key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
-key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
-key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
-key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
-key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
-key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
-key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
-key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
-key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
-key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
-key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
-key_find kfnd str @0 KEY_FIND 0552 ----- find key
-key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
-key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
-key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
-key_move kmov str %4 KEY_MOVE 0556 ----- move key
-key_next knxt str %5 KEY_NEXT 0557 ----- next key
-key_open kopn str %6 KEY_OPEN 0560 ----- open key
-key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
-key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
-key_print kprt str %9 KEY_PRINT 0532 ----- print key
-key_redo krdo str %0 KEY_REDO 0563 ----- redo key
-key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
-key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
-key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
-key_restart krst str &4 KEY_RESTART 0567 ----- restart key
-key_resume kres str &5 KEY_RESUME 0570 ----- resume key
-key_save ksav str &6 KEY_SAVE 0571 ----- save key
-key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
-key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
-key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
-key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
-key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
-key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
-key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
-key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
-key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
-key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
-key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
-key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
-key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
-key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
-key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
-key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
-key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
-key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
-key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
-key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
-key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
-key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
-key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
-key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
-key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
-key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
-key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
-key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
-key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
-key_undo kund str &8 KEY_UNDO 0630 ----- undo key
-label_format fln str Lf - - ----- label format
-label_off rmln str LF - - ----- turn off soft labels
-label_on smln str LO - - ----- turn on soft labels
-micro_column_address mhpa str ZY - - ----- Like column_address in micro mode
-micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode
-micro_left mcub1 str Za - - ----- Like cursor_left in micro mode
-micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode
-micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode
-micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode
-mouse_info minfo str Mi - - ----- Mouse status information
-order_of_pins porder str Ze - - ----- Match software bits to print-head pins
-orig_colors oc str oc - - ----- Set all color pairs to the original ones
-orig_pair op str op - - ----- Set default pair to its original value
-parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode
-parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode
-parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode
-parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode
-pc_term_options pctrm str S6 - - ----- PC terminal options
-pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
-plab_norm pln str pn - - ----- program label #1 to show string #2
-pulse pulse str PU - - ----- select pulse dialing
-quick_dial qdial str QD - - ----- dial number #1 without checking
-req_for_input rfi str RF - - ----- send next input char (for ptys)
-req_mouse_pos reqmp str RQ - - ----- Request mouse position
-remove_clock rmclk str RC - - ----- remove clock
-scancode_escape scesc str S7 - - ----- Escape for scancode emulation
-select_char_set scs str Zj - - ----- Select character set, #1
-set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
-set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
-set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
-set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
-set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
-set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
-set_background setb str Sb - - ----- Set background color #1
-set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line
-set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
-set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
-set_color_band setcolor str Yz - - ----- Change to ribbon color #1
-set_color_pair scp str sp - - ----- Set current color pair to #1
-set_foreground setf str Sf - - ----- Set foreground color #1
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
-set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
-set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
-set_page_length slines str YZ - - ----- Set page length to #1 lines
-set_right_margin smgr str MR - - ----- set right soft margin at current column
-set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1
-set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2
-set_top_margin smgt str Zo - - ----- Set top margin at current line
-set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1
-start_bit_image sbim str Zq - - ----- Start printing bit image graphics
-start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set
-stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics
-stop_char_set_def rcsd str Zt - - ----- End definition of character set #1
-subscript_characters subcs str Zu - - ----- List of subscriptable characters
-superscript_characters supcs str Zv - - ----- List of superscriptable characters
-these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
-tone tone str TO - - ----- select touch tone dialing
-user0 u0 str u0 - - ----- User string #0
-user1 u1 str u1 - - ----- User string #1
-user2 u2 str u2 - - ----- User string #2
-user3 u3 str u3 - - ----- User string #3
-user4 u4 str u4 - - ----- User string #4
-user5 u5 str u5 - - ----- User string #5
-user6 u6 str u6 - - ----- User string #6
-user7 u7 str u7 - - ----- User string #7
-user8 u8 str u8 - - ----- User string #8
-user9 u9 str u9 - - ----- User string #9
-wait_tone wait str WA - - ----- wait for dial-tone
-xoff_character xoffc str XF - - ----- XOFF character
-xon_character xonc str XN - - ----- XON character
-zero_motion zerom str Zx - - ----- No motion for subsequent character
-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
-enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
-enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
-enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode
-enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
-enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
-set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
-#
-#
-#
-# %%-STOP-HERE-%%
-#
-# Don't move this casually! In fact, don't move it at all unless you're
-# either doing it to add System V or XPG4 extensions, or have decided you
-# don't care about SVr4 binary compatibility.
-#
-#############################################################################
-#
-# TERMCAP EXTENSION CAPABILITIES
-#
-# The capabilities below are either obsolete or extensions on certain systems.
-# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
-# termcap sources; the rest are listed for completeness, and in case somebody
-# cares about them enough to hack in code that will translate them into
-# terminfo capabilities.
-#
-# The first part of the list is from Ross Ridge's `mytinfo' package
-# (comp.sources.unix, volume 26); the variable names and terminfo names (as
-# well as the termcap codes) match his list.
-#
-# This group of codes is not marked obsolete in 4.4BSD, but have no direct
-# terminfo equivalents. The rs capability is specially translated to terminfo
-# r2, and vice versa, if an entry does not already have an r2. Similarly,
-# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
-# The ug capability is thrown away, but assumed to be whatever sg is if the
-# latter is nonzero and we're dumping in termcap format.
-#
-termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
-termcap_reset OTrs str rs - - YB-G- terminal reset string
-magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
-#
-# Obsolete termcap capabilities. Some are used for termcap translation. The
-# code uses the 'OT' prefix we put on obsolete capabilities to suppress
-# printing them in terminfo source dumps of compiled entries.
-#
-backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
-crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
-no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
-carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
-new_line_delay OTdN num dN - - YB-G- pad needed for LF
-linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
-backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
-#
-# GNU termcap library extensions. The GNU termcap file distributed with
-# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
-# BSD termcap file. The name clash with terminfo MT is resolved by type
-# info; MT is converted to km.
-#
-gnu_has_meta_key OTMT bool MT - - ----E has meta key
-# gnu_tab_width OTtw num tw - - ----E tab width in spaces
-#
-# GNU termcap *does* include the following extended capability, Only the
-# now-obsolete Ann Arbor terminals used it.
-#
-# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
-#
-# The following comments describe capnames so ancient that I believe no
-# software uses them any longer. Some of these have to go because they
-# clash with terminfo names in ways that cannot be resolved by type
-# information.
-#
-# These mytinfo codes are not used in the 4.4BSD curses code. They are
-# marked obsolete in the 4.4BSD manual pages.
-#
-# There is one conflict with terminfo; ma is in both. This conflict is
-# resolved by type information.
-#
-# The `ko' capability is translated by special code. It should contain a
-# comma-separated list of capabilities for which there are corresponding keys.
-# The `kn' code is accepted but ignored.
-#
-# The `ma' capability seems to have been designed to map between the rogue(2)
-# motion keys (including jkhl) and characters emitted by arrow keys on some
-# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
-#
-# Here is a description of memory_lock_above and memory_unlock:
-# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
-# text. All lines above the cursor's current line become locked in place on
-# the screen. Then enter data normally. When the screen fills up, any
-# further data entered forces the first line of unfrozen line text to scroll
-# under the frozen data. Lines scrolled off the screen are inserted into
-# memory immediately preceding the first frozen line." (from the HP 700/96
-# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
-#
-# Applications that use terminfo are supposed to behave as though xr is
-# always true.
-#
-linefeed_is_newline OTNL bool NL - - YB--- move down with \n
-# even_parity OTEP bool EP - - -B--- terminal requires even parity
-# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
-# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
-# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
-# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
-backspace_delay OTdB num dB - - YB-G- padding required for ^H
-# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
-horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
-# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
-number_of_function_keys OTkn num kn - - -B-G- count of function keys
-other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
-arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
-# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
-# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
-has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
-return_does_clr_eol OTxr bool xr - - YB--- return clears the line
-# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
-#
-# mytinfo described this as a termcap capability, but it's not listed in the
-# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
-# package, like System V, behaves as though it is always true.
-#
-# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
-#
-# University of Waterloo termcap extensions (as described in mytinfo).
-# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
-# be resolved by a type check. The descriptions are guesses from what was
-# in the mytinfo tables.
-#
-# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
-# key_kill_char OTkk str kk - - ----- string set by kill key (?)
-# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
-# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
-# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
-#
-# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
-# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
-# check.
-#
-# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
-# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
-# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
-# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
-#
-# The mytinfo capabilities end here.
-#
-# XENIX extensions:
-#
-# Xenix defined its own set of forms-drawing capabilities:
-#
-# cap IBM ASCII description ACS ASCII
-# --- ----------- -------------------- ------------- ------
-# G1 191 \277 M-? single upper right ACS_URCORNER
-# G2 218 \332 M-Z single upper left ACS_ULCORNER
-# G3 192 \300 M-@ single lower left ACS_LLCORNER
-# G4 217 \331 M-Y single lower right ACS_LRCORNER
-# G5 187 \273 M-; double upper right
-# G6 201 \311 M-I double upper left
-# G7 200 \310 M-H double lower left
-# G8 188 \274 M-< double lower right
-# GC 197 \305 M-E single intersection ACS_PLUS _ _
-# GD 194 \302 M-B single down-tick ACS_TTEE |
-# GH 196 \304 M-D single horizontal line ACS_HLINE
-# GL 180 \264 M-4 single left tick ACS_RTEE -|
-# GR 195 \303 M-C single right tick ACS_LTEE |-
-# GU 193 \301 M-A single up tick ACS_BTEE _|_
-# GV 179 \263 M-3 single vertical line ACS_VLINE
-# Gc 206 \316 M-N double intersection
-# Gd 203 \313 M-K double down tick
-# Gh 205 \315 M-M double horizontal line
-# Gl 204 \204 M-L double left tick
-# Gr 185 \271 M-9 double right tick
-# Gu 202 \312 M-J double up tick
-# Gv 186 \272 M-: double vertical line
-#
-# The compiler will translate the single-line caps and discard the others
-# (via IGNORE aliases further down). We don't want to do normal pad
-# translation on these, they're often single-character printable ASCII
-# strings that happen to be numerics. There's awk code in parametrized.sh
-# that detects the acs_ prefix and uses it to suppress pad translation.
-# These terminfo names are invented.
-#
-acs_ulcorner OTG2 str G2 - - ----- single upper left
-acs_llcorner OTG3 str G3 - - ----- single lower left
-acs_urcorner OTG1 str G1 - - ----- single upper right
-acs_lrcorner OTG4 str G4 - - ----- single lower right
-acs_ltee OTGR str GR - - ----- tee pointing right
-acs_rtee OTGL str GL - - ----- tee pointing left
-acs_btee OTGU str GU - - ----- tee pointing up
-acs_ttee OTGD str GD - - ----- tee pointing down
-acs_hline OTGH str GH - - ----- single horizontal line
-acs_vline OTGV str GV - - ----- single vertical line
-acs_plus OTGC str GC - - ----- single intersection
-#
-#############################################################################
-#
-# TERMINFO EXTENSION CAPABILITIES
-#
-# This section is almost all comments. What it's mainly for is to describe
-# what capabilities need to be squeezed out to get down to the XSI Curses
-# standard set. They are flagged with K.
-#
-# HP extensions
-#
-# These extensions follow ptr_non (replacing everything after it) in HP
-# terminfo files. Except for memory_lock and memory_unlock, they are
-# functionally identical to SVr4 extensions, but they make the binary format
-# different. Grrr....
-#
-memory_lock meml str ml - - ----K lock memory above cursor
-memory_unlock memu str mu - - ----K unlock memory
-#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/contrib/ncurses/include/Caps.uwin b/contrib/ncurses/include/Caps.uwin
deleted file mode 100644
index 450eaeb6ae58..000000000000
--- a/contrib/ncurses/include/Caps.uwin
+++ /dev/null
@@ -1,1090 +0,0 @@
-##############################################################################
-# Copyright (c) 2001-2002,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas Dickey
-#
-# $Id: Caps.uwin,v 1.4 2006/05/27 15:33:04 tom Exp $
-#
-# This is an adaptation of ncurses' termcap/terminfo capability table, which
-# is designed to align with U/Win's terminfo.
-#
-# This table is used to generate initializers for tables that drive tic,
-# infocmp, and the library compilation code used to support the termcap
-# compatibility hack. It is also used to generate the tabular portion of the
-# terminfo(5) man page; lines beginning with `#%' are passed through to become
-# the terminfo table.
-#
-# This file has three major sections; a standard-capabilities table, two
-# extension-capability tables, and a section of aliases declarations.
-# The first two have the same format, as follows:
-#
-# FILE FORMAT
-#
-# Column 1: terminfo variable name
-# Column 2: terminfo capability name
-# Column 3: capability type (boolean, numeric, or string)
-# Column 4: termcap capability name
-# Column 5: KEY_xxx name, if any, `-' otherwise
-# Column 6: value for KEY_xxx name, if any, `-' otherwise
-# Column 7: Lead with `Y' if capability should be emitted in termcap
-# translations, `-' otherwise
-# Column 8: capability description
-#
-# The codes following [Y-] in column 7 describe the versions of termcap which
-# use the given capability. This information is not used by the curses library
-# proper; rather, it's there to help the terminfo maintainer avoid emitting
-# termcap entry translations that are more than 1023 bytes long (and tank a
-# lot of old termcap-using programs). The codes read as follows:
-# B = mentioned in the BSD man page for 4.4BSD curses
-# C = used by the 4.4BSD curses library
-# G = mentioned in the documentation for GNU termcap
-# E = used by GNU Emacs
-# K = remove this terminfo capability when translating to standard format
-# The important codes are C and E. A cap with C or E should be preserved in
-# translation if possible. The problem is that preserving all such caps may
-# lead to some termcap translations being too long. The termcap maintainer
-# has a bit of a juggling act to do...potential problem cases are marked with
-# an asterisk (*).
-#
-# The aliases section has the following format:
-#
-# Column 1: either `capalias' or `infoalias'
-# Column 2: name to be aliased
-# Column 3: what name it should translate to. The name IGNORE means it
-# should be discarded with a warning message.
-# Column 4: name of the extension set (used for compiler warning messages)
-# Column 5: capability description (usually an associated terminfo variable)
-#
-# HANDLING TERMCAP AND TERMINFO EXTENSIONS
-#
-# There are basically five different ways to handle termcap and terminfo
-# extensions:
-#
-# 1. Don't list the capname here, or list it but comment it out (the latter
-# is preferable; someone might want to handle it in the future). If you do
-# this, the capability will be treated as unknown and raise a warning from
-# the compiler.
-#
-# 2. Alias it. This is appropriate if the capability has the same meaning
-# as an already-supported one. The compiler will handle aliasing, emitting
-# an appropriate informational message whenever an alias fires.
-#
-# 3. List it in the standard table. You almost certainly do *not* want
-# to do this -- the capabilities in that one, and their order, have been
-# carefully chosen to be SVr4-binary-compatible when they're written out
-# as a terminfo object, and breaking this would be bad. It's up the ncurses
-# library what to do with the terminfo data after it's read in.
-#
-# 4. List it in the aliases table with an IGNORE target field. If you
-# do this, the capability will be ignored on input (though the user will
-# get a warning message about it).
-#
-# 5. List it in the extensions table. If you do this, the compiler will
-# silently accept the capability, but the curses library proper will never
-# see it (because it won't be written out as part of the terminfo object
-# format). It's up to you what you have the compiler do with it.
-#
-# There are two opposite reasons to choose option 5. One is when you want
-# to eat the capability silently and discard it when doing translations
-# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
-# in this class. Nothing will ever use them again.
-#
-# More usually, you want the compiler to try to deduce something from the
-# capability value that it can use to translate it into your output format.
-# You'll need to write custom code, probably in postprocess_termcap() or
-# postprocess_terminfo(), to handle the translation.
-#
-# CONTROLLING ENTRY LENGTH
-#
-# Notes on specific elisions made to fit translations within 1023 bytes:
-#
-# Machines with IBM PC-like keyboards want to be able to define the following
-# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
-# only environments for End or Home-Down), key_dc, and key_ic. This is also
-# the set of keys the `joe' editor will be upset if it can't see. So don't
-# trim those out of the set to be translated to termcap, or various users of
-# the termcap file will become irate.
-#
-# It might look tempting to leave those long init strings out of translations.
-# We can't do it (yet); 4.4BSD tput and tset use them.
-#
-# We retain the sgr capability in translation in spite of the fact that neither
-# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
-# hard to understand without it, and (b) the entries in which it is long tend
-# to be older types that don't use up a lot of string space on function keys.
-# The tic(1) translation code will complain and elide it if it makes a critical
-# difference (there is special code in tic to recognize this situation).
-#
-# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
-# optimizer in BSD curses didn't use them. This omission seems to be the
-# single most effective one, it shortened the resolved length of all thirteen
-# problem entries in the 9.9.0 version of the terminfo master below critical.
-#
-# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
-# translations go back over critical if we do this. As 4.4BSD curses fades
-# into history and GNU termcap's application base shrinks towards being GNU
-# Emacs only, we'll probably elide out some BSD-only capabilities in order
-# to buy space for non-essentials Emacs is still using. Capabilities high
-# on that hit list: rc, sc, uc.
-#
-#############################################################################
-#
-# STANDARD CAPABILITIES
-#
-#%The following is a complete table of the capabilities included in a
-#%terminfo description block and available to terminfo-using code. In each
-#%line of the table,
-#%
-#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
-#%accesses the capability.
-#%
-#%The \fBcapname\fR is the short name used in the text of the database,
-#%and is used by a person updating the database.
-#%Whenever possible, capnames are chosen to be the same as or similar to
-#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
-#%identical or very similar names). Semantics are also intended to match
-#%those of the specification.
-#%
-#%The termcap code is the old
-#%.B termcap
-#%capability name (some capabilities are new, and have names which termcap
-#%did not originate).
-#%.P
-#%Capability names have no hard length limit, but an informal limit of 5
-#%characters has been adopted to keep them short and to allow the tabs in
-#%the source file
-#%.B Caps
-#%to line up nicely.
-#%
-#%Finally, the description field attempts to convey the semantics of the
-#%capability. You may find some codes in the description field:
-#%.TP
-#%(P)
-#%indicates that padding may be specified
-#%.TP
-#%#[1-9]
-#%in the description field indicates that the string is passed through tparm with
-#%parms as given (#\fIi\fP).
-#%.TP
-#%(P*)
-#%indicates that padding may vary in proportion to the number of
-#%lines affected
-#%.TP
-#%(#\d\fIi\fP\u)
-#%indicates the \fIi\fP\uth\d parameter.
-#%
-#%.PP
-#% These are the boolean capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBBooleans name Code\fR
-auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
-auto_right_margin am bool am - - YBCGE terminal has automatic margins
-no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
-ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
-eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
-erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
-generic_type gn bool gn - - YB-G- generic line type
-hard_copy hc bool hc - - YBCG- hardcopy terminal
-has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
-has_status_line hs bool hs - - YB-G- has extra status line
-insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
-memory_above da bool da - - YBCG- display may be retained above the screen
-memory_below db bool db - - YB-GE display may be retained below the screen
-move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
-move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
-over_strike os bool os - - YBCG- terminal can overstrike
-status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
-dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
-tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine)
-transparent_underline ul bool ul - - YBCGE underline character overstrikes
-xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
-needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
-prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
-hard_cursor chts bool HC - - ----- cursor is hard to see
-non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
-no_pad_char npc bool NP - - ----- pad character does not exist
-non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
-back_color_erase bce bool ut - - ----- screen erased with background color
-can_change ccc bool cc - - ----- terminal can re-define existing colors
-hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
-#%.TE
-#%.ad
-#%
-#%These are the numeric capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBNumeric name Code\fR
-columns cols num co - - YBCGE number of columns in a line
-init_tabs it num it - - YB-G- tabs initially every # spaces
-lines lines num li - - YBCGE number of lines on screen or page
-lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
-magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
-padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
-virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
-width_status_line wsl num ws - - YB-G- number of columns in status line
-num_labels nlab num Nl - - ----- number of labels on screen
-label_height lh num lh - - ----- rows in each label
-label_width lw num lw - - ----- columns in each label
-buttons btns num BT - - ----- number of buttons on mouse
-#max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
-#maximum_windows wnum num MW - - ----- maximum number of defineable windows
-# These came in with SVr4's color support
-max_colors colors num Co - - ----- maximum number of colors on screen
-max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
-no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
-#%.TE
-#%.ad
-#%
-#%The following numeric capabilities are present in the SVr4.0 term structure,
-#%but are not yet documented in the man page. They came in with SVr4's
-#%printer support.
-#%
-#%.na
-#%
-#%These are the string capabilities:
-#%
-#%.na
-#%.TS H
-#%center expand;
-#%c l l c
-#%c l l c
-#%lw25 lw6 lw2 lw20.
-#%\fBVariable Cap- TCap Description\fR
-#%\fBString name Code\fR
-back_tab cbt str bt - - YBCGE back tab (P)
-bell bel str bl - - YB-GE audible signal (bell) (P)
-carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
-change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
-clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
-clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
-clr_eol el str ce - - YBCGE clear to end of line (P)
-clr_eos ed str cd - - YBCGE clear to end of screen (P*)
-column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
-command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
-cursor_address cup str cm - - YBCGE move to row #1 columns #2
-cursor_down cud1 str do - - YBCGE down one line
-cursor_home home str ho - - YBCGE home cursor (if no cup)
-cursor_invisible civis str vi - - YB-G- make cursor invisible
-cursor_left cub1 str le - - YBCGE move left one space
-cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
-cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
-cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
-cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
-cursor_up cuu1 str up - - YBCGE up one line
-cursor_visible cvvis str vs - - YBCGE make cursor very visible
-delete_character dch1 str dc - - YBCGE delete character (P*)
-delete_line dl1 str dl - - YBCGE delete line (P*)
-dis_status_line dsl str ds - - YB-G- disable status line
-down_half_line hd str hd - - YB-G- half a line down
-enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
-enter_blink_mode blink str mb - - YB-G- turn on blinking
-enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
-enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
-enter_delete_mode smdc str dm - - YBCGE enter delete mode
-enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
-enter_insert_mode smir str im - - YBCGE enter insert mode
-enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
-enter_protected_mode prot str mp - - -B-G-* turn on protected mode
-enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
-enter_standout_mode smso str so - - YBCGE begin standout mode
-enter_underline_mode smul str us - - YBCGE begin underline mode
-erase_chars ech str ec - - YB-G- erase #1 characters (P)
-exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
-exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
-exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
-exit_delete_mode rmdc str ed - - YBCGE end delete mode
-exit_insert_mode rmir str ei - - YBCGE exit insert mode
-exit_standout_mode rmso str se - - YBCGE exit standout mode
-exit_underline_mode rmul str ue - - YBCGE exit underline mode
-flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
-form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
-from_status_line fsl str fs - - YB-G- return from status line
-init_1string is1 str i1 - - YB-G- initialization string
-init_2string is2 str is - - YB-G- initialization string
-init_3string is3 str i3 - - YB-G- initialization string
-init_file if str if - - YB-G- name of initialization file
-insert_character ich1 str ic - - YBCGE insert character (P)
-insert_line il1 str al - - YBCGE insert line (P*)
-insert_padding ip str ip - - YBCGE insert padding after inserted character
-key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
-key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
-key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
-key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
-key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
-key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
-key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
-key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
-key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
-key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
-key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
-key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
-key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
-key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
-key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
-key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
-key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
-key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
-key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
-key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
-key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
-key_home khome str kh KEY_HOME 0406 YBCGE home key
-key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
-key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
-key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
-key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
-key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
-key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
-key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
-key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
-key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
-key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
-key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
-keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
-keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
-lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
-lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
-lab_f10 lf10 str la - - ----- label on function key f10 if not f10
-lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
-lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
-lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
-lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
-lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
-lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
-lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
-lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
-meta_off rmm str mo - - YB-G-* turn off meta mode
-meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
-newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
-pad_char pad str pc - - YBCGE padding char (instead of null)
-parm_dch dch str DC - - YB-GE delete #1 characters (P*)
-parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
-parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
-parm_ich ich str IC - - YB-GE insert #1 characters (P*)
-parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
-parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
-parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
-parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
-parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
-parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
-pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
-pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
-pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
-print_screen mc0 str ps - - -B-G-* print contents of screen
-prtr_off mc4 str pf - - -B-G-* turn off printer
-prtr_on mc5 str po - - -B-G-* turn on printer
-repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
-reset_1string rs1 str r1 - - -B--- reset string
-reset_2string rs2 str r2 - - -B--- reset string
-reset_3string rs3 str r3 - - -B--- reset string
-reset_file rf str rf - - -B--- name of reset file
-restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
-row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
-save_cursor sc str sc - - YBCG- save current cursor position (P)
-scroll_forward ind str sf - - YBCGE scroll text up (P)
-scroll_reverse ri str sr - - YBCGE scroll text down (P)
-set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
-set_tab hts str st - - YB-G- set a tab in every row, current columns
-set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
-tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
-to_status_line tsl str ts - - YB-G- move to status line, column #1
-underline_char uc str uc - - YBCG- underline char and move past it
-up_half_line hu str hu - - YB-G- half a line up
-init_prog iprog str iP - - -B--- path name of program for initialization
-key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
-key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
-key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
-key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
-key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
-prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
-#
-# SVr1 capabilities stop here. IBM's version of terminfo is the same as
-# SVr4 up to this point, but has a different set afterwards.
-#
-char_padding rmp str rP - - ----- like ip but when in insert mode
-acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
-plab_norm pln str pn - - ----- program label #1 to show string #2
-key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key
-enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
-exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
-enter_am_mode smam str SA - - ----- turn on automatic margins
-exit_am_mode rmam str RA - - ----- turn off automatic margins
-xon_character xonc str XN - - ----- XON character
-xoff_character xoffc str XF - - ----- XOFF character
-ena_acs enacs str eA - - ----- enable alternate char set
-label_on smln str LO - - ----- turn on soft labels
-label_off rmln str LF - - ----- turn off soft labels
-key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
-key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
-key_close kclo str @3 KEY_CLOSE 0544 ----- close key
-key_command kcmd str @4 KEY_COMMAND 0545 ----- command key
-key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
-key_create kcrt str @6 KEY_CREATE 0547 ----- create key
-key_end kend str @7 KEY_END 0550 ----- end key
-key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
-key_exit kext str @9 KEY_EXIT 0551 ----- exit key
-key_find kfnd str @0 KEY_FIND 0552 ----- find key
-key_help khlp str %1 KEY_HELP 0553 ----- help key
-key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
-key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
-key_move kmov str %4 KEY_MOVE 0556 ----- move key
-key_next knxt str %5 KEY_NEXT 0557 ----- next key
-key_open kopn str %6 KEY_OPEN 0560 ----- open key
-key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
-key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
-key_print kprt str %9 KEY_PRINT 0532 ----- print key
-key_redo krdo str %0 KEY_REDO 0563 ----- redo key
-key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
-key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
-key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
-key_restart krst str &4 KEY_RESTART 0567 ----- restart key
-key_resume kres str &5 KEY_RESUME 0570 ----- resume key
-key_save ksav str &6 KEY_SAVE 0571 ----- save key
-key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
-key_undo kund str &8 KEY_UNDO 0630 ----- undo key
-key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
-key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
-key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
-key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
-key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
-key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
-key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
-key_select kslt str *6 KEY_SELECT 0601 ----- select key
-key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
-key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
-key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
-key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
-key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
-key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
-key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
-key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
-key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
-key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
-key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
-key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
-key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
-key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
-key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
-key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
-key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
-key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
-key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
-key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
-key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
-req_for_input rfi str RF - - ----- send next input char (for ptys)
-key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
-key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
-key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
-key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
-key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
-key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
-key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
-key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
-key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
-key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
-key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
-key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
-key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
-key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
-key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
-key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
-key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
-key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
-key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
-key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
-key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
-key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
-key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
-key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
-key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
-key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
-key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
-key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
-key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
-key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
-key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
-key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
-key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
-key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
-key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
-key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
-key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
-key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
-key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
-key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
-key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
-key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
-key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
-key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
-key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
-key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
-key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
-key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
-key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
-key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
-key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
-key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
-key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
-clr_bol el1 str cb - - ----- Clear to beginning of line
-clear_margins mgc str MC - - ----- clear right and left soft margins
-set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
-set_right_margin smgr str MR - - ----- set right soft margin at current column
-device_type devt str dv - - ----- Indicate language/codeset support
-code_set_init csin str ci - - ----- Init sequence for multiple codesets
-set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
-set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
-set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
-set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
-key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
-mouse_info minfo str Mi - - ----- Mouse status information
-req_mouse_pos reqmp str RQ - - ----- Request mouse position
-get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
-release_mouse relm str Rm - - ----- Curses should release the mouse */
-color_names colornm str Yw - - ----- Give name for color #1
-initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
-initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
-orig_colors oc str oc - - ----- Set all color pairs to the original ones
-orig_pair op str op - - ----- Set default pair to its original value
-set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
-set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
-set_background setb str Sb - - ----- Set background color #1
-set_color_pair scp str sp - - ----- Set current color pair to #1
-set_foreground setf str Sf - - ----- Set foreground color #1
-#%.TE
-#%.ad
-#%
-# The magic token below tells the tic compiler-generator code that all the caps
-# past it should be ignored (not written out) when dumping terminfo objects. It
-# also tells the man page table generator not to pass through following lines
-# This means we can have obsolete capabilities and pseudo-capabilities that are
-# recognized for termcap or terminfo compilation, but not output.
-#
-# %%-STOP-HERE-%%
-#
-# Don't move this casually! In fact, don't move it at all unless you're
-# either doing it to add System V or XPG4 extensions, or have decided you
-# don't care about SVr4 binary compatibility.
-#
-#############################################################################
-#
-# TERMCAP EXTENSION CAPABILITIES
-#
-# The capabilities below are either obsolete or extensions on certain systems.
-# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
-# termcap sources; the rest are listed for completeness, and in case somebody
-# cares about them enough to hack in code that will translate them into
-# terminfo capabilities.
-#
-# The first part of the list is from Ross Ridge's `mytinfo' package
-# (comp.sources.unix, volume 26); the variable names and terminfo names (as
-# well as the termcap codes) match his list.
-#
-# This group of codes is not marked obsolete in 4.4BSD, but have no direct
-# terminfo equivalents. The rs capability is specially translated to terminfo
-# r2, and vice versa, if an entry does not already have an r2. Similarly,
-# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
-# The ug capability is thrown away, but assumed to be whatever sg is if the
-# latter is nonzero and we're dumping in termcap format.
-#
-termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
-termcap_reset OTrs str rs - - YB-G- terminal reset string
-magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
-#
-# Obsolete termcap capabilities. Some are used for termcap translation. The
-# code uses the 'OT' prefix we put on obsolete capabilities to suppress
-# printing them in terminfo source dumps of compiled entries.
-#
-backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
-crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
-no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
-carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
-new_line_delay OTdN num dN - - YB-G- pad needed for LF
-linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
-backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
-#
-# GNU termcap library extensions. The GNU termcap file distributed with
-# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
-# BSD termcap file. The name clash with terminfo MT is resolved by type
-# info; MT is converted to km.
-#
-gnu_has_meta_key OTMT bool MT - - ----E has meta key
-# gnu_tab_width OTtw num tw - - ----E tab width in spaces
-#
-# GNU termcap *does* include the following extended capability, Only the
-# now-obsolete Ann Arbor terminals used it.
-#
-# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
-#
-# The following comments describe capnames so ancient that I believe no
-# software uses them any longer. Some of these have to go because they
-# clash with terminfo names in ways that cannot be resolved by type
-# information.
-#
-# These mytinfo codes are not used in the 4.4BSD curses code. They are
-# marked obsolete in the 4.4BSD manual pages.
-#
-# There is one conflict with terminfo; ma is in both. This conflict is
-# resolved by type information.
-#
-# The `ko' capability is translated by special code. It should contain a
-# comma-separated list of capabilities for which there are corresponding keys.
-# The `kn' code is accepted but ignored.
-#
-# The `ma' capability seems to have been designed to map between the rogue(2)
-# motion keys (including jkhl) and characters emitted by arrow keys on some
-# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
-#
-# Here is a description of memory_lock_above and memory_unlock:
-# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
-# text. All lines above the cursor's current line become locked in place on
-# the screen. Then enter data normally. When the screen fills up, any
-# further data entered forces the first line of unfrozen line text to scroll
-# under the frozen data. Lines scrolled off the screen are inserted into
-# memory immediately preceding the first frozen line." (from the HP 700/96
-# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
-#
-# Applications that use terminfo are supposed to behave as though xr is
-# always true.
-#
-linefeed_is_newline OTNL bool NL - - YB--- move down with \n
-# even_parity OTEP bool EP - - -B--- terminal requires even parity
-# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
-# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
-# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
-# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
-backspace_delay OTdB num dB - - YB-G- padding required for ^H
-# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
-horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
-# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
-number_of_function_keys OTkn num kn - - -B-G- count of function keys
-other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
-arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
-# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
-# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
-has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
-return_does_clr_eol OTxr bool xr - - YB--- return clears the line
-# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
-#
-# mytinfo described this as a termcap capability, but it's not listed in the
-# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
-# package, like System V, behaves as though it is always true.
-#
-# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
-#
-# University of Waterloo termcap extensions (as described in mytinfo).
-# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
-# be resolved by a type check. The descriptions are guesses from what was
-# in the mytinfo tables.
-#
-# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
-# key_kill_char OTkk str kk - - ----- string set by kill key (?)
-# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
-# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
-# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
-#
-# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
-# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
-# check.
-#
-# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
-# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
-# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
-# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
-#
-# The mytinfo capabilities end here.
-#
-# XENIX extensions:
-#
-# Xenix defined its own set of forms-drawing capabilities:
-#
-# cap IBM ASCII description ACS ASCII
-# --- ----------- -------------------- ------------- ------
-# G1 191 \277 M-? single upper right ACS_URCORNER
-# G2 218 \332 M-Z single upper left ACS_ULCORNER
-# G3 192 \300 M-@ single lower left ACS_LLCORNER
-# G4 217 \331 M-Y single lower right ACS_LRCORNER
-# G5 187 \273 M-; double upper right
-# G6 201 \311 M-I double upper left
-# G7 200 \310 M-H double lower left
-# G8 188 \274 M-< double lower right
-# GC 197 \305 M-E single intersection ACS_PLUS _ _
-# GD 194 \302 M-B single down-tick ACS_TTEE |
-# GH 196 \304 M-D single horizontal line ACS_HLINE
-# GL 180 \264 M-4 single left tick ACS_RTEE -|
-# GR 195 \303 M-C single right tick ACS_LTEE |-
-# GU 193 \301 M-A single up tick ACS_BTEE _|_
-# GV 179 \263 M-3 single vertical line ACS_VLINE
-# Gc 206 \316 M-N double intersection
-# Gd 203 \313 M-K double down tick
-# Gh 205 \315 M-M double horizontal line
-# Gl 204 \204 M-L double left tick
-# Gr 185 \271 M-9 double right tick
-# Gu 202 \312 M-J double up tick
-# Gv 186 \272 M-: double vertical line
-#
-# The compiler will translate the single-line caps and discard the others
-# (via IGNORE aliases further down). We don't want to do normal pad
-# translation on these, they're often single-character printable ASCII
-# strings that happen to be numerics. There's awk code in parametrized.sh
-# that detects the acs_ prefix and uses it to suppress pad translation.
-# These terminfo names are invented.
-#
-acs_ulcorner OTG2 str G2 - - ----- single upper left
-acs_llcorner OTG3 str G3 - - ----- single lower left
-acs_urcorner OTG1 str G1 - - ----- single upper right
-acs_lrcorner OTG4 str G4 - - ----- single lower right
-acs_ltee OTGR str GR - - ----- tee pointing right
-acs_rtee OTGL str GL - - ----- tee pointing left
-acs_btee OTGU str GU - - ----- tee pointing up
-acs_ttee OTGD str GD - - ----- tee pointing down
-acs_hline OTGH str GH - - ----- single horizontal line
-acs_vline OTGV str GV - - ----- single vertical line
-acs_plus OTGC str GC - - ----- single intersection
-#
-#############################################################################
-#
-# TERMINFO EXTENSION CAPABILITIES
-#
-# This section is almost all comments. What it's mainly for is to describe
-# what capabilities need to be squeezed out to get down to the XSI Curses
-# standard set. They are flagged with K.
-#
-# HP extensions
-#
-# These extensions follow ptr_non (replacing everything after it) in HP
-# terminfo files. Except for memory_lock and memory_unlock, they are
-# functionally identical to SVr4 extensions, but they make the binary format
-# different. Grrr....
-#
-memory_lock meml str ml - - ----K lock memory above cursor
-memory_unlock memu str mu - - ----K unlock memory
-#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/contrib/ncurses/include/MKhashsize.sh b/contrib/ncurses/include/MKhashsize.sh
deleted file mode 100755
index 11b3111aff92..000000000000
--- a/contrib/ncurses/include/MKhashsize.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKhashsize.sh,v 1.7 2006/10/22 00:45:39 tom Exp $
-#
-# 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/contrib/ncurses/include/MKkey_defs.sh b/contrib/ncurses/include/MKkey_defs.sh
deleted file mode 100755
index b3cb4f7f72cb..000000000000
--- a/contrib/ncurses/include/MKkey_defs.sh
+++ /dev/null
@@ -1,182 +0,0 @@
-#! /bin/sh
-# $Id: MKkey_defs.sh,v 1.14 2003/12/06 17:10:09 tom Exp $
-##############################################################################
-# Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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 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
-elif sort -n +5 $DATA >$data 2>/dev/null
-then
- # SunOS (and SVr4, marked as obsolete but still recognized)
- sed -e 's/[ ][ ]*/ /g' < $DATA |sort -n +5 >$data
-else
- echo "Your sort utility is broken. Please install one that works." >&2
- exit 1
-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/contrib/ncurses/include/MKncurses_def.sh b/contrib/ncurses/include/MKncurses_def.sh
deleted file mode 100755
index 4aac86554b55..000000000000
--- a/contrib/ncurses/include/MKncurses_def.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#! /bin/sh
-# $Id: MKncurses_def.sh,v 1.2 2003/10/25 16:19:46 tom Exp $
-##############################################################################
-# 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 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/contrib/ncurses/include/MKparametrized.sh b/contrib/ncurses/include/MKparametrized.sh
deleted file mode 100755
index 2825c822ae25..000000000000
--- a/contrib/ncurses/include/MKparametrized.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKparametrized.sh,v 1.6 2006/04/22 21:36:16 tom Exp $
-#
-# 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/contrib/ncurses/include/MKterm.h.awk.in b/contrib/ncurses/include/MKterm.h.awk.in
deleted file mode 100644
index 6f0fca33c7c8..000000000000
--- a/contrib/ncurses/include/MKterm.h.awk.in
+++ /dev/null
@@ -1,318 +0,0 @@
-# vile:awkmode
-BEGIN {
- print "/****************************************************************************"
- print " * Copyright (c) 1998-2006,2007 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 "/* and: Thomas E. Dickey 1995-on */"
- print "/****************************************************************************/"
- print ""
- print "/* $Id: MKterm.h.awk.in,v 1.49 2007/08/18 11:44:26 tom Exp $ */"
- 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 NCURSES_CONST"
- print "#define NCURSES_CONST @NCURSES_CONST@"
- print ""
- print "#undef NCURSES_SBOOL"
- print "#define NCURSES_SBOOL @NCURSES_SBOOL@"
- 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 "#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 "#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 " NCURSES_SBOOL *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 " char * _termname; /* used for termname() */"
- print "} TERMINAL;"
- print ""
- print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
- print ""
- print "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
- print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
- print ""
- print "#define boolnames NCURSES_PUBLIC_VAR(boolnames())"
- print "#define boolcodes NCURSES_PUBLIC_VAR(boolcodes())"
- print "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
- print "#define numnames NCURSES_PUBLIC_VAR(numnames())"
- print "#define numcodes NCURSES_PUBLIC_VAR(numcodes())"
- print "#define numfnames NCURSES_PUBLIC_VAR(numfnames())"
- print "#define strnames NCURSES_PUBLIC_VAR(strnames())"
- print "#define strcodes NCURSES_PUBLIC_VAR(strcodes())"
- print "#define strfnames NCURSES_PUBLIC_VAR(strfnames())"
- 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(int) _nc_read_termtype (TERMTYPE *, char *, int);"
- print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
- print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
- 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_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 ""
- print "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
- print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */"
- print "#else"
- print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */"
- print "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */"
- print "#endif"
- print ""
- 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/contrib/ncurses/include/Makefile.in b/contrib/ncurses/include/Makefile.in
deleted file mode 100644
index 1a48a1700a86..000000000000
--- a/contrib/ncurses/include/Makefile.in
+++ /dev/null
@@ -1,126 +0,0 @@
-# $Id: Makefile.in,v 1.35 2001/12/08 18:50:06 tom Exp $
-##############################################################################
-# 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/contrib/ncurses/include/capdefaults.c b/contrib/ncurses/include/capdefaults.c
deleted file mode 100644
index 071f9e17cdbb..000000000000
--- a/contrib/ncurses/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: capdefaults.c,v 1.12 2000/01/02 02:34:56 tom Exp $ */
-
- /*
- * 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/contrib/ncurses/include/curses.h.in b/contrib/ncurses/include/curses.h.in
deleted file mode 100644
index deb63e3d735e..000000000000
--- a/contrib/ncurses/include/curses.h.in
+++ /dev/null
@@ -1,1230 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: curses.h.in,v 1.186 2008/04/05 15:30:28 tom Exp $ */
-
-#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@"
-
-/*
- * Identify the mouse encoding version.
- */
-#define NCURSES_MOUSE_VERSION @NCURSES_MOUSE_VERSION@
-
-/*
- * Definitions to facilitate DLL's.
- */
-#include <ncurses_dll.h>
-
-/*
- * User-definable tweak to disable the include of <stdbool.h>.
- */
-#ifndef NCURSES_ENABLE_STDBOOL_H
-#define NCURSES_ENABLE_STDBOOL_H @cf_cv_header_stdbool_h@
-#endif
-
-/*
- * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses
- * configured using --disable-macros.
- */
-#ifdef NCURSES_NOMACROS
-#ifndef NCURSES_ATTR_T
-#define NCURSES_ATTR_T attr_t
-#endif
-#endif /* NCURSES_NOMACROS */
-
-#ifndef NCURSES_ATTR_T
-#define NCURSES_ATTR_T int
-#endif
-
-/*
- * Expands to 'const' if ncurses is configured using --enable-const. Note that
- * doing so makes it incompatible with other implementations of X/Open Curses.
- */
-#undef NCURSES_CONST
-#define NCURSES_CONST @NCURSES_CONST@
-
-#undef NCURSES_INLINE
-#define NCURSES_INLINE @NCURSES_INLINE@
-
-/*
- * The internal type used for color values
- */
-#undef NCURSES_COLOR_T
-#define NCURSES_COLOR_T short
-
-/*
- * Definition used to make WINDOW and similar structs opaque.
- */
-#ifndef @cf_cv_enable_opaque@
-#define NCURSES_OPAQUE @NCURSES_OPAQUE@
-#endif
-
-/*
- * The internal type used for window dimensions.
- */
-#undef NCURSES_SIZE_T
-#define NCURSES_SIZE_T @NCURSES_SIZE_T@
-
-/*
- * Control whether tparm() supports varargs or fixed-parameter list.
- */
-#undef NCURSES_TPARM_VARARGS
-#define NCURSES_TPARM_VARARGS @NCURSES_TPARM_VARARGS@
-
-/*
- * 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@
-
-#if @cf_cv_enable_lp64@ && defined(_LP64)
-typedef unsigned chtype;
-typedef unsigned mmask_t;
-#else
-typedef unsigned @cf_cv_typeof_chtype@ chtype;
-typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t;
-#endif
-
-#include <stdio.h>
-#include <unctrl.h>
-#include <stdarg.h> /* we need va_list */
-#ifdef _XOPEN_SOURCE_EXTENDED
-#include <stddef.h> /* we want wchar_t */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-
-/* X/Open 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 @USE_CXX_BOOL@ /* __cplusplus, etc. */
-
-/* use the C++ compiler's bool type */
-#define NCURSES_BOOL bool
-
-#else /* c89, c99, etc. */
-
-#if NCURSES_ENABLE_STDBOOL_H
-#include <stdbool.h>
-/* use whatever the C compiler decides bool really is */
-#define NCURSES_BOOL bool
-#else
-/* there is no predefined bool - use our own */
-#undef bool
-#define bool NCURSES_BOOL
-#endif
-
-#endif /* !__cplusplus, etc. */
-
-#ifdef __cplusplus
-extern "C" {
-#define NCURSES_CAST(type,value) static_cast<type>(value)
-#else
-#define NCURSES_CAST(type,value) (type)(value)
-#endif
-
-/*
- * X/Open 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 */
-#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@ || @cf_cv_enable_reentrant@
-NCURSES_WRAPPED_VAR(chtype*, acs_map);
-#define acs_map (_nc_acs_map())
-#else
-extern NCURSES_EXPORT_VAR(chtype) acs_map[];
-#endif
-
-#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,c)])
-
-/* VT100 symbols begin here */
-#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */
-#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */
-#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */
-#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */
-#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */
-#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */
-#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */
-#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */
-#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */
-#define ACS_VLINE NCURSES_ACS('x') /* vertical line */
-#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */
-#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */
-#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */
-#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */
-#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */
-#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */
-#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */
-#define ACS_BULLET NCURSES_ACS('~') /* bullet */
-/* Teletype 5410v1 symbols begin here */
-#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */
-#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */
-#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */
-#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */
-#define ACS_BOARD NCURSES_ACS('h') /* board of squares */
-#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */
-#define ACS_BLOCK NCURSES_ACS('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 NCURSES_ACS('p') /* scan line 3 */
-#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */
-#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */
-#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */
-#define ACS_PI NCURSES_ACS('{') /* Pi */
-#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */
-#define ACS_STERLING NCURSES_ACS('}') /* 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>
-#endif
-
-#if @NEED_WCHAR_H@
-#include <wchar.h> /* ...to get mbstate_t, etc. */
-#endif
-
-#if @NCURSES_WCHAR_T@
-typedef unsigned short wchar_t@NCURSES_OK_WCHAR_T@;
-#endif
-
-#if @NCURSES_WINT_T@
-typedef unsigned int wint_t@NCURSES_OK_WCHAR_T@;
-#endif
-
-#define CCHARW_MAX 5
-typedef struct
-{
- attr_t attr;
- wchar_t chars[CCHARW_MAX];
-#if @NCURSES_EXT_COLORS@
-#undef NCURSES_EXT_COLORS
-#define NCURSES_EXT_COLORS @NCURSES_PATCH@
- int ext_color; /* color pair, must be more than 16-bits */
-#endif
-}
-cchar_t;
-
-#endif /* _XOPEN_SOURCE_EXTENDED */
-
-#if !NCURSES_OPAQUE
-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 */
-#if @NCURSES_EXT_COLORS@
- int _color; /* current color-pair for non-space character */
-#endif
-#endif
-};
-#endif /* NCURSES_OPAQUE */
-
-/*
- * 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.
- * Old versions of G++ do not accept it anyway, at least not consistently with
- * GCC.
- */
-#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__))
-#define __attribute__(p) /* nothing */
-#endif
-
-/*
- * We cannot define these in ncurses_cfg.h, since they require parameters to be
- * passed (that is non-portable). If you happen to be using gcc with warnings
- * enabled, define
- * GCC_PRINTF
- * GCC_SCANF
- * to improve checking of calls to printw(), etc.
- */
-#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 X/Open 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, 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, 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 (const char *,...) /* implemented */
- GCC_PRINTFLIKE(1,2);
-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(void) timeout (int); /* generated */
-extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */
-extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */
-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 *, const char *,va_list); /* implemented */
-extern NCURSES_EXPORT(int) vw_printw (WINDOW *, 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 *, 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 */
-
-/*
- * These are also declared in <term.h>:
- */
-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(int) putp (const char *); /* implemented */
-
-#if NCURSES_TPARM_VARARGS
-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */
-#else
-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */
-extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */
-#endif
-
-/*
- * These functions are not in X/Open, but we use them in macro definitions:
- */
-extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
-
-/*
- * vid_attr() was implemented originally based on a draft of X/Open curses.
- */
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define vid_attr(a,pair,opts) vidattr(a)
-#endif
-
-/*
- * These functions are extensions - not in X/Open Curses.
- */
-#if @NCURSES_EXT_FUNCS@
-#undef NCURSES_EXT_FUNCS
-#define NCURSES_EXT_FUNCS @NCURSES_PATCH@
-typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
-typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
-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 (const char *, int);
-extern NCURSES_EXPORT(int) key_defined (const char *);
-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) set_escdelay (int);
-extern NCURSES_EXPORT(int) set_tabsize (int);
-extern NCURSES_EXPORT(int) use_default_colors (void);
-extern NCURSES_EXPORT(int) use_extended_names (bool);
-extern NCURSES_EXPORT(int) use_legacy_coding (int);
-extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
-extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
-extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
-extern NCURSES_EXPORT(void) nofilter(void);
-
-/*
- * These extensions provide access to information stored in the WINDOW even
- * when NCURSES_OPAQUE is set:
- */
-extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */
-extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */
-
-#else
-#define curses_version() NCURSES_VERSION
-#endif
-
-/* attributes */
-
-#define NCURSES_ATTR_SHIFT 8
-#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT))
-
-#define A_NORMAL (@cf_cv_1UL@ - @cf_cv_1UL@)
-#define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
-#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)
-
-/*
- * Most of the pseudo functions are macros that either provide compatibility
- * with older versions of curses, or provide inline functionality to improve
- * performance.
- */
-
-/*
- * These pseudo functions are always implemented as macros:
- */
-
-#define getyx(win,y,x) (y = getcury(win), x = getcurx(win))
-#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win))
-#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win))
-#define getparyx(win,y,x) (y = getpary(win), x = getparx(win))
-
-#define getsyx(y,x) do { if (newscr) { \
- if (is_leaveok(newscr)) \
- (y) = (x) = -1; \
- else \
- getyx(newscr,(y), (x)); \
- } \
- } while(0)
-
-#define setsyx(y,x) do { if (newscr) { \
- if ((y) == -1 && (x) == -1) \
- leaveok(newscr, TRUE); \
- else { \
- leaveok(newscr, FALSE); \
- wmove(newscr, (y), (x)); \
- } \
- } \
- } while(0)
-
-#ifndef NCURSES_NOMACROS
-
-/*
- * These miscellaneous pseudo functions are provided for compatibility:
- */
-
-#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()
-
-/* It seems older SYSV curses versions define these */
-#if !NCURSES_OPAQUE
-#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)
-#endif /* NCURSES_OPAQUE */
-
-#define wstandout(win) (wattrset(win,A_STANDOUT))
-#define wstandend(win) (wattrset(win,A_NORMAL))
-
-#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
-#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
-
-#if !NCURSES_OPAQUE
-#if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
-#define wattrset(win,at) ((win)->_color = PAIR_NUMBER(at), \
- (win)->_attrs = (at))
-#else
-#define wattrset(win,at) ((win)->_attrs = (at))
-#endif
-#endif /* NCURSES_OPAQUE */
-
-#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)
-
-#if !NCURSES_OPAQUE
-#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1)
-#endif /* NCURSES_OPAQUE */
-
-#define waddstr(win,str) waddnstr(win,str,-1)
-#define waddchstr(win,str) waddchnstr(win,str,-1)
-
-/*
- * These apply to the first 256 color pairs.
- */
-#define COLOR_PAIR(n) NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) (NCURSES_CAST(int,(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
-
-/*
- * pseudo functions for standard screen
- */
-
-#define addch(ch) waddch(stdscr,ch)
-#define addchnstr(str,n) waddchnstr(stdscr,str,n)
-#define addchstr(str) waddchstr(stdscr,str)
-#define addnstr(str,n) waddnstr(stdscr,str,n)
-#define addstr(str) waddnstr(stdscr,str,-1)
-#define attroff(at) wattroff(stdscr,at)
-#define attron(at) wattron(stdscr,at)
-#define attrset(at) wattrset(stdscr,at)
-#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o)
-#define attr_off(a,o) wattr_off(stdscr,a,o)
-#define attr_on(a,o) wattr_on(stdscr,a,o)
-#define attr_set(a,c,o) wattr_set(stdscr,a,c,o)
-#define bkgd(ch) wbkgd(stdscr,ch)
-#define bkgdset(ch) wbkgdset(stdscr,ch)
-#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o)
-#define 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 ? NCURSES_CAST(chtype, ERR) : winch(win))
-#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
-#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
-#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
-#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
-#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
-#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
-#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
-#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
-
-#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
-#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n)
-#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str)
-#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n)
-#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
-#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o)
-#define mvdelch(y,x) mvwdelch(stdscr,y,x)
-#define mvgetch(y,x) mvwgetch(stdscr,y,x)
-#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)
-#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
-#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n)
-#define mvinch(y,x) mvwinch(stdscr,y,x)
-#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n)
-#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s)
-#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n)
-#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
-#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n)
-#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s)
-#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s)
-#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)
-
-/*
- * Some wide-character functions can be implemented without the extensions.
- */
-#if !NCURSES_OPAQUE
-#define getbkgd(win) ((win)->_bkgd)
-#endif /* NCURSES_OPAQUE */
-
-#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
-#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
-
-#if !NCURSES_OPAQUE
-#if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
-#define wattr_set(win,a,p,opts) ((win)->_attrs = ((a) & ~A_COLOR), \
- (win)->_color = (p), \
- OK)
-#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
- (void)((p) != (void *)0 && (*(p) = (win)->_color)), \
- OK)
-#else
-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
-#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
- (void)((p) != (void *)0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
- OK)
-#endif
-#endif /* NCURSES_OPAQUE */
-
-/*
- * X/Open 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
-
-/*
- * These macros are extensions - not in X/Open Curses.
- */
-#if @NCURSES_EXT_FUNCS@
-#if !NCURSES_OPAQUE
-#define is_cleared(win) ((win)->_clear)
-#define is_idcok(win) ((win)->_idcok)
-#define is_idlok(win) ((win)->_idlok)
-#define is_immedok(win) ((win)->_immed)
-#define is_keypad(win) ((win)->_use_keypad)
-#define is_leaveok(win) ((win)->_leaveok)
-#define is_nodelay(win) ((win)->_delay == 0)
-#define is_notimeout(win) ((win)->_notimeout)
-#define is_scrollok(win) ((win)->_scroll)
-#define is_syncok(win) ((win)->_sync)
-#define wgetparent(win) ((win) ? (win)->_parent : 0)
-#define wgetscrreg(win,t,b) ((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
-#endif
-#endif
-
-#endif /* NCURSES_NOMACROS */
-
-/*
- * Public variables.
- *
- * Notes:
- * a. ESCDELAY was an undocumented feature under AIX curses.
- * It gives the ESC expire time in milliseconds.
- * b. ttytype is needed for backward compatibility
- */
-#if @cf_cv_enable_reentrant@
-
-NCURSES_WRAPPED_VAR(WINDOW *, curscr);
-NCURSES_WRAPPED_VAR(WINDOW *, newscr);
-NCURSES_WRAPPED_VAR(WINDOW *, stdscr);
-NCURSES_WRAPPED_VAR(char *, ttytype);
-NCURSES_WRAPPED_VAR(int, COLORS);
-NCURSES_WRAPPED_VAR(int, COLOR_PAIRS);
-NCURSES_WRAPPED_VAR(int, COLS);
-NCURSES_WRAPPED_VAR(int, ESCDELAY);
-NCURSES_WRAPPED_VAR(int, LINES);
-NCURSES_WRAPPED_VAR(int, TABSIZE);
-
-#define curscr NCURSES_PUBLIC_VAR(curscr())
-#define newscr NCURSES_PUBLIC_VAR(newscr())
-#define stdscr NCURSES_PUBLIC_VAR(stdscr())
-#define ttytype NCURSES_PUBLIC_VAR(ttytype())
-#define COLORS NCURSES_PUBLIC_VAR(COLORS())
-#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS())
-#define COLS NCURSES_PUBLIC_VAR(COLS())
-#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY())
-#define LINES NCURSES_PUBLIC_VAR(LINES())
-#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE())
-
-#else
-
-extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
-extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
-extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
-extern NCURSES_EXPORT_VAR(char) ttytype[];
-extern NCURSES_EXPORT_VAR(int) COLORS;
-extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
-extern NCURSES_EXPORT_VAR(int) COLS;
-extern NCURSES_EXPORT_VAR(int) ESCDELAY;
-extern NCURSES_EXPORT_VAR(int) LINES;
-extern NCURSES_EXPORT_VAR(int) TABSIZE;
-
-#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/contrib/ncurses/include/curses.tail b/contrib/ncurses/include/curses.tail
deleted file mode 100644
index dd38ed4ea9e9..000000000000
--- a/contrib/ncurses/include/curses.tail
+++ /dev/null
@@ -1,179 +0,0 @@
-/* $Id: curses.tail,v 1.15 2007/03/10 17:51:24 tom Exp $ */
-/*
- * vile:cmode:
- * This file is part of ncurses, designed to be appended after curses.h.in
- * (see that file for the relevant copyright).
- */
-
-/* mouse interface */
-
-#if NCURSES_MOUSE_VERSION > 1
-#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5))
-#else
-#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6))
-#endif
-
-#define NCURSES_BUTTON_RELEASED 001L
-#define NCURSES_BUTTON_PRESSED 002L
-#define NCURSES_BUTTON_CLICKED 004L
-#define NCURSES_DOUBLE_CLICKED 010L
-#define NCURSES_TRIPLE_CLICKED 020L
-#define NCURSES_RESERVED_EVENT 040L
-
-/* event masks */
-#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
-#define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)
-#define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED)
-#define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)
-#define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)
-
-#define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED)
-#define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED)
-#define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED)
-#define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED)
-#define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED)
-
-#define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED)
-#define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED)
-#define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED)
-#define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED)
-#define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED)
-
-#define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED)
-#define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED)
-#define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED)
-#define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED)
-#define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED)
-
-/*
- * In 32 bits the version-1 scheme does not provide enough space for a 5th
- * button, unless we choose to change the ABI by omitting the reserved-events.
- */
-#if NCURSES_MOUSE_VERSION > 1
-
-#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
-#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED)
-#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
-#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
-#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
-
-#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L)
-#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L)
-#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L)
-#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L)
-
-#else
-
-#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT)
-#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT)
-#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT)
-#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT)
-
-#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L)
-#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L)
-#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L)
-#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L)
-
-#endif
-
-#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1)
-
-/* macros to extract single event-bits from masks */
-#define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1))))
-#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 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*, int*, int*, bool);
-extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */
-
-#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
-
-/* 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 */
-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
-
-#ifdef __cplusplus
-
-#ifndef NCURSES_NOMACROS
-
-/* these names conflict with STL */
-#undef box
-#undef clear
-#undef erase
-#undef move
-#undef refresh
-
-#endif /* NCURSES_NOMACROS */
-
-}
-#endif
-
-#endif /* __NCURSES_H */
diff --git a/contrib/ncurses/include/curses.wide b/contrib/ncurses/include/curses.wide
deleted file mode 100644
index 0c799e4f395c..000000000000
--- a/contrib/ncurses/include/curses.wide
+++ /dev/null
@@ -1,252 +0,0 @@
-/* $Id: curses.wide,v 1.34 2007/03/10 17:52:23 tom Exp $ */
-/*
- * vile:cmode:
- * This file is part of ncurses, designed to be appended after curses.h.in
- * (see that file for the relevant copyright).
- */
-#ifdef _XOPEN_SOURCE_EXTENDED
-
-extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
-
-#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
-
-#define WACS_BSSB NCURSES_WACS('l')
-#define WACS_SSBB NCURSES_WACS('m')
-#define WACS_BBSS NCURSES_WACS('k')
-#define WACS_SBBS NCURSES_WACS('j')
-#define WACS_SBSS NCURSES_WACS('u')
-#define WACS_SSSB NCURSES_WACS('t')
-#define WACS_SSBS NCURSES_WACS('v')
-#define WACS_BSSS NCURSES_WACS('w')
-#define WACS_BSBS NCURSES_WACS('q')
-#define WACS_SBSB NCURSES_WACS('x')
-#define WACS_SSSS NCURSES_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 NCURSES_WACS('o') /* scan line 1 */
-#define WACS_S9 NCURSES_WACS('s') /* scan line 9 */
-#define WACS_DIAMOND NCURSES_WACS('`') /* diamond */
-#define WACS_CKBOARD NCURSES_WACS('a') /* checker board */
-#define WACS_DEGREE NCURSES_WACS('f') /* degree symbol */
-#define WACS_PLMINUS NCURSES_WACS('g') /* plus/minus */
-#define WACS_BULLET NCURSES_WACS('~') /* bullet */
-
- /* Teletype 5410v1 symbols */
-#define WACS_LARROW NCURSES_WACS(',') /* arrow left */
-#define WACS_RARROW NCURSES_WACS('+') /* arrow right */
-#define WACS_DARROW NCURSES_WACS('.') /* arrow down */
-#define WACS_UARROW NCURSES_WACS('-') /* arrow up */
-#define WACS_BOARD NCURSES_WACS('h') /* board of squares */
-#define WACS_LANTERN NCURSES_WACS('i') /* lantern symbol */
-#define WACS_BLOCK NCURSES_WACS('0') /* solid square block */
-
- /* ncurses extensions */
-#define WACS_S3 NCURSES_WACS('p') /* scan line 3 */
-#define WACS_S7 NCURSES_WACS('r') /* scan line 7 */
-#define WACS_LEQUAL NCURSES_WACS('y') /* less/equal */
-#define WACS_GEQUAL NCURSES_WACS('z') /* greater/equal */
-#define WACS_PI NCURSES_WACS('{') /* Pi */
-#define WACS_NEQUAL NCURSES_WACS('|') /* not equal */
-#define WACS_STERLING NCURSES_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 *); /* implemented */
-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); /* implemented */
-extern NCURSES_EXPORT(attr_t) term_attrs (void); /* implemented */
-extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* implemented */
-extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *); /* implemented */
-extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, 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 *); /* generated:WIDEC */
-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 */
-
-#ifndef NCURSES_NOMACROS
-
-/*
- * XSI curses macros for XPG4 conformance.
- */
-#define add_wch(c) wadd_wch(stdscr,c)
-#define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n)
-#define add_wchstr(str) wadd_wchstr(stdscr,str)
-#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n)
-#define addwstr(wstr) waddwstr(stdscr,wstr)
-#define bkgrnd(c) wbkgrnd(stdscr,c)
-#define bkgrndset(c) wbkgrndset(stdscr,c)
-#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
-#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0)
-#define echo_wchar(c) wecho_wchar(stdscr,c)
-#define get_wch(c) wget_wch(stdscr,c)
-#define get_wstr(t) wget_wstr(stdscr,t)
-#define getbkgrnd(wch) wgetbkgrnd(stdscr,wch)
-#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n)
-#define hline_set(c,n) whline_set(stdscr,c,n)
-#define in_wch(c) win_wch(stdscr,c)
-#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n)
-#define in_wchstr(c) win_wchstr(stdscr,c)
-#define innwstr(c,n) winnwstr(stdscr,c,n)
-#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n)
-#define ins_wch(c) wins_wch(stdscr,c)
-#define ins_wstr(t) wins_wstr(stdscr,t)
-#define inwstr(c) winwstr(stdscr,c)
-#define vline_set(c,n) wvline_set(stdscr,c,n)
-#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1)
-#define waddwstr(win,wstr) waddnwstr(win,wstr,-1)
-#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
-#define win_wchstr(w,c) win_wchnstr(w,c,-1)
-#define wins_wstr(w,t) wins_nwstr(w,t,-1)
-
-#if !NCURSES_OPAQUE
-#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
-#endif
-
-#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c)
-#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n)
-#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s)
-#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n)
-#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr)
-#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c)
-#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t)
-#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n)
-#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n)
-#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c)
-#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n)
-#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c)
-#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n)
-#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n)
-#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c)
-#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t)
-#define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c)
-#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n)
-
-#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
-#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
-#define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
-#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
-#define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
-#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
-#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
-#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
-#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
-#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
-#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
-#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
-#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
-#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
-#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
-#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
-#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
-#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
-
-#endif /* NCURSES_NOMACROS */
-
-#if defined(TRACE) || defined(NCURSES_TEST)
-extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
-extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
-#endif
-
-#endif /* _XOPEN_SOURCE_EXTENDED */
diff --git a/contrib/ncurses/include/edit_cfg.sh b/contrib/ncurses/include/edit_cfg.sh
deleted file mode 100755
index 8d64fee18013..000000000000
--- a/contrib/ncurses/include/edit_cfg.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-# $Id: edit_cfg.sh,v 1.12 2001/12/23 00:52:40 tom Exp $
-##############################################################################
-# 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/contrib/ncurses/include/hashed_db.h b/contrib/ncurses/include/hashed_db.h
deleted file mode 100644
index 4dd3933111a8..000000000000
--- a/contrib/ncurses/include/hashed_db.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2006 *
- ****************************************************************************/
-
-/*
- * $Id: hashed_db.h,v 1.5 2006/08/19 15:58:34 tom Exp $
- */
-
-#ifndef HASHED_DB_H
-#define HASHED_DB_H 1
-
-#include <curses.h>
-
-#if USE_HASHED_DB
-
-#include <db.h>
-
-#ifndef DBN_SUFFIX
-#define DBM_SUFFIX ".db"
-#endif
-
-#ifdef DB_VERSION_MAJOR
-#define HASHED_DB_API DB_VERSION_MAJOR
-#else
-#define HASHED_DB_API 1 /* e.g., db 1.8.5 */
-#endif
-
-extern NCURSES_EXPORT(DB *) _nc_db_open(const char * /* path */, bool /* modify */);
-extern NCURSES_EXPORT(bool) _nc_db_have_data(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */);
-extern NCURSES_EXPORT(bool) _nc_db_have_index(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */);
-extern NCURSES_EXPORT(int) _nc_db_close(DB * /* db */);
-extern NCURSES_EXPORT(int) _nc_db_first(DB * /* db */, DBT * /* key */, DBT * /* data */);
-extern NCURSES_EXPORT(int) _nc_db_next(DB * /* db */, DBT * /* key */, DBT * /* data */);
-extern NCURSES_EXPORT(int) _nc_db_get(DB * /* db */, DBT * /* key */, DBT * /* data */);
-extern NCURSES_EXPORT(int) _nc_db_put(DB * /* db */, DBT * /* key */, DBT * /* data */);
-
-#endif
-
-#endif /* HASHED_DB_H */
diff --git a/contrib/ncurses/include/headers b/contrib/ncurses/include/headers
deleted file mode 100644
index a24bd90923ff..000000000000
--- a/contrib/ncurses/include/headers
+++ /dev/null
@@ -1,42 +0,0 @@
-# $Id: headers,v 1.9 2007/01/20 19:57:04 Miroslav.Lichvar Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-term.h
-curses.h
-unctrl.h
-termcap.h
-$(srcdir)/ncurses_dll.h
-@ ticlib
-$(srcdir)/tic.h
-$(srcdir)/term_entry.h
-$(srcdir)/nc_tparm.h
-
-# vile:makemode
diff --git a/contrib/ncurses/include/nc_alloc.h b/contrib/ncurses/include/nc_alloc.h
deleted file mode 100644
index 9b5751de8c1f..000000000000
--- a/contrib/ncurses/include/nc_alloc.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: nc_alloc.h,v 1.15 2007/02/03 18:40:23 tom Exp $ */
-
-#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
-
-#if HAVE_LIBMPATROL
-#include <mpatrol.h> /* Memory-Patrol library */
-#else
-#undef HAVE_LIBMPATROL
-#define HAVE_LIBMPATROL 0
-#endif
-
-#ifndef NO_LEAKS
-#define NO_LEAKS 0
-#endif
-
-#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
-#define HAVE_NC_FREEALL 1
-struct termtype;
-extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_free_tparm(void);
-extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
-extern NCURSES_EXPORT(void) _nc_leaks_tic(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
-
-/* entries.c */
-extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void);
-
-#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
-#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
-#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NC_ALLOC_included */
diff --git a/contrib/ncurses/include/nc_panel.h b/contrib/ncurses/include/nc_panel.h
deleted file mode 100644
index bb1f6745ac0c..000000000000
--- a/contrib/ncurses/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,v 1.3 2000/12/10 02:04:35 tom Exp $
- *
- * 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/contrib/ncurses/include/nc_tparm.h b/contrib/ncurses/include/nc_tparm.h
deleted file mode 100644
index d1d769be9a27..000000000000
--- a/contrib/ncurses/include/nc_tparm.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2006 *
- ****************************************************************************/
-
-/* $Id: nc_tparm.h,v 1.4 2006/11/26 00:49:25 tom Exp $ */
-
-/*
- * Cast parameters past the formatting-string for tparm() to match the
- * assumption of the varargs code.
- */
-#define TPARM_ARG long
-#define TPARM_N(n) (TPARM_ARG)(n)
-
-#define TPARM_9(a,b,c,d,e,f,g,h,i,j) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i),TPARM_N(j))
-
-#if NCURSES_TPARM_VARARGS
-#define TPARM_8(a,b,c,d,e,f,g,h,i) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i))
-#define TPARM_7(a,b,c,d,e,f,g,h) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h))
-#define TPARM_6(a,b,c,d,e,f,g) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g))
-#define TPARM_5(a,b,c,d,e,f) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f))
-#define TPARM_4(a,b,c,d,e) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e))
-#define TPARM_3(a,b,c,d) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d))
-#define TPARM_2(a,b,c) tparm(a,TPARM_N(b),TPARM_N(c))
-#define TPARM_1(a,b) tparm(a,TPARM_N(b))
-#define TPARM_0(a) tparm(a)
-#else
-#define TPARM_8(a,b,c,d,e,f,g,h,i) TPARM_9(a,b,c,d,e,f,g,h,i,0)
-#define TPARM_7(a,b,c,d,e,f,g,h) TPARM_8(a,b,c,d,e,f,g,h,0)
-#define TPARM_6(a,b,c,d,e,f,g) TPARM_7(a,b,c,d,e,f,g,0)
-#define TPARM_5(a,b,c,d,e,f) TPARM_6(a,b,c,d,e,f,0)
-#define TPARM_4(a,b,c,d,e) TPARM_5(a,b,c,d,e,0)
-#define TPARM_3(a,b,c,d) TPARM_4(a,b,c,d,0)
-#define TPARM_2(a,b,c) TPARM_3(a,b,c,0)
-#define TPARM_1(a,b) TPARM_2(a,b,0)
-#define TPARM_1(a,b) TPARM_2(a,b,0)
-#define TPARM_0(a) TPARM_1(a,0)
-#endif
diff --git a/contrib/ncurses/include/ncurses_cfg.hin b/contrib/ncurses/include/ncurses_cfg.hin
deleted file mode 100644
index 3f8a482a5d84..000000000000
--- a/contrib/ncurses/include/ncurses_cfg.hin
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: ncurses_cfg.hin,v 1.7 2005/01/02 01:26:58 tom Exp $
- *
- * This is a template-file used to generate the "ncurses_cfg.h" file.
- *
- * 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
-
- /* On HP-UX, the C compiler doesn't grok mbstate_t without
- -D_XOPEN_SOURCE=500. However, this causes problems on
- IRIX. So, we #define mbstate_t to int in configure.in
- only for the C compiler if needed. */
-#ifndef __cplusplus
-#ifdef NEED_MBSTATE_T_DEF
-#define mbstate_t int
-#endif
-#endif
-
-#endif /* NC_CONFIG_H */
diff --git a/contrib/ncurses/include/ncurses_defs b/contrib/ncurses/include/ncurses_defs
deleted file mode 100644
index 924c75eb8890..000000000000
--- a/contrib/ncurses/include/ncurses_defs
+++ /dev/null
@@ -1,203 +0,0 @@
-# $Id: ncurses_defs,v 1.38 2008/02/10 00:12:03 tom Exp $
-##############################################################################
-# Copyright (c) 2000-2007,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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_PROTOS
-CPP_HAS_PARAM_INIT
-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_BSD_SIGNAL_H
-HAVE_BTOWC
-HAVE_BUILTIN_H
-HAVE_CHGAT 1
-HAVE_COLOR_SET 1
-HAVE_DIRENT_H
-HAVE_ERRNO
-HAVE_FCNTL_H
-HAVE_FILTER 1
-HAVE_FORM_H
-HAVE_GETBEGX 1
-HAVE_GETCURX 1
-HAVE_GETCWD
-HAVE_GETEGID
-HAVE_GETEUID
-HAVE_GETMAXX 1
-HAVE_GETNSTR
-HAVE_GETPARX 1
-HAVE_GETOPT_H
-HAVE_GETTIMEOFDAY
-HAVE_GETTTYNAM
-HAVE_GETWIN 1
-HAVE_GPM_H
-HAVE_GPP_BUILTIN_H
-HAVE_GXX_BUILTIN_H
-HAVE_HAS_KEY
-HAVE_IOSTREAM
-HAVE_ISASCII
-HAVE_ISSETUGID
-HAVE_LANGINFO_CODESET
-HAVE_LIBC_H
-HAVE_LIBDBMALLOC
-HAVE_LIBDMALLOC
-HAVE_LIBFORM
-HAVE_LIBGPM
-HAVE_LIBMENU
-HAVE_LIBMPATROL
-HAVE_LIBPANEL
-HAVE_LIMITS_H
-HAVE_LINK
-HAVE_LOCALE_H
-HAVE_LONG_FILE_NAMES
-HAVE_MBLEN
-HAVE_MBRLEN
-HAVE_MBRTOWC
-HAVE_MBTOWC
-HAVE_MENU_H
-HAVE_MKSTEMP
-HAVE_MVVLINE 1
-HAVE_MVWVLINE 1
-HAVE_NANOSLEEP
-HAVE_NC_ALLOC_H
-HAVE_PANEL_H
-HAVE_POLL
-HAVE_POLL_H
-HAVE_PURIFY
-HAVE_PUTWC
-HAVE_PUTWIN 1
-HAVE_REGEXPR_H_FUNCS
-HAVE_REGEXP_H_FUNCS
-HAVE_REGEX_H_FUNCS
-HAVE_REMOVE
-HAVE_RESIZETERM
-HAVE_RESIZE_TERM
-HAVE_RIPOFFLINE 1
-HAVE_SELECT
-HAVE_SETBUF
-HAVE_SETBUFFER
-HAVE_SETUPTERM 1
-HAVE_SETVBUF
-HAVE_SIGACTION
-HAVE_SIGVEC
-HAVE_SIZECHANGE
-HAVE_SLK_COLOR
-HAVE_SLK_INIT 1
-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_TERMATTRS 1
-HAVE_TERMIOS_H
-HAVE_TERMIO_H
-HAVE_TERMNAME 1
-HAVE_TERM_H 1
-HAVE_TGETENT 1
-HAVE_TIGETNUM 1
-HAVE_TIGETSTR 1
-HAVE_TIMES
-HAVE_TTYENT_H
-HAVE_TYPEAHEAD 1
-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_WCTOB
-HAVE_WCTOMB
-HAVE_WCTYPE_H
-HAVE_WINSSTR 1
-HAVE_WORKING_POLL
-HAVE_WRESIZE
-HAVE__DOSCAN
-MIXEDCASE_FILENAMES
-NCURSES_CHAR_EQ
-NCURSES_EXPANDED
-NCURSES_EXT_COLORS
-NCURSES_EXT_FUNCS
-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_HASHED_DB
-USE_HASHMAP
-USE_HOME_TERMINFO
-USE_LINKS
-USE_MY_MEMMOVE
-USE_OK_BCOPY
-USE_RCS_IDS
-USE_REENTRANT
-USE_SAFE_SPRINTF
-USE_SCROLL_HINTS
-USE_SIGWINCH
-USE_SYMLINKS
-USE_SYSMOUSE
-USE_TERMCAP
-USE_WIDEC_SUPPORT
-USE_XMC_SUPPORT
diff --git a/contrib/ncurses/include/ncurses_dll.h b/contrib/ncurses/include/ncurses_dll.h
deleted file mode 100644
index e24feee2051d..000000000000
--- a/contrib/ncurses/include/ncurses_dll.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders 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_dll.h,v 1.6 2007/03/10 19:21:49 tom Exp $ */
-
-#ifndef NCURSES_DLL_H_incl
-#define NCURSES_DLL_H_incl 1
-
-/* no longer needed on cygwin or mingw, thanks to auto-import */
-/* but this structure may be useful at some point for an MSVC build */
-/* so, for now unconditionally define the important flags */
-/* "the right way" for proper static and dll+auto-import behavior */
-#undef NCURSES_DLL
-#define NCURSES_STATIC
-
-#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
-# undef NCURSES_EXPORT_VAR
-# 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
-
-/*
- * For reentrant code, we map the various global variables into SCREEN by
- * using functions to access them.
- */
-#define NCURSES_PUBLIC_VAR(name) _nc_##name
-#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
-
-#endif /* NCURSES_DLL_H_incl */
diff --git a/contrib/ncurses/include/term_entry.h b/contrib/ncurses/include/term_entry.h
deleted file mode 100644
index c880c3a72175..000000000000
--- a/contrib/ncurses/include/term_entry.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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-2004 *
- ****************************************************************************/
-
-/* $Id: term_entry.h,v 1.34 2005/07/16 21:15:07 tom Exp $ */
-
-/*
- * 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()' */
-
-/* lib_termcap.c: trim sgr0 string for termcap users */
-extern NCURSES_EXPORT(char *) _nc_trim_sgr0 (TERMTYPE *);
-
-/* parse_entry.c: entry-parsing code */
-#if NCURSES_XNAMES
-extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
-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); /* obs 20040705 */
-extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool);
-extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *);
-extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */
-extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype2)(TERMTYPE *, bool);
-
-/* trace_xnames.c */
-extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NCURSES_TERM_ENTRY_H_incl */
diff --git a/contrib/ncurses/include/termcap.h.in b/contrib/ncurses/include/termcap.h.in
deleted file mode 100644
index 6adc31222064..000000000000
--- a/contrib/ncurses/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: termcap.h.in,v 1.16 2001/03/24 21:53:27 tom Exp $ */
-
-#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/contrib/ncurses/include/tic.h b/contrib/ncurses/include/tic.h
deleted file mode 100644
index 4e10399356c1..000000000000
--- a/contrib/ncurses/include/tic.h
+++ /dev/null
@@ -1,332 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: tic.h,v 1.62 2007/08/11 16:12:43 tom Exp $
- * 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 */
-
-#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))
-
-#define IS_TIC_MAGIC(p) (LOW_MSB(p) == MAGIC)
-
-/*
- * 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 at
- * least 14, since that corresponds to the older filename lengths. Newer
- * systems allow longer aliases, though not many terminal descriptions are
- * written to use them. The MAX_ALIAS symbol is used for warnings.
- */
-#if HAVE_LONG_FILE_NAMES
-#define MAX_ALIAS 32 /* smaller than 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;
-
- /*
- * 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(const struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
-
-#else
-
-extern NCURSES_EXPORT_VAR(const 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(const struct name_table_entry *) _nc_get_table (bool);
-extern NCURSES_EXPORT(const short *) _nc_get_hash_table (bool);
-extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool);
-
-#define NOTFOUND ((struct name_table_entry *) 0)
-
-/* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN ((signed char)-1) /* 255 */
-#define ABSENT_NUMERIC (-1)
-#define ABSENT_STRING (char *)0
-
-/* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN ((signed char)-2) /* 254 */
-#define CANCELLED_NUMERIC (-2)
-#define CANCELLED_STRING (char *)(-1)
-
-#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
-#define VALID_NUMERIC(s) ((s) >= 0)
-#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
-
-/* 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(unsigned) _nc_pathlast (const char *);
-extern NCURSES_EXPORT(bool) _nc_is_abs_path (const char *);
-extern NCURSES_EXPORT(bool) _nc_is_dir_path (const char *);
-extern NCURSES_EXPORT(bool) _nc_is_file_path (const char *);
-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 short *);
-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(const char *) _nc_get_source (void);
-extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_get_type (char *name);
-extern NCURSES_EXPORT(void) _nc_set_source (const char *const);
-extern NCURSES_EXPORT(void) _nc_set_type (const char *const);
-extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_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(int) _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);
-
-/* home_terminfo.c */
-extern NCURSES_EXPORT(char *) _nc_home_terminfo (void);
-
-/* lib_tparm.c */
-#define NUM_PARM 9
-
-extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
-
-extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *, char **, int *);
-
-/* lib_tputs.c */
-extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */
-
-/* comp_main.c: compiler main */
-extern const char * _nc_progname;
-
-/* db_iterator.c */
-typedef enum {
- dbdTIC = 0,
-#if USE_DATABASE
- dbdEnvOnce,
- dbdHome,
- dbdEnvList,
- dbdCfgList,
- dbdCfgOnce,
-#endif
-#if USE_TERMCAP
- dbdEnvOnce2,
- dbdEnvList2,
- dbdCfgList2,
-#endif
- dbdLAST
-} DBDIRS;
-
-extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *);
-extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *);
-extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *);
-extern NCURSES_EXPORT(void) _nc_last_db(void);
-
-/* write_entry.c */
-extern NCURSES_EXPORT(int) _nc_tic_written (void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TIC_H */
diff --git a/contrib/ncurses/include/unctrl.h.in b/contrib/ncurses/include/unctrl.h.in
deleted file mode 100644
index 70d74b7714b1..000000000000
--- a/contrib/ncurses/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: unctrl.h.in,v 1.10 2001/03/24 21:53:25 tom Exp $ */
-
-#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/contrib/ncurses/install-sh b/contrib/ncurses/install-sh
deleted file mode 100755
index 462fa9c3d57b..000000000000
--- a/contrib/ncurses/install-sh
+++ /dev/null
@@ -1,294 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-#
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# 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 "$0: no input file specified" >&2
- exit 1
-else
- :
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d "$dst" ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=$mkdirprog
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f "$src" ] || [ -d "$src" ]
- then
- :
- else
- echo "$0: $src does not exist" >&2
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "$0: no destination specified" >&2
- exit 1
- else
- :
- 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
- :
- 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
- :
- fi
-
- pathcomp=$pathcomp/
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd "$dst" &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- 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
- :
- fi
-
-# Make a couple of temp file names in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
- rmtmp=$dstdir/#rm.$$#
-
-# Trap to clean up temp files at exit.
-
- trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
- trap '(exit $?); exit' 1 2 13 15
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd "$src" "$dsttmp" &&
-
-# 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 :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
-
-# Now remove or move aside any old file at destination location. We try this
-# two ways since rm can't unlink itself on some systems and the destination
-# file might be busy for other reasons. In this case, the final cleanup
-# might fail but the new file should still install successfully.
-
-{
- if [ -f "$dstdir/$dstfile" ]
- then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
- $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
- {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit
- }
- else
- :
- fi
-} &&
-
-# Now rename the file to the real destination.
-
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-
-fi &&
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-
-{
- (exit 0); exit
-}
diff --git a/contrib/ncurses/man/MKterminfo.sh b/contrib/ncurses/man/MKterminfo.sh
deleted file mode 100755
index 3a9960956567..000000000000
--- a/contrib/ncurses/man/MKterminfo.sh
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/sh
-# $Id: MKterminfo.sh,v 1.12 2003/01/11 21:42:12 tom Exp $
-#
-# MKterminfo.sh -- generate terminfo.5 from Caps tabular data
-#
-#***************************************************************************
-# Copyright (c) 1998,2002,2003 Free Software Foundation, Inc. *
-# *
-# Permission is hereby granted, free of charge, to any person obtaining a *
-# copy of this software and associated documentation files (the *
-# "Software"), to deal in the Software without restriction, including *
-# without limitation the rights to use, copy, modify, merge, publish, *
-# distribute, distribute with modifications, sublicense, and/or sell *
-# copies of the Software, and to permit persons to whom the Software is *
-# furnished to do so, subject to the following conditions: *
-# *
-# The above copyright notice and this permission notice shall be included *
-# in all copies or substantial portions of the Software. *
-# *
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-# IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-# THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-# *
-# Except as contained in this notice, the name(s) of the above copyright *
-# 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_()\-][A-Z0-9_()\-]* [0-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/contrib/ncurses/man/Makefile.in b/contrib/ncurses/man/Makefile.in
deleted file mode 100644
index c04f7c9eea57..000000000000
--- a/contrib/ncurses/man/Makefile.in
+++ /dev/null
@@ -1,80 +0,0 @@
-# $Id: Makefile.in,v 1.41 2007/03/31 15:54:06 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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
-#
-# 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 :
-tags :
-
-$(DESTDIR)$(mandir) :
- sh $(srcdir)/../mkdirs.sh $@
-
-EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
-
-install install.man : terminfo.5 $(DESTDIR)$(mandir)
- sh ../edit_man.sh normal installing $(EDITARGS)
-
-uninstall uninstall.man :
- -sh ../edit_man.sh normal 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.* ../man_alias.*
diff --git a/contrib/ncurses/man/captoinfo.1m b/contrib/ncurses/man/captoinfo.1m
deleted file mode 100644
index de57a27cf0f4..000000000000
--- a/contrib/ncurses/man/captoinfo.1m
+++ /dev/null
@@ -1,193 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.22 2007/06/02 20:40:07 tom Exp $
-.TH @CAPTOINFO@ 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fB@CAPTOINFO@\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
-.SH SYNOPSIS
-\fB@CAPTOINFO@\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
-.SH DESCRIPTION
-\fB@CAPTOINFO@\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.
-.PP
-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 \fB@CAPTOINFO@\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 \fIacsc\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:
-.TS
-c c
-l l.
-IBM XSI
-_
-ksel kslt
-kbtab kcbt
-font0 s0ds
-font1 s1ds
-font2 s2ds
-font3 s3ds
-.TE
-.PP
-Additionally, the AIX \fIbox1\fR capability will be automatically translated to
-an \fIacsc\fR string.
-.PP
-Hewlett-Packard's terminfo library supports two nonstandard terminfo
-capabilities \fImeml\fR (memory lock) and \fImemu\fR (memory unlock).
-These will be discarded with a warning message.
-.SH NOTES
-This utility is actually a link to \fB@TIC@\fR(1M), running in \fI-I\fR mode.
-You can use other \fB@TIC@\fR options such as \fB-f\fR and \fB-x\fR.
-.PP
-The trace option is not identical to SVr4's. Under SVr4, instead of following
-the \fB-v\fR with a trace level n, you repeat it n times.
-.SH SEE ALSO
-\fB@INFOCMP@\fR(1M),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.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/contrib/ncurses/man/clear.1 b/contrib/ncurses/man/clear.1
deleted file mode 100644
index 31d0f93e05b9..000000000000
--- a/contrib/ncurses/man/clear.1
+++ /dev/null
@@ -1,53 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/12/24 18:07:53 tom Exp $
-.TH @CLEAR@ 1 ""
-.ds n 5
-.SH NAME
-\fB@CLEAR@\fR - clear the terminal screen
-.SH SYNOPSIS
-\fB@CLEAR@\fR
-.br
-.SH DESCRIPTION
-\fB@CLEAR@\fR clears your screen if this is possible. It looks in the
-environment for the terminal type and then in the \fBterminfo\fR database to
-figure out how to clear the screen.
-.PP
-\fB@CLEAR@\fR ignores any command-line parameters that may be present.
-.SH SEE ALSO
-\fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_add_wch.3x b/contrib/ncurses/man/curs_add_wch.3x
deleted file mode 100644
index 51ac1a4b5c35..000000000000
--- a/contrib/ncurses/man/curs_add_wch.3x
+++ /dev/null
@@ -1,135 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2001-2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/12/24 15:22:22 tom Exp $
-.TH curs_add_wch 3X ""
-.SH NAME
-\fBadd_wch\fP,
-\fBwadd_wch\fP,
-\fBmvadd_wch\fP,
-\fBmvwadd_wch\fP,
-\fBecho_wchar\fP,
-\fBwecho_wchar\fP - add a complex character and rendition to a \fBcurses\fR window, then advance the cursor
-.SH SYNOPSIS
-.PP
-\fB#include <curses.h>\fP
-.sp
-.B "int add_wch( const cchar_t *\fIwch\fB );"
-.br
-.B "int wadd_wch( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
-.br
-.B "int mvadd_wch( int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
-.br
-.B "int mvwadd_wch( WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
-.br
-.B "int echo_wchar( const cchar_t *\fIwch\fB );"
-.br
-.B "int wecho_wchar( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
-.br
-.SH DESCRIPTION
-.PP
-The
-\fBadd_wch\fP,
-\fBwadd_wch\fP,
-\fBmvadd_wch\fP, and
-\fBmvwadd_wch\fP
-functions put the complex character \fIwch\fP into the given
-window at its current position,
-which is then advanced.
-These functions perform
-wrapping and special-character processing as follows:
-.TP 5
--
-If \fIwch\fP refers to a spacing character,
-then any previous character at that location is removed.
-A new character specified by \fIwch\fP is
-placed at that location with rendition specified by \fIwch\fP.
-The cursor then advances to
-the next spacing character on the screen.
-.TP 5
--
-If \fIwch\fP refers to a non-spacing character,
-all previous characters at that location are preserved.
-The non-spacing characters of \fIwch\fP
-are added to the spacing complex character,
-and the rendition specified by \fIwch\fP is ignored.
-.TP 5
--
-If the character part of \fIwch\fP is
-a tab, newline, backspace or other control character,
-the window is updated and the cursor moves as if \fBaddch\fR 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_addch\fR(3X),
-\fBcurs_attr\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/contrib/ncurses/man/curs_add_wchstr.3x b/contrib/ncurses/man/curs_add_wchstr.3x
deleted file mode 100644
index f84c2cb98c24..000000000000
--- a/contrib/ncurses/man/curs_add_wchstr.3x
+++ /dev/null
@@ -1,97 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2005/01/02 01:28:49 tom Exp $
-.TH curs_add_wchstr 3X ""
-.SH NAME
-\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>
-.PP
-.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 than 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/contrib/ncurses/man/curs_addch.3x b/contrib/ncurses/man/curs_addch.3x
deleted file mode 100644
index 73918b88b954..000000000000
--- a/contrib/ncurses/man/curs_addch.3x
+++ /dev/null
@@ -1,181 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.27 2007/06/02 20:40:07 tom Exp $
-.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
-.PP
-\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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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 does not define a terminal-specific
-replacement for it.
-The names are taken from VT100 nomenclature.
-.PP
-.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.
-.LP
-If \fIch\fR is a carriage return,
-the cursor is moved to the beginning of the current row of the window.
-This is true of other implementations, but is not documented.
-.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(3).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_add_wch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_addchstr.3x b/contrib/ncurses/man/curs_addchstr.3x
deleted file mode 100644
index ac1b040021e5..000000000000
--- a/contrib/ncurses/man/curs_addchstr.3x
+++ /dev/null
@@ -1,99 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.12 2006/12/02 17:02:45 tom Exp $
-.TH curs_addchstr 3X ""
-.na
-.hy 0
-.SH NAME
-\fBaddchstr\fR,
-\fBaddchnstr\fR,
-\fBwaddchstr\fR,
-\fBwaddchnstr\fR,
-\fBmvaddchstr\fR,
-\fBmvaddchnstr\fR,
-\fBmvwaddchstr\fR,
-\fBmvwaddchnstr\fR - add a string of characters (and attributes) to a \fBcurses\fR window
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.PP
-\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.
-.PP
-The window cursor is \fInot\fR advanced, and these routines work faster than
-\fBwaddnstr\fR. On the other hand, they do not perform any kind of checking
-(such as for the newline, backspace, or carriage return characters), they do not
-advance the current cursor position, they do not expand other control characters
-to ^-escapes, and they truncate the string if it crosses the right margin,
-rather than wrapping it around to the new line.
-.SH RETURN VALUES
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
-successful completion, unless otherwise noted in the preceding routine
-descriptions.
-.PP
-X/Open does not define any error conditions.
-This implementation returns an error
-if the window pointer is null.
-.SH NOTES
-Note that all routines except \fBwaddchnstr\fR may be macros.
-.SH PORTABILITY
-These entry points are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_add_wchstr\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_addstr.3x b/contrib/ncurses/man/curs_addstr.3x
deleted file mode 100644
index 488b9dd8e752..000000000000
--- a/contrib/ncurses/man/curs_addstr.3x
+++ /dev/null
@@ -1,97 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.13 2005/05/15 16:17:14 tom Exp $
-.TH curs_addstr 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-.PP
-\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.
-.PP
-X/Open does not define any error conditions.
-This implementation returns an error
-if the window pointer is null or
-if the string pointer is null or
-if the corresponding calls to \fBwaddch\fP return an error.
-.SH NOTES
-Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be
-macros.
-.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/contrib/ncurses/man/curs_addwstr.3x b/contrib/ncurses/man/curs_addwstr.3x
deleted file mode 100644
index 63d274608cc7..000000000000
--- a/contrib/ncurses/man/curs_addwstr.3x
+++ /dev/null
@@ -1,94 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.7 2006/02/25 20:59:08 tom Exp $
-.TH curs_addwstr 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-.PP
-\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\fR character string
-\fIwstr\fR on the given window.
-It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string,
-then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR.
-.PP
-The \fImv\fR routines perform cursor movement once, before writing any
-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
-\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/contrib/ncurses/man/curs_attr.3x b/contrib/ncurses/man/curs_attr.3x
deleted file mode 100644
index cf58affee13d..000000000000
--- a/contrib/ncurses/man/curs_attr.3x
+++ /dev/null
@@ -1,270 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.31 2007/03/17 20:30:33 tom Exp $
-.TH curs_attr 3X ""
-.na
-.hy 0
-.SH NAME
-\fBattroff\fR,
-\fBwattroff\fR,
-\fBattron\fR,
-\fBwattron\fR,
-\fBattrset\fR,
-\fBwattrset\fR,
-\fBcolor_set\fR,
-\fBwcolor_set\fR,
-\fBstandend\fR,
-\fBwstandend\fR,
-\fBstandout\fR,
-\fBwstandout\fR,
-\fBattr_get\fR,
-\fBwattr_get\fR,
-\fBattr_off\fR,
-\fBwattr_off\fR,
-\fBattr_on\fR,
-\fBwattr_on\fR,
-\fBattr_set\fR,
-\fBwattr_set\fR,
-\fBchgat\fR,
-\fBwchgat\fR,
-\fBmvchgat\fR,
-\fBmvwchgat\fR,
-\fBPAIR_NUMBER\fR - \fBcurses\fR character and window attribute control routines
-.ad
-.hy
-.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).
-.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'd with the
-characters passed to \fBaddch\fR.
-.PP
-.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
-.PP
-The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR:
-.PP
-.br
-\fBPAIR_NUMBER(\fR\fIattrs\fR) Returns the pair number associated
- with the \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR attribute.
-.br
-.PP
-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.
-.PP
-\fBCOLOR_PAIR\fP values can only be OR'd with attributes if the pair
-number is less than 256.
-The alternate functions such as \fBcolor_set\fP can pass a color pair
-value directly.
-However, ncurses ABI 4 and 5 simply OR this value within the alternate functions.
-You must use ncurses ABI 6 to support more than 256 color pairs.
-.SH PORTABILITY
-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.
-.PP
-Older versions of this library did not force an update of the screen
-when changing the attributes.
-Use \fBtouchwin\fR to force the screen to match the updated attributes.
-.PP
-.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
-.PP
-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
-implementation does not yet support.
-.SH RETURN VALUE
-All routines return the integer \fBOK\fR on success, or \fBERR\fP on failure.
-.PP
-X/Open does not define any error conditions.
-.PP
-This implementation returns an error
-if the window pointer is null.
-The \fBwcolor_set\fP function returns an error if the color pair parameter
-is outside the range 0..COLOR_PAIRS-1.
-This implementation also provides
-\fBgetattrs\fR
-for compatibility with older versions of curses.
-.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/contrib/ncurses/man/curs_beep.3x b/contrib/ncurses/man/curs_beep.3x
deleted file mode 100644
index 49e57619de3c..000000000000
--- a/contrib/ncurses/man/curs_beep.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2005/01/08 17:55:51 tom Exp $
-.TH curs_beep 3X ""
-.SH NAME
-\fBbeep\fR, \fBflash\fR - \fBcurses\fR bell and screen flash routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.PP
-\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 described 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/contrib/ncurses/man/curs_bkgd.3x b/contrib/ncurses/man/curs_bkgd.3x
deleted file mode 100644
index b2d768a441d9..000000000000
--- a/contrib/ncurses/man/curs_bkgd.3x
+++ /dev/null
@@ -1,98 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.19 2003/12/27 18:50:40 tom Exp $
-.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
-.PP
-\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.
-.PP
-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.
-.PP
-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:
-.PP
-.RS
-The rendition of every character on the screen is changed to
-the new background rendition.
-.PP
-Wherever the former background character
-appears, it is changed to the new background character.
-.RE
-.PP
-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/contrib/ncurses/man/curs_bkgrnd.3x b/contrib/ncurses/man/curs_bkgrnd.3x
deleted file mode 100644
index 8c6f6afff6f4..000000000000
--- a/contrib/ncurses/man/curs_bkgrnd.3x
+++ /dev/null
@@ -1,106 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.3 2006/02/25 21:49:19 tom Exp $
-.TH curs_bkgrnd 3X ""
-.SH NAME
-\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>
-.sp
-\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.
-.PP
-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.
-.PP
-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
-.PP
-The rendition of every character on the screen is changed to
-the new background rendition.
-.PP
-Wherever the former background character
-appears, it is changed to the new background character.
-.RE
-.PP
-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/contrib/ncurses/man/curs_border.3x b/contrib/ncurses/man/curs_border.3x
deleted file mode 100644
index 09f9a4c221f9..000000000000
--- a/contrib/ncurses/man/curs_border.3x
+++ /dev/null
@@ -1,155 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.19 2007/02/24 16:15:38 tom Exp $
-.TH curs_border 3X ""
-.na
-.hy 0
-.SH NAME
-\fBborder\fR,
-\fBwborder\fR,
-\fBbox\fR,
-\fBhline\fR,
-\fBwhline\fR,
-\fBvline\fR,
-\fBwvline\fR,
-\fBmvhline\fR,
-\fBmvwhline\fR,
-\fBmvvline\fR,
-\fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
-.ad
-.hy
-.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
-\fBint mvhline(int y, int x, chtype ch, int n);\fR
-.br
-\fBint mvwhline(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:
-.sp
-.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:
-.sp
-.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
-.PP
-\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.
-.PP
-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.
-.PP
-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.
-.PP
-X/Open does not define any error conditions.
-This implementation returns an error
-if the window pointer is null.
-.SH NOTES
-The borders generated by these functions are \fIinside\fR borders (this
-is also true of SVr4 curses, though the fact is not documented).
-.PP
-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/contrib/ncurses/man/curs_border_set.3x b/contrib/ncurses/man/curs_border_set.3x
deleted file mode 100644
index dbf865385b78..000000000000
--- a/contrib/ncurses/man/curs_border_set.3x
+++ /dev/null
@@ -1,207 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2005/05/15 16:17:37 tom Exp $
-.TH curs_border_set 3X ""
-.na
-.hy 0
-.SH NAME
-\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
-.ad
-.hy
-.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.
-.PP
-Functions using a window parameter return an error if it is null.
-.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/contrib/ncurses/man/curs_clear.3x b/contrib/ncurses/man/curs_clear.3x
deleted file mode 100644
index adbfd2cc001d..000000000000
--- a/contrib/ncurses/man/curs_clear.3x
+++ /dev/null
@@ -1,121 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.11 2007/12/29 15:58:38 tom Exp $
-.TH curs_clear 3X ""
-.na
-.hy 0
-.SH NAME
-\fBerase\fR,
-\fBwerase\fR,
-\fBclear\fR,
-\fBwclear\fR,
-\fBclrtobot\fR,
-\fBwclrtobot\fR,
-\fBclrtoeol\fR,
-\fBwclrtoeol\fR - clear all or part of a \fBcurses\fR window
-.ad
-.hy
-.SH SYNOPSIS
-\fB# include <curses.h>\fR
-.sp
-\fBint erase(void);\fR
-.br
-\fBint werase(WINDOW *win);\fR
-.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.
-.PP
-The \fBclear\fR and \fBwclear\fR routines are like \fBerase\fR and
-\fBwerase\fR, but they also call \fBclearok\fR, so that the screen is
-cleared completely on the next call to \fBwrefresh\fR for that window
-and repainted from scratch.
-.PP
-The \fBclrtobot\fR and \fBwclrtobot\fR routines erase from the cursor to the
-end of screen. That is, they erase all lines below the cursor in the window.
-Also, the current line to the right of the cursor, inclusive, is erased.
-.PP
-The \fBclrtoeol\fR and \fBwclrtoeol\fR routines erase the current line
-to the right of the cursor, inclusive, to the end of the current line.
-.PP
-Blanks created by erasure have the current background rendition (as set
-by \fBwbkgdset\fR) merged into them.
-.SH RETURN VALUE
-All routines return the integer \fBOK\fR on success and \fBERR\fP on failure.
-The SVr4.0 manual says "or a
-non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
-.PP
-X/Open defines no error conditions.
-In this implementation,
-functions using a window pointer parameter return an error if it is null.
-.SH NOTES
-Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
-\fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
-.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.
-.PP
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under
-ncurses.
-.PP
-This implementation, and others such as Solaris,
-sets the current position to 0,0 after erasing
-via \fBwerase()\fP and \fBwclear()\fP.
-That fact is not documented in other implementations,
-and may not be true of implementations
-which were not derived from SVr4 source.
-.PP
-Not obvious from the description,
-most implementations clear the screen after \fBwclear\fP
-even for a subwindow or derived window.
-If you do not want to clear the screen during the next \fBwrefresh\fP,
-use \fBwerase\fP instead.
-.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/contrib/ncurses/man/curs_color.3x b/contrib/ncurses/man/curs_color.3x
deleted file mode 100644
index 99e63eff136e..000000000000
--- a/contrib/ncurses/man/curs_color.3x
+++ /dev/null
@@ -1,248 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.28 2005/12/18 00:00:37 tom Exp $
-.TH curs_color 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.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.
-.PP
-If a terminal is capable of redefining colors, the programmer can use the
-routine \fBinit_color\fR to change the definition of a color. The routines
-\fBhas_colors\fR and \fBcan_change_color\fR return \fBTRUE\fR or \fBFALSE\fR,
-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.
-.PP
-The \fBinit_pair\fR routine changes the definition of a color-pair. It takes
-three arguments: the number of the color-pair to be changed, the foreground
-color number, and the background color number.
-For portable applications:
-.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.
-Color pair 0 is assumed to be white on black,
-but is actually whatever the terminal implements before color is initialized.
-It cannot be modified by the application.
-.PP
-If the color-pair was previously
-initialized, the screen is refreshed and all occurrences of that color-pair
-are changed to the new definition.
-.PP
-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.
-.PP
-The \fBinit_color\fR routine changes the definition of a color. It takes four
-arguments: the number of the color to be changed followed by three RGB values
-(for the amounts of red, green, and blue components). The value of the first
-argument must be between \fB0\fR and \fBCOLORS\fR. (See the section
-\fBColors\fR for the default color index.) Each of the last three arguments
-must be a value between 0 and 1000. When \fBinit_color\fR is used, all
-occurrences of that color on the screen immediately change to the new
-definition.
-.PP
-The \fBhas_colors\fR routine requires no arguments. It returns \fBTRUE\fR if
-the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR. This
-routine facilitates writing terminal-independent programs. For example, a
-programmer can use it to decide whether to use color or some other video
-attribute.
-.PP
-The \fBcan_change_color\fR routine requires no arguments. It returns
-\fBTRUE\fR if the terminal supports colors and can change their definitions;
-other, it returns \fBFALSE\fR. This routine facilitates writing
-terminal-independent programs.
-.PP
-The \fBcolor_content\fR routine gives programmers a way to find the intensity
-of the red, green, and blue (RGB) components in a color. It requires four
-arguments: the color number, and three addresses of \fBshort\fRs for storing
-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).
-.PP
-The \fBpair_content\fR routine allows programmers to find out what colors a
-given color-pair consists of. It requires three arguments: the color-pair
-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.
-.PP
-.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.
-.PP
-All other routines return the integer \fBERR\fR upon failure and an \fBOK\fR
-(SVr4 specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.PP
-X/Open defines no error conditions.
-This implementation will return \fBERR\fR on attempts to
-use color values outside the range 0 to COLORS-1
-(except for the default colors extension),
-or use color pairs outside the range 0 to COLOR_PAIR-1.
-Color values used in \fBinit_color\fP must be in the range 0 to 1000.
-An error is returned from all functions
-if the terminal has not been initialized.
-An error is returned from secondary functions such as \fBinit_pair\fP
-if \fBstart_color\fP was not called.
-.RS
-.TP 5
-\fBinit_color\fP
-returns an error if the terminal does not support
-this feature, e.g., if the \fIinitialize_color\fP capability is absent
-from the terminal description.
-.TP 5
-\fBstart_color\fP
-returns an error
-If the color table cannot be allocated.
-.RE
-.SH NOTES
-In the \fIncurses\fR implementation, there is a separate color activation flag,
-color palette, color pairs table, and associated COLORS and COLOR_PAIRS counts
-for each screen; the \fBstart_color\fR function only affects the current
-screen. The SVr4/XSI interface is not really designed with this in mind, and
-historical implementations may use a single shared color palette.
-.PP
-Note that setting an implicit background color via a color pair affects only
-character cells that a character write operation explicitly touches. To change
-the background color used when parts of a window are blanked by erasing or
-scrolling operations, see \fBcurs_bkgd\fR(3X).
-.PP
-Several caveats apply on 386 and 486 machines with VGA-compatible graphics:
-.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.
-.PP
-This implementation checks the pointers,
-e.g., for the values returned by
-\fBcolor_content\fP and \fBpair_content\fP,
-and will treat those as optional parameters when null.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\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/contrib/ncurses/man/curs_delch.3x b/contrib/ncurses/man/curs_delch.3x
deleted file mode 100644
index 70266678d7c6..000000000000
--- a/contrib/ncurses/man/curs_delch.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/02/25 21:42:57 tom Exp $
-.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
-.sp
-\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/contrib/ncurses/man/curs_deleteln.3x b/contrib/ncurses/man/curs_deleteln.3x
deleted file mode 100644
index fc7b16a96d07..000000000000
--- a/contrib/ncurses/man/curs_deleteln.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.11 2007/06/02 20:40:07 tom Exp $
-.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
-.sp
-\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.
-.PP
-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.
-.PP
-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.
-.PP
-X/Open defines no error conditions.
-In this implementation,
-if the window parameter is null, an error is returned.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
-.SH NOTES
-Note that all but \fBwinsdelln\fR may be macros.
-.PP
-These routines do not require a hardware line delete or insert feature in the
-terminal. In fact, they will not 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/contrib/ncurses/man/curs_extend.3x b/contrib/ncurses/man/curs_extend.3x
deleted file mode 100644
index 3092253fff0b..000000000000
--- a/contrib/ncurses/man/curs_extend.3x
+++ /dev/null
@@ -1,85 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1999-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey 1999-on
-.\"
-.\" $Id: curs_extend.3x,v 1.17 2006/12/24 18:01:48 tom Exp $
-.TH curs_extend 3X ""
-.SH NAME
-\fBcurses_version\fP,
-\fBuse_extended_names\fP \- miscellaneous curses extensions
-.
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\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 decision
-is made by using the \fB-x\fP option of \fB@TIC@\fP to compile
-extended terminal definitions.
-However you can disable this feature
-to ensure compatibility 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),
-\fBcurs_util\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/contrib/ncurses/man/curs_get_wch.3x b/contrib/ncurses/man/curs_get_wch.3x
deleted file mode 100644
index 6ecff799b5d6..000000000000
--- a/contrib/ncurses/man/curs_get_wch.3x
+++ /dev/null
@@ -1,161 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/02/25 21:47:06 tom Exp $
-.TH curs_get_wch 3X ""
-.SH NAME
-\fBget_wch\fR,
-\fBwget_wch\fR,
-\fBmvget_wch\fR,
-\fBmvwget_wch\fR,
-\fBunget_wch\fR \- get (or push back) a wide character from curses terminal keyboard
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint get_wch(wint_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint wget_wch(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
-.br
-\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_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, wint_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.
-.PP
-Unless \fBnoecho\fR has been set,
-these routines echo the character into the designated window.
-.PP
-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.
-.PP
-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/contrib/ncurses/man/curs_get_wstr.3x b/contrib/ncurses/man/curs_get_wstr.3x
deleted file mode 100644
index 4286c78b0d2a..000000000000
--- a/contrib/ncurses/man/curs_get_wstr.3x
+++ /dev/null
@@ -1,178 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/02/25 21:49:19 tom Exp $
-.TH curs_get_wstr 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-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.
-.PP
-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).
-.PP
-The effect of
-\fBwget_wstr\fR
-is as though a series of
-calls to
-\fBwget_wch\fR
-were made.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-All of these routines except \fBwgetn_wstr\fR may be macros.
-.SH RETURN VALUES
-All of these functions return \fBOK\fR upon successful completion.
-Otherwise, they return \fBERR\fR.
-.PP
-Functions using a window parameter return an error if it is null.
-.RS
-.TP 5
-\fBwgetn_wstr\fP
-returns an error if the associated call to \fBwget_wch\fP failed.
-.RE
-.SH PORTABILITY
-These functions are described in The Single Unix Specification, Version 2.
-No error conditions are defined.
-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.
-.PP
-X/Open curses documents these functions to pass an array of \fBwchar_t\fR,
-but all of the vendors implement this using \fBwint_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/contrib/ncurses/man/curs_getcchar.3x b/contrib/ncurses/man/curs_getcchar.3x
deleted file mode 100644
index b811a37db8f7..000000000000
--- a/contrib/ncurses/man/curs_getcchar.3x
+++ /dev/null
@@ -1,144 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2001-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/12/24 16:00:02 tom Exp $
-.TH curs_getcchar 3X ""
-.SH NAME
-\fBgetcchar\fP,
-\fBsetcchar\fP \- Get a wide character string and rendition from a \fBcchar_t\fP or set a \fBcchar_t\fP from a wide-character string
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint getcchar(\fP
-.br
-.B " const cchar_t *\fIwcval\fP,"
-.br
-.B " wchar_t *\fIwch\fP,"
-.br
-.B " attr_t *\fIattrs\fP,"
-.br
-.B " short *\fIcolor_pair\fP,"
-.br
-.B " void *\fIopts\fP );"
-.sp
-.B "int setcchar("
-.br
-.B " cchar_t *\fIwcval\fP,"
-.br
-.B " const wchar_t *\fIwch\fP,"
-.br
-.B " const attr_t \fIattrs\fP,"
-.br
-.B " short \fIcolor_pair\fP,"
-.br
-.B " void *\fIopts\fP );"
-.SH DESCRIPTION
-.PP
-The \fBgetcchar\fP function gets a wide-character string
-and rendition from a \fBcchar_t\fP argument.
-When \fIwch\fP is not a null pointer,
-the \fBgetcchar\fP function does the following:
-.TP 5
--
-Extracts information from a \fBcchar_t\fP value \fIwcval\fP
-.TP 5
--
-Stores the character attributes in the location pointed to by \fIattrs\fP
-.TP 5
--
-Stores the color-pair in the location pointed to by \fIcolor_pair\fP
-.TP 5
--
-Stores the wide-character string,
-characters referenced by \fIwcval\fP, into the array pointed to by \fIwch\fP.
-.PP
-When
-\fIwch\fP
-is a null pointer, the
-\fBgetcchar\fP
-function does the following:
-.TP 5
--
-Obtains the number of wide characters pointed to by \fIwcval\fP
-.TP 5
--
-Does not change the data referenced by
-\fIattrs\fP
-or
-\fIcolor_pair\fP
-.PP
-The \fBsetcchar\fP function initializes the location pointed to by \fIwcval\fP
-by using:
-.TP 5
--
-The character attributes in
-\fIattrs\fP
-.TP 5
--
-The color pair in
-\fIcolor_pair\fP
-.TP 5
--
-The wide-character string pointed to by \fIwch\fP.
-The string must be L'\\0' terminated,
-contain at most one character with strictly positive width,
-which must be the first,
-and contain no characters of negative width.
-.SH NOTES
-.PP
-The \fIopts\fP argument is reserved for future use.
-Currently, an application must provide a null pointer as \fIopts\fP.
-.PP
-The \fIwcval\fP argument may be a value generated by a call to
-\fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument.
-If \fIwcval\fP is constructed by any other means, the effect is unspecified.
-.SH RETURN VALUES
-.PP
-When \fIwch\fP is a null pointer,
-\fBgetcchar\fP returns the number of wide characters referenced by
-\fIwcval\fP.
-.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:
-\fBcurs_attr\fR(3X),
-\fBcurs_color\fR(3X),
-\fBcurses\fR(3X),
-\fBwcwidth\fR(3).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_getch.3x b/contrib/ncurses/man/curs_getch.3x
deleted file mode 100644
index 71fed5f7b60d..000000000000
--- a/contrib/ncurses/man/curs_getch.3x
+++ /dev/null
@@ -1,328 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.30 2006/12/02 17:02:53 tom Exp $
-.TH curs_getch 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.PP
-\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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-.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
-.PP
-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.
-Note that a few values do not correspond to a real key,
-e.g., \fBKEY_RESIZE\fP and \fBKEY_MOUSE\fP.
-See \fBresizeterm\fR(3X) for more details about \fBKEY_RESIZE\fP, and
-\fBcurs_mouse\fR(3X) for a discussion of \fBKEY_MOUSE\fP.
-.PP
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful
-completion.
-.RS
-.TP 5
-\fBungetch\fP
-returns an error
-if there is no more room in the FIFO.
-.TP 5
-\fBwgetch\fP
-returns an error
-if the window pointer is null, or
-if its timeout expires without having any data.
-.RE
-.SH NOTES
-Use of the escape key by a programmer for a single character function is
-discouraged, as it will cause a delay of up to one second while the
-keypad code looks for a following function-key sequence.
-.PP
-Note that some keys may be the same as commonly used control
-keys, e.g., \fBKEY_ENTER\fP versus control/M, \fBKEY_BACKSPACE\fP versus control/H.
-Some curses implementations may differ according to whether they
-treat these control keys specially (and ignore the terminfo), or
-use the terminfo definitions.
-\fBNcurses\fR uses the terminfo definition.
-If it says that \fBKEY_ENTER\fP is control/M,
-\fBgetch\fR will return \fBKEY_ENTER\fP
-when you press control/M.
-.PP
-When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
-\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.
-.PP
-Note that \fBgetch\fR, \fBmvgetch\fR, and \fBmvwgetch\fR may be macros.
-.PP
-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.
-.PP
-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.
-.PP
-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 has been set.
-.PP
-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.
-.PP
-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).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_get_wch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_getstr.3x b/contrib/ncurses/man/curs_getstr.3x
deleted file mode 100644
index f131765043a1..000000000000
--- a/contrib/ncurses/man/curs_getstr.3x
+++ /dev/null
@@ -1,122 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.15 2006/01/12 00:30:58 tom Exp $
-.TH curs_getstr 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-\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.
-.PP
-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.
-.PP
-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.
-.PP
-X/Open defines no error conditions.
-.PP
-In this implementation,
-these functions return an error
-if the window pointer is null, or
-if its timeout expires without having any data.
-.PP
-This implementation provides an extension as well.
-If a SIGWINCH interrupts the function, it will return \fBKEY_RESIZE\fP
-rather than \fBOK\fP or \fBERR\fP.
-.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.
-.PP
-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).
-.PP
-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/contrib/ncurses/man/curs_getyx.3x b/contrib/ncurses/man/curs_getyx.3x
deleted file mode 100644
index 2581253d7c78..000000000000
--- a/contrib/ncurses/man/curs_getyx.3x
+++ /dev/null
@@ -1,106 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.16 2007/05/12 16:34:49 tom Exp $
-.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
-.sp
-\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.
-.PP
-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.
-.PP
-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 (i.e.,
-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
-macros are described in the XSI Curses standard, Issue 4.
-.PP
-This implementation also provides functions
-\fBgetbegx\fR,
-\fBgetbegy\fR,
-\fBgetcurx\fR,
-\fBgetcury\fR,
-\fBgetmaxx\fR,
-\fBgetmaxy\fR,
-\fBgetparx\fR and
-\fBgetpary\fR
-for compatibility with older versions of curses.
-.PP
-Although X/Open Curses does not address this,
-many implementations provide members of the WINDOW structure
-containing values corresponding to these macros.
-For best portability, do not rely on using the data in WINDOW,
-since some implementations make WINDOW opaque (do not allow
-direct use of its members).
-.PP
-Besides the problem of opaque structures,
-the data stored in like-named members may not have like-values in
-different implementations.
-For example, the WINDOW._maxx and WINDOW._maxy values in ncurses
-have (at least since release 1.8.1) differed by one from some
-other implementations.
-The difference is hidden by means of the macro \fBgetmaxyx\fP.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_legacy\fR(3X),
-\fBcurs_opaque\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_in_wch.3x b/contrib/ncurses/man/curs_in_wch.3x
deleted file mode 100644
index 8709d130f180..000000000000
--- a/contrib/ncurses/man/curs_in_wch.3x
+++ /dev/null
@@ -1,68 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.2 2006/02/25 21:42:22 tom Exp $
-.TH curs_in_wch 3X ""
-.SH NAME
-\fBin_wch\fR,
-\fBmvin_wch\fR,
-\fBmvwin_wch\fR,
-\fBwin_wch\fR - extract a complex character and rendition from a window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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/contrib/ncurses/man/curs_in_wchstr.3x b/contrib/ncurses/man/curs_in_wchstr.3x
deleted file mode 100644
index b04a1f54cd76..000000000000
--- a/contrib/ncurses/man/curs_in_wchstr.3x
+++ /dev/null
@@ -1,122 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/12/02 17:03:07 tom Exp $
-.TH curs_in_wchstr 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-.sp
-\fBint in_wchstr(cchar_t *\fR\fIwchstr\fR\fB);\fR
-.br
-\fBint in_wchnstr(cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.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)
-\fBcurs_inchstr\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_inch.3x b/contrib/ncurses/man/curs_inch.3x
deleted file mode 100644
index 3091b9c0e6ae..000000000000
--- a/contrib/ncurses/man/curs_inch.3x
+++ /dev/null
@@ -1,77 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.13 2006/12/02 16:58:55 tom Exp $
-.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
-.sp
-\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).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_in_wch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_inchstr.3x b/contrib/ncurses/man/curs_inchstr.3x
deleted file mode 100644
index 18c21dc3190d..000000000000
--- a/contrib/ncurses/man/curs_inchstr.3x
+++ /dev/null
@@ -1,101 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.12 2006/12/02 17:00:58 tom Exp $
-.TH curs_inchstr 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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).
-.PP
-No error conditions are defined.
-If the \fIchstr\fP parameter is null,
-no data is returned,
-and the return value is zero.
-.SH NOTES
-Note that all routines except \fBwinchnstr\fR may be macros. SVr4 does not
-document whether the result string is 0-terminated; it does not document
-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).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_in_wchstr\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_initscr.3x b/contrib/ncurses/man/curs_initscr.3x
deleted file mode 100644
index 1a865f94ec08..000000000000
--- a/contrib/ncurses/man/curs_initscr.3x
+++ /dev/null
@@ -1,132 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2005/05/15 16:18:01 tom Exp $
-.TH curs_initscr 3X ""
-.na
-.hy 0
-.SH NAME
-\fBinitscr\fR,
-\fBnewterm\fR,
-\fBendwin\fR,
-\fBisendwin\fR,
-\fBset_term\fR,
-\fBdelscreen\fR - \fBcurses\fR screen initialization and manipulation routines
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBWINDOW *initscr(void);\fR
-.br
-\fBint endwin(void);\fR
-.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.
-.PP
-The initscr code determines the terminal type and initializes all \fBcurses\fR
-data structures. \fBinitscr\fR also causes the first call to \fBrefresh\fR to
-clear the screen. If errors occur, \fBinitscr\fR writes an appropriate error
-message to standard error and exits; otherwise, a pointer is returned to
-\fBstdscr\fR.
-.PP
-A program that outputs to more than one terminal should use the \fBnewterm\fR
-routine for each terminal instead of \fBinitscr\fR. A program that needs to
-inspect capabilities, so it can continue to run in a line-oriented mode if the
-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.
-.PP
-A program should always call \fBendwin\fR before exiting or escaping from
-\fBcurses\fR mode temporarily. This routine restores tty modes, moves the
-cursor to the lower left-hand corner of the screen and resets the terminal into
-the proper non-visual mode. Calling \fBrefresh\fR or \fBdoupdate\fR after a
-temporary escape causes the program to resume visual mode.
-.PP
-The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been
-called without any subsequent calls to \fBwrefresh\fR, and \fBFALSE\fR
-otherwise.
-.PP
-The \fBset_term\fR routine is used to switch between different
-terminals. The screen reference \fBnew\fR becomes the new current
-terminal. The previous terminal is returned by the routine. This is
-the only routine which manipulates \fBSCREEN\fR pointers; all other
-routines affect only the current terminal.
-.PP
-The \fBdelscreen\fR routine frees storage associated with the
-\fBSCREEN\fR data structure. The \fBendwin\fR routine does not do
-this, so \fBdelscreen\fR should be called after \fBendwin\fR if a
-particular \fBSCREEN\fR is no longer needed.
-.SH RETURN VALUE
-\fBendwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
-upon successful completion.
-.PP
-Routines that return pointers always return \fBNULL\fR on error.
-.PP
-X/Open defines no error conditions.
-In this implementation
-\fBendwin\fP returns an error if the terminal was not initialized.
-.SH NOTES
-Note that \fBinitscr\fR and \fBnewterm\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. It
-specifies that portable applications must not call \fBinitscr\fR more than
-once.
-.PP
-Old versions of curses, e.g., BSD 4.4, may have returned a null pointer
-from \fBinitscr\fR when an error is detected, rather than exiting.
-It is safe but redundant to check the return value of \fBinitscr\fR
-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/contrib/ncurses/man/curs_inopts.3x b/contrib/ncurses/man/curs_inopts.3x
deleted file mode 100644
index 7b5a17b8f125..000000000000
--- a/contrib/ncurses/man/curs_inopts.3x
+++ /dev/null
@@ -1,242 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.13 2005/05/15 16:18:07 tom Exp $
-.TH curs_inopts 3X ""
-.na
-.hy 0
-.SH NAME
-\fBcbreak\fR,
-\fBnocbreak\fR,
-\fBecho\fR,
-\fBnoecho\fR,
-\fBhalfdelay\fR,
-\fBintrflush\fR,
-\fBkeypad\fR,
-\fBmeta\fR,
-\fBnodelay\fR,
-\fBnotimeout\fR,
-\fBraw\fR,
-\fBnoraw\fR,
-\fBnoqiflush\fR,
-\fBqiflush\fR,
-\fBtimeout\fR,
-\fBwtimeout\fR,
-\fBtypeahead\fR - \fBcurses\fR input options
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.PP
-\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.
-.PP
-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.]
-.PP
-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.]
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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 (i.e., waits indefinitely for
-input). If \fIdelay\fR is zero, then non-blocking read is used
-(i.e., 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).
-.PP
-The \fBcurses\fR library does ``line-breakout optimization'' by looking for
-typeahead periodically while updating the screen. If input is found,
-and it is coming from a tty, the current update is postponed until
-\fBrefresh\fR or \fBdoupdate\fR is called again. This allows faster
-response to commands typed in advance. Normally, the input FILE
-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.
-.PP
-X/Open does not define any error conditions.
-In this implementation,
-functions with a window parameter will return an error if it is null.
-Any function will also return an error if the terminal was not initialized.
-Also,
-.RS
-.TP 5
-\fBhalfdelay\fP
-returns an error
-if its parameter is outside the range 1..255.
-.RE
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.PP
-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.
-.PP
-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/contrib/ncurses/man/curs_ins_wch.3x b/contrib/ncurses/man/curs_ins_wch.3x
deleted file mode 100644
index bb8a9a34afa9..000000000000
--- a/contrib/ncurses/man/curs_ins_wch.3x
+++ /dev/null
@@ -1,65 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.3 2006/02/25 21:42:22 tom Exp $
-.TH curs_ins_wch 3X ""
-.SH NAME
-\fBins_wch\fR,
-\fBmvins_wch\fR,
-\fBmvwins_wch\fR,
-\fBwins_wch\fR \- insert a complex character and rendition into a window
-.SH SYNOPSIS
-#include <curses.h>
-.sp
-\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/contrib/ncurses/man/curs_ins_wstr.3x b/contrib/ncurses/man/curs_ins_wstr.3x
deleted file mode 100644
index 0c153c4c67e4..000000000000
--- a/contrib/ncurses/man/curs_ins_wstr.3x
+++ /dev/null
@@ -1,108 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.4 2005/05/15 17:02:54 tom Exp $
-.TH curs_ins_wstr 3X ""
-.na
-.hy 0
-.SH NAME
-\fBins_wstr\fR,
-\fBins_nwstr\fR,
-\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
-.ad
-.hy
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-.sp
-\fBint ins_wstr(const wchar_t *\fR\fIwstr);\fR
-.br
-\fBint ins_nwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.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.
-.PP
-If a character in \fIwstr\fR is a tab, newline, carriage return or
-backspace, the cursor is moved appropriately within the window.
-A newline also does a \fBclrtoeol\fR before moving.
-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.
-.PP
-If the first character in the string is a nonspacing character, these
-functions will fail.
-XSI does not define what will happen if a nonspacing character follows
-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/contrib/ncurses/man/curs_insch.3x b/contrib/ncurses/man/curs_insch.3x
deleted file mode 100644
index 78ab5a59c89b..000000000000
--- a/contrib/ncurses/man/curs_insch.3x
+++ /dev/null
@@ -1,74 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/12/02 17:01:50 tom Exp $
-.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
-.sp
-\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.
-.PP
-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).
-.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fBcurs_ins_wch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_insstr.3x b/contrib/ncurses/man/curs_insstr.3x
deleted file mode 100644
index 1536ea293a5a..000000000000
--- a/contrib/ncurses/man/curs_insstr.3x
+++ /dev/null
@@ -1,101 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.18 2006/12/24 14:59:30 tom Exp $
-.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 functions with \fIn\fR as the last argument
-insert a leading substring of at most \fIn\fR characters.
-If \fIn\fR<=0, then the entire string is inserted.
-.PP
-Special characters are handled as in \fBaddch\fP.
-.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.PP
-X/Open defines no error conditions.
-In this implementation,
-if the window parameter is null or the str parameter is null,
-an error is returned.
-.SH NOTES
-Note that all but \fBwinsnstr\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4, which adds
-const qualifiers to the arguments.
-.LP
-The Single Unix Specification, Version 2 states that
-\fBinsnstr\fP and \fBwinsnstr\fP perform wrapping.
-This is probably an error, since it makes this group of functions inconsistent.
-Also, no implementation of curses documents this inconsistency.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_util\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/contrib/ncurses/man/curs_instr.3x b/contrib/ncurses/man/curs_instr.3x
deleted file mode 100644
index a93de2728322..000000000000
--- a/contrib/ncurses/man/curs_instr.3x
+++ /dev/null
@@ -1,89 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.13 2006/02/25 21:49:19 tom Exp $
-.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
-.sp
-\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.
-.PP
-X/Open defines no error conditions.
-In this implementation,
-if the window parameter is null or the str parameter is null,
-a zero is returned.
-.SH NOTES
-Note that all routines except \fBwinnstr\fR may be macros.
-.SH PORTABILITY
-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/contrib/ncurses/man/curs_inwstr.3x b/contrib/ncurses/man/curs_inwstr.3x
deleted file mode 100644
index 990789cb9b32..000000000000
--- a/contrib/ncurses/man/curs_inwstr.3x
+++ /dev/null
@@ -1,93 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2002-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.5 2006/02/25 21:20:20 tom Exp $
-.TH curs_inwstr 3X ""
-.SH NAME
-\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
-.sp
-\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
-\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/contrib/ncurses/man/curs_kernel.3x b/contrib/ncurses/man/curs_kernel.3x
deleted file mode 100644
index 9403973840e4..000000000000
--- a/contrib/ncurses/man/curs_kernel.3x
+++ /dev/null
@@ -1,186 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.15 2005/05/15 16:18:13 tom Exp $
-.TH curs_kernel 3X ""
-.na
-.hy 0
-.SH NAME
-\fBdef_prog_mode\fR,
-\fBdef_shell_mode\fR,
-\fBreset_prog_mode\fR,
-\fBreset_shell_mode\fR,
-\fBresetty\fR,
-\fBsavetty\fR,
-\fBgetsyx\fR,
-\fBsetsyx\fR,
-\fBripoffline\fR,
-\fBcurs_set\fR,
-\fBnapms\fR - low-level \fBcurses\fR routines
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-The \fBdef_prog_mode\fR and \fBdef_shell_mode\fR routines save the
-current terminal modes as the "program" (in \fBcurses\fR) or "shell"
-(not in \fBcurses\fR) state for use by the \fBreset_prog_mode\fR and
-\fBreset_shell_mode\fR routines. This is done automatically by
-\fBinitscr\fR. There is one such save area for each screen context
-allocated by \fBnewterm()\fR.
-.PP
-The \fBreset_prog_mode\fR and \fBreset_shell_mode\fR routines restore
-the terminal to "program" (in \fBcurses\fR) or "shell" (out of
-\fBcurses\fR) state. These are done automatically by \fBendwin\fR
-and, after an \fBendwin\fR, by \fBdoupdate\fR, so they normally are
-not called.
-.PP
-The \fBresetty\fR and \fBsavetty\fR routines save and restore the
-state of the terminal modes. \fBsavetty\fR saves the current state in
-a buffer and \fBresetty\fR restores the state to what it was at the
-last call to \fBsavetty\fR.
-.PP
-The \fBgetsyx\fR routine returns the current coordinates of the virtual screen
-cursor in \fIy\fR and \fIx\fR. If \fBleaveok\fR is currently \fBTRUE\fR, then
-\fB-1\fR,\fB-1\fR is returned. If lines have been removed from the top of the
-screen, using \fBripoffline\fR, \fIy\fR and \fIx\fR include these lines;
-therefore, \fIy\fR and \fIx\fR should be used only as arguments for
-\fBsetsyx\fR.
-.PP
-The \fBsetsyx\fR routine sets the virtual screen cursor to
-\fIy\fR, \fIx\fR. If \fIy\fR and \fIx\fR are both \fB-1\fR, then
-\fBleaveok\fR is set. The two routines \fBgetsyx\fR and \fBsetsyx\fR
-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.
-.PP
-The \fBripoffline\fR routine provides access to the same facility that
-\fBslk_init\fR [see \fBcurs_slk\fR(3X)] uses to reduce the size of the
-screen. \fBripoffline\fR must be called before \fBinitscr\fR or
-\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.
-.PP
-\fBripoffline\fR can be called up to five times before calling \fBinitscr\fR or
-\fBnewterm\fR.
-.PP
-The \fBcurs_set\fR routine sets the cursor state is set to invisible,
-normal, or very visible for \fBvisibility\fR equal to \fB0\fR,
-\fB1\fR, or \fB2\fR respectively. If the terminal supports the
-\fIvisibility\fR requested, the previous \fIcursor\fR state is
-returned; otherwise, \fBERR\fR is returned.
-.PP
-The \fBnapms\fR routine is used to sleep for \fIms\fR milliseconds.
-.SH RETURN VALUE
-Except for \fBcurs_set\fR, these routines always return \fBOK\fR.
-.PP
-\fBcurs_set\fR
-returns the previous cursor state, or \fBERR\fR if the
-requested \fIvisibility\fR is not supported.
-.PP
-X/Open defines no error conditions.
-In this implementation
-.RS
-.TP 5
-\fBdef_prog_mode\fR, \fBdef_shell_mode\fR, \fBreset_prog_mode\fR, \fBreset_shell_mode\fR
-return an error
-if the terminal was not initialized, or
-if the I/O call to obtain the terminal settings fails.
-.TP 5
-\fBripoffline\fP
-returns an error if the maximum number of ripped-off lines
-exceeds the maximum (NRIPS = 5).
-.RE
-.SH NOTES
-Note that \fBgetsyx\fR is a macro, so \fB&\fR is not necessary before
-the variables \fIy\fR and \fIx\fR.
-.PP
-Older SVr4 man pages warn that the return value of \fBcurs_set\fR "is currently
-incorrect". This implementation gets it right, but it may be unwise to count
-on the correctness of the return value anywhere else.
-.PP
-Both ncurses and SVr4 will call \fBcurs_set\fR in \fBendwin\fR
-if \fBcurs_set\fR
-has been called to make the cursor other than normal, i.e., either
-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.
-.PP
-The SVr4 documentation describes \fBsetsyx\fR and \fBgetsyx\fR as having return
-type int. This is misleading, as they are macros with no documented semantics
-for the return value.
-.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/contrib/ncurses/man/curs_legacy.3x b/contrib/ncurses/man/curs_legacy.3x
deleted file mode 100644
index 251ae496b851..000000000000
--- a/contrib/ncurses/man/curs_legacy.3x
+++ /dev/null
@@ -1,93 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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_legacy.3x,v 1.1 2007/04/07 23:54:29 tom Exp $
-.TH curs_legacy 3X ""
-.SH NAME
-\fBgetbegx\fR,
-\fBgetbegy\fR,
-\fBgetcurx\fR,
-\fBgetcury\fR,
-\fBgetmaxx\fR,
-\fBgetmaxy\fR,
-\fBgetparx\fR,
-\fBgetpary\fR - get \fBcurses\fR cursor and window coordinates
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint getbegx(WINDOW *win);\fR
-.br
-\fBint getbegy(WINDOW *win);\fR
-.br
-\fBint getcurx(WINDOW *win);\fR
-.br
-\fBint getcury(WINDOW *win);\fR
-.br
-\fBint getmaxx(WINDOW *win);\fR
-.br
-\fBint getmaxy(WINDOW *win);\fR
-.br
-\fBint getparx(WINDOW *win);\fR
-.br
-\fBint getpary(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBgetbegy\fR and \fBgetbegx\fR functions return the same
-data as \fBgetbegyx\fR.
-.PP
-The \fBgetcury\fR and \fBgetcurx\fR functions return the same
-data as \fBgetyx\fR.
-.PP
-The \fBgetmaxy\fR and \fBgetmaxx\fR functions return the same
-data as \fBgetmaxyx\fR.
-.PP
-The \fBgetpary\fR and \fBgetparx\fR functions return the same
-data as \fBgetparyx\fR.
-.SH RETURN VALUE
-These functions return an integer,
-or ERR if the window parameter is null.
-.SH NOTES
-All of these interfaces are provided as macros and functions.
-The macros are suppressed (and only the functions provided)
-when \fBNCURSES_OPAQUE\fR is defined.
-The standard forms such as \fBgetyx\fP must be implemented as macros,
-and (in this implementation) are defined in terms of the functions
-described here,
-to avoid reliance on internal details of the WINDOW structure.
-.SH PORTABILITY
-These functions were supported on Version 7, BSD or System V implementations.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_getyx\fR(3X),
-\fBcurs_opaque\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_mouse.3x b/contrib/ncurses/man/curs_mouse.3x
deleted file mode 100644
index 23f9f9c6d7d0..000000000000
--- a/contrib/ncurses/man/curs_mouse.3x
+++ /dev/null
@@ -1,310 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.30 2006/12/30 23:43:34 tom Exp $
-.TH curs_mouse 3X ""
-.na
-.hy 0
-.SH NAME
-\fBgetmouse\fR, \fBungetmouse\fR,
-\fBmousemask\fR, \fBwenclose\fR,
-\fBmouse_trafo\fR, \fBwmouse_trafo\fR,
-\fBmouseinterval\fR - mouse interface through curses
-.ad
-.hy
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>
-.PP
-\fBtypedef unsigned long mmask_t;
-.PP
-typedef struct
-{
- short id; \fI/* ID to distinguish multiple devices */\fB
- int x, y, z; \fI/* event coordinates */\fB
- mmask_t bstate; \fI/* button state bits */\fB
-}
-MEVENT;\fR
-.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.
-.PP
-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.
-.PP
-As a side effect, setting a zero mousemask may turn off the mouse pointer;
-setting a nonzero mask may turn it on.
-Whether this happens is device-dependent.
-.PP
-Here are the mouse event type masks which may be defined:
-.PP
-.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
-_
-BUTTON5_PRESSED mouse button 5 down
-BUTTON5_RELEASED mouse button 5 up
-BUTTON5_CLICKED mouse button 5 clicked
-BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked
-BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked
-_
-BUTTON_SHIFT shift was down during button state change
-BUTTON_CTRL control was down during button state change
-BUTTON_ALT alt was down during button state change
-ALL_MOUSE_EVENTS report all button state changes
-REPORT_MOUSE_POSITION report mouse movement
-_
-.TE
-.PP
-Once a class of mouse events have been made visible in a window,
-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.
-.PP
-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.
-.PP
-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.
-.PP
-The \fBwmouse_trafo\fR function transforms a given pair of coordinates
-from stdscr-relative coordinates
-to coordinates relative to the given window or vice versa.
-Please remember, that stdscr-relative coordinates are not always identical
-to window-relative coordinates due to the mechanism to reserve lines on top
-or bottom of the screen for other purposes
-(see the \fBripoffline()\fP and \fBslk_init\fR calls, for example).
-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 window-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 window-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.
-.PP
-The \fBmouse_trafo\fR function performs the same translation
-as \fBwmouse_trafo\fR,
-using stdscr for \fBwin\fR.
-.PP
-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(0)\fR to disable click resolution.
-This function returns the previous interval value.
-Use \fBmouseinterval(-1)\fR to obtain the interval without altering it.
-The default is one sixth of a second.
-.PP
-Note that mouse events will be ignored when input is in cooked mode, and will
-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 and \fBungetmouse\fR
-return the integer \fBERR\fR upon failure or \fBOK\fR
-upon successful completion.
-.RS
-.TP 5
-\fBgetmouse\fP
-returns an error.
-If no mouse driver was initialized, or
-if the mask parameter is zero,
-.TP 5
-\fBungetmouse\fP
-returns an error if the FIFO is full.
-.RE
-.PP
-\fBmousemask\fR
-returns the mask of reportable events.
-.PP
-\fBmouseinterval\fR
-returns the previous interval value, unless
-the terminal was not initialized.
-In that case, it returns the maximum interval value (166).
-.PP
-\fBwenclose\fR and \fBwmouse_trafo\fR
-are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
-on their test result.
-.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.
-.PP
-The feature macro \fBNCURSES_MOUSE_VERSION\fR is provided so the preprocessor
-can be used to test whether these features are present.
-If the interface is changed, the value of \fBNCURSES_MOUSE_VERSION\fR will be
-incremented.
-These values for \fBNCURSES_MOUSE_VERSION\fR may be
-specified when configuring ncurses:
-.RS
-.TP 3
-1
-has definitions for reserved events.
-The mask uses 28 bits.
-.TP 3
-2
-adds definitions for button 5,
-removes the definitions for reserved events.
-The mask uses 29 bits.
-.RE
-.PP
-The order of the \fBMEVENT\fR structure members is not guaranteed.
-Additional fields may be added to the structure in the future.
-.PP
-Under \fBncurses\fR(3X), these calls are implemented using either
-xterm's built-in mouse-tracking API or
-platform-specific drivers including
-.RS
-Alessandro Rubini's gpm server.
-.br
-FreeBSD sysmouse
-.br
-OS/2 EMX
-.RE
-If you are using an unsupported configuration,
-mouse events will not be visible to
-\fBncurses\fR(3X) (and the \fBmousemask\fR function will always
-return \fB0\fR).
-.PP
-If the terminfo entry contains a \fBXM\fR string,
-this is used in the xterm mouse driver to control the
-way the terminal is initialized for mouse operation.
-The default, if \fBXM\fR is not found,
-corresponds to private mode 1000 of xterm:
-.RS
-\\E[?1000%?%p1%{1}%=%th%el%;
-.RE
-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 \fBmousemask\fR.
-Instead, the xterm mouse
-report sequence will appear in the string read.
-.PP
-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 should have \fBkmous\fR set to "\\E[M"
-(the beginning of the response from xterm for mouse clicks).
-Other values for \fBkmous\fR are permitted,
-but under the same assumption,
-i.e., it is the beginning of the response.
-.PP
-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),
-\fBcurs_kernel\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/contrib/ncurses/man/curs_move.3x b/contrib/ncurses/man/curs_move.3x
deleted file mode 100644
index 804637792be5..000000000000
--- a/contrib/ncurses/man/curs_move.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.12 2006/02/25 21:49:19 tom Exp $
-.TH curs_move 3X ""
-.na
-.hy 0
-.SH NAME
-\fBmove\fR,
-\fBwmove\fR - move \fBcurses\fR window cursor
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-Specifically, they return an error
-if the window pointer is null, or
-if the position is outside the window.
-.SH NOTES
-Note that \fBmove\fR may be a macro.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.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/contrib/ncurses/man/curs_opaque.3x b/contrib/ncurses/man/curs_opaque.3x
deleted file mode 100644
index 6c9cfaa18a35..000000000000
--- a/contrib/ncurses/man/curs_opaque.3x
+++ /dev/null
@@ -1,133 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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_opaque.3x,v 1.6 2007/09/08 18:49:13 tom Exp $
-.TH curs_opaque 3X ""
-.na
-.hy 0
-.SH NAME
-\fBis_cleared\fR,
-\fBis_idlok\fR,
-\fBis_idcok\fR,
-\fBis_immedok\fR,
-\fBis_keypad\fR,
-\fBis_leaveok\fR,
-\fBis_nodelay\fR,
-\fBis_timeout\fR,
-\fBis_scrollok\fR,
-\fBis_syncok\fR - \fBcurses\fR window properties
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBbool is_cleared(const WINDOW *win);\fR
-.br
-\fBbool is_idcok(const WINDOW *win);\fR
-.br
-\fBbool is_idlok(const WINDOW *win);\fR
-.br
-\fBbool is_immedok(const WINDOW *win);\fR
-.br
-\fBbool is_keypad(const WINDOW *win);\fR
-.br
-\fBbool is_leaveok(const WINDOW *win);\fR
-.br
-\fBbool is_nodelay(const WINDOW *win);\fR
-.br
-\fBbool is_notimeout(const WINDOW *win);\fR
-.br
-\fBbool is_scrollok(const WINDOW *win);\fR
-.br
-\fBbool is_syncok(const WINDOW *win);\fR
-.br
-\fBWINDOW * wgetparent(const WINDOW *win);\fR
-.br
-\fBint wgetscrreg(const WINDOW *win, int *top, int *bottom);\fR
-.br
-.SH DESCRIPTION
-This implementation provides functions which return properties
-set in the WINDOW structure, allowing it to be ``opaque'' if
-the symbol \fBNCURSES_OPAQUE\fR is defined:
-.TP 5
-\fBis_cleared\fR
-returns the value set in \fBclearok\fR
-.TP 5
-\fBis_idcok\fR
-returns the value set in \fBidcok\fR
-.TP 5
-\fBis_idlok\fR
-returns the value set in \fBidlok\fR
-.TP 5
-\fBis_immedok\fR
-returns the value set in \fBimmedok\fR
-.TP 5
-\fBis_keypad\fR
-returns the value set in \fBkeypad\fR
-.TP 5
-\fBis_leaveok\fR
-returns the value set in \fBleaveok\fR
-.TP 5
-\fBis_nodelay\fR
-returns the value set in \fBnodelay\fR
-.TP 5
-\fBis_notimeout\fR
-returns the value set in \fBnotimeout\fR
-.TP 5
-\fBis_scrollok\fR
-returns the value set in \fBscrollok\fR
-.TP 5
-\fBis_syncok\fR
-returns the value set in \fBsyncok\fR
-.TP 5
-\fBwgetparent\fR
-returns the parent WINDOW pointer for subwindows,
-or NULL for windows having no parent.
-.TP 5
-\fBwgetscrreg\fR
-returns the top and bottom rows for the scrolling margin as set in \fBwsetscrreg\fP.
-.SH RETURN VALUE
-These functions all return TRUE or FALSE, except as noted.
-.SH NOTES
-Both a macro and a function are provided for each name.
-.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 ncurses extensions
-be conditioned using NCURSES_VERSION.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_inopts\fR(3X),
-\fBcurs_outopts\fR(3X),
-\fBcurs_window\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_outopts.3x b/contrib/ncurses/man/curs_outopts.3x
deleted file mode 100644
index 3fd437a312bb..000000000000
--- a/contrib/ncurses/man/curs_outopts.3x
+++ /dev/null
@@ -1,222 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.21 2007/06/02 20:40:07 tom Exp $
-.TH curs_outopts 3X ""
-.na
-.hy 0
-.SH NAME
-\fBclearok\fR,
-\fBidlok\fR,
-\fBidcok\fR,
-\fBimmedok\fR,
-\fBleaveok\fR,
-\fBsetscrreg\fR,
-\fBwsetscrreg\fR,
-\fBscrollok\fR,
-\fBnl\fR,
-\fBnonl\fR - \fBcurses\fR output options
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint clearok(WINDOW *win, bool bf);\fR
-.br
-\fBint idlok(WINDOW *win, bool bf);\fR
-.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.
-.PP
-If \fBclearok\fR is called with \fBTRUE\fR as argument, the next
-call to \fBwrefresh\fR with this window will clear the screen completely and
-redraw the entire screen from scratch.
-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.
-.PP
-If \fBidlok\fR is called with \fBTRUE\fR as second argument, \fBcurses\fR
-considers using the hardware insert/delete line feature of terminals so
-equipped.
-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 is not really needed.
-If insert/delete line
-cannot be used, \fBcurses\fR redraws the changed portions of all lines.
-.PP
-If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR
-no longer considers using the hardware insert/delete character feature of
-terminals so equipped.
-Use of character insert/delete is enabled by default.
-Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use
-of character insertion and deletion.
-.PP
-If \fBimmedok\fR is called with \fBTRUE as argument\fR, any change
-in the window image, such as the ones caused by \fBwaddch, wclrtobot, wscrl\fR,
-etc., automatically cause a call to \fBwrefresh\fR.
-However, it may
-degrade performance considerably, due to repeated calls to \fBwrefresh\fR.
-It is disabled by default.
-.PP
-Normally, the hardware cursor is left at the location of the window cursor
-being refreshed.
-The \fBleaveok\fR option allows the cursor to be left
-wherever the update happens to leave it.
-It is useful for applications where
-the cursor is not used, since it reduces the need for cursor motions.
-.PP
-The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
-programmer to set a software scrolling region in a window.
-\fItop\fR and
-\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.)
-.PP
-The \fBscrollok\fR option controls what happens when the cursor of a window is
-moved off the edge of the window or scrolling region, either as a result of a
-newline action on the bottom line, or typing the last character of the last
-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).
-.PP
-The \fBnl\fR and \fBnonl\fR routines control whether the underlying display
-device translates the return key into newline on input, and whether it
-translates newline into return and line-feed on output (in either case, the
-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.
-.PP
-X/Open does not define any error conditions.
-.PP
-In this implementation, those functions that have a window pointer
-will return an error if the window pointer is null.
-.RS
-.TP 5
-.B wclrtoeol
-returns an error
-if the cursor position is about to wrap.
-.TP 5
-.B wsetscrreg
-returns an error if the scrolling region limits extend outside the window.
-.RE
-.PP
-X/Open does not define any error conditions.
-This implementation returns an error
-if the window pointer is null.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.PP
-The XSI Curses standard is ambiguous on the question of whether \fBraw\fR()
-should disable the CRLF translations controlled by \fBnl\fR() and \fBnonl\fR().
-BSD curses did turn off these translations; AT&T curses (at least as late as
-SVr1) did not.
-We choose to do so, on the theory that a programmer requesting
-raw input wants a clean (ideally 8-bit clean) connection that the operating
-system will not alter.
-.PP
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
-This will not work under
-ncurses.
-.PP
-Earlier System V curses implementations specified that with \fBscrollok\fR
-enabled, any window modification triggering a scroll also forced a physical
-refresh.
-XSI Curses does not require this, and \fBncurses\fR avoids doing
-it to perform better vertical-motion optimization at \fBwrefresh\fR
-time.
-.PP
-The XSI Curses standard does not mention that the cursor should be
-made invisible as a side-effect of \fBleaveok\fR.
-SVr4 curses documentation does this, but the code does not.
-Use \fBcurs_set\fR to make the cursor invisible.
-.SH NOTES
-Note that \fBclearok\fR, \fBleaveok\fR, \fBscrollok\fR, \fBidcok\fR, \fBnl\fR,
-\fBnonl\fR and \fBsetscrreg\fR may be macros.
-.PP
-The \fBimmedok\fR routine is useful for windows that are used as terminal
-emulators.
-.SH SEE ALSO
-\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/contrib/ncurses/man/curs_overlay.3x b/contrib/ncurses/man/curs_overlay.3x
deleted file mode 100644
index 066c3a4a50f6..000000000000
--- a/contrib/ncurses/man/curs_overlay.3x
+++ /dev/null
@@ -1,87 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2006/02/25 21:49:19 tom Exp $
-.TH curs_overlay 3X ""
-.na
-.hy 0
-.SH NAME
-\fBoverlay\fR,
-\fBoverwrite\fR,
-\fBcopywin\fR - overlay and manipulate overlapped \fBcurses\fR windows
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-The \fBcopywin\fR routine provides a finer granularity of control over the
-\fBoverlay\fR and \fBoverwrite\fR routines. Like in the \fBprefresh\fR
-routine, a rectangle is specified in the destination window, (\fIdminrow\fR,
-\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.
-.PP
-X/Open defines no error conditions.
-In this implementation,
-\fBcopywin\fP,
-\fBoverlay\fP and \fBoverwrite\fP return an error
-if either of the window pointers are null, or
-if some part of the window would be placed off-screen.
-.SH NOTES
-Note that \fBoverlay\fR and \fBoverwrite\fR may be macros.
-.SH PORTABILITY
-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/contrib/ncurses/man/curs_pad.3x b/contrib/ncurses/man/curs_pad.3x
deleted file mode 100644
index c7222074ebeb..000000000000
--- a/contrib/ncurses/man/curs_pad.3x
+++ /dev/null
@@ -1,162 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2005/05/15 16:18:43 tom Exp $
-.TH curs_pad 3X ""
-.na
-.hy 0
-.SH NAME
-\fBnewpad\fR,
-\fBsubpad\fR,
-\fBprefresh\fR,
-\fBpnoutrefresh\fR,
-\fBpechochar\fR,
-\fBpecho_wchar\fR - create and display \fBcurses\fR pads
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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
-.br
-\fBint pecho_wchar(WINDOW *pad, const cchar_t *wch);\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
-(e.g., 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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-The \fBpecho_wchar\fR function is the analogous wide-character
-form of \fBpechochar\fR.
-It outputs one character to a pad and immediately refreshes the pad.
-It does this by a call to \fBwadd_wch\fR followed by a call 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.
-.PP
-Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR
-to \fBENOMEM\fR.
-.PP
-X/Open does not define any error conditions.
-In this implementation
-.RS
-.TP 5
-\fBprefresh\fP and \fBpnoutrefresh\fP
-return an error
-if the window pointer is null, or
-if the window is not really a pad or
-if the area to refresh extends off-screen or
-if the minimum coordinates are greater than the maximum.
-.TP 5
-\fBpechochar\fP
-returns an error
-if the window is not really a pad, and the associated call
-to \fBwechochar\fP returns an error.
-.TP 5
-\fBpecho_wchar\fP
-returns an error
-if the window is not really a pad, and the associated call
-to \fBwecho_wchar\fP returns an error.
-.RE
-.SH NOTES
-Note that \fBpechochar\fR may be a macro.
-.SH PORTABILITY
-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/contrib/ncurses/man/curs_print.3x b/contrib/ncurses/man/curs_print.3x
deleted file mode 100644
index 92b9ca2dafcc..000000000000
--- a/contrib/ncurses/man/curs_print.3x
+++ /dev/null
@@ -1,74 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/02/25 21:49:19 tom Exp $
-.TH curs_print 3X ""
-.SH NAME
-\fBmcprint\fR - ship binary data to printer
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-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 do not exist.
-.TP 5
-ENOMEM
-Couldn't allocate sufficient memory to buffer the printer write.
-.PP
-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/contrib/ncurses/man/curs_printw.3x b/contrib/ncurses/man/curs_printw.3x
deleted file mode 100644
index ead0f183dc09..000000000000
--- a/contrib/ncurses/man/curs_printw.3x
+++ /dev/null
@@ -1,94 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.17 2006/12/24 16:05:17 tom Exp $
-.TH curs_printw 3X ""
-.na
-.hy 0
-.SH NAME
-\fBprintw\fR,
-\fBwprintw\fR,
-\fBmvprintw\fR,
-\fBmvwprintw\fR,
-\fBvwprintw\fR, \fBvw_printw\fR - print formatted output in \fBcurses\fR windows
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint printw(const char *fmt, ...);\fR
-.br
-\fBint wprintw(WINDOW *win, const char *fmt, ...);\fR
-.br
-\fBint mvprintw(int y, int x, const char *fmt, ...);\fR
-.br
-\fBint mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...);\fR
-.br
-\fBint vwprintw(WINDOW *win, const char *fmt, va_list varglist);\fR
-.br
-\fBint vw_printw(WINDOW *win, const 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(3)]. In
-effect, the string that would be output by \fBprintf\fR is output
-instead as though \fBwaddstr\fR were used on the given window.
-.PP
-The \fBvwprintw\fR and \fBwv_printw\fR routines are analogous
-to \fBvprintf\fR [see \fBprintf\fR(3)]
-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.
-.PP
-X/Open defines no error conditions.
-In this implementation,
-an error may be returned if it cannot allocate enough memory for the
-buffer used to format the results.
-It will return an error if the window pointer is null.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions. The function
-\fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
-\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(3), \fBvprintf(3)\fR
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_refresh.3x b/contrib/ncurses/man/curs_refresh.3x
deleted file mode 100644
index 5ce06903d83d..000000000000
--- a/contrib/ncurses/man/curs_refresh.3x
+++ /dev/null
@@ -1,144 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.12 2005/05/15 16:18:49 tom Exp $
-.TH curs_refresh 3X ""
-.na
-.hy 0
-.SH NAME
-\fBdoupdate\fR,
-\fBredrawwin\fR,
-\fBrefresh\fR,
-\fBwnoutrefresh\fR,
-\fBwredrawln\fR,
-\fBwrefresh\fR - refresh \fBcurses\fR windows and lines
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBint refresh(void);\fR
-.br
-\fBint wrefresh(WINDOW *win);\fR
-.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.
-.PP
-The \fBwnoutrefresh\fR and \fBdoupdate\fR routines allow multiple updates with
-more efficiency than \fBwrefresh\fR alone.
-In addition to all the window
-structures, \fBcurses\fR keeps two data structures representing the terminal
-screen: a physical screen, describing what is actually on the screen, and a
-virtual screen, describing what the programmer wants to have on the screen.
-.PP
-The routine \fBwrefresh\fR works by first calling \fBwnoutrefresh\fR, which
-copies the named window to the virtual screen, and then calling \fBdoupdate\fR,
-which compares the virtual screen to the physical screen and does the actual
-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.
-.PP
-The phrase "copies the named window to the virtual screen" above is ambiguous.
-What actually happens is that all \fItouched\fR (changed) lines in the window
-are copied to the virtual screen.
-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.)
-.PP
-The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
-are corrupted and should be thrown away before anything is written over them.
-It touches the indicated lines (marking them changed).
-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.
-.PP
-X/Open does not define any error conditions.
-In this implementation
-.RS
-.TP 5
-\fBwnoutrefresh\fP
-returns an error
-if the window pointer is null, or
-if the window is really a pad.
-.TP 5
-\fBwredrawln\fP
-returns an error
-if the associated call to \fBtouchln\fP returns an error.
-.RE
-.SH NOTES
-Note that \fBrefresh\fR and \fBredrawwin\fR may be macros.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.PP
-Whether \fBwnoutrefresh()\fR copies to the virtual screen the entire contents
-of a window or just its changed portions has never been well-documented in
-historic curses versions (including SVr4).
-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/contrib/ncurses/man/curs_scanw.3x b/contrib/ncurses/man/curs_scanw.3x
deleted file mode 100644
index 71ba9eeb4ddf..000000000000
--- a/contrib/ncurses/man/curs_scanw.3x
+++ /dev/null
@@ -1,97 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2006/12/24 16:05:49 tom Exp $
-.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
-.sp
-\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(3)]. 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.
-.PP
-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.
-.PP
-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(3)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_scr_dump.3x b/contrib/ncurses/man/curs_scr_dump.3x
deleted file mode 100644
index 7884f6aa0648..000000000000
--- a/contrib/ncurses/man/curs_scr_dump.3x
+++ /dev/null
@@ -1,102 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.7 2006/12/24 16:05:49 tom Exp $
-.TH curs_scr_dump 3X ""
-.na
-.hy 0
-.SH NAME
-\fBscr_dump\fR,
-\fBscr_restore\fR,
-\fBscr_init\fR,
-\fBscr_set\fR - read (write) a \fBcurses\fR screen from (to) a file
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-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.
-.PP
-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 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.
-.PP
-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.
-.PP
-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.
-.PP
-X/Open defines no error conditions.
-In this implementation,
-each will return an error if the file cannot be opened.
-.SH NOTES
-Note that \fBscr_init\fR, \fBscr_set\fR, and \fBscr_restore\fR may be macros.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4, describes these functions (adding the const
-qualifiers).
-.PP
-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 do not define
-"old".
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_util\fR(3X), \fBsystem\fR(3)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_scroll.3x b/contrib/ncurses/man/curs_scroll.3x
deleted file mode 100644
index 754b71499841..000000000000
--- a/contrib/ncurses/man/curs_scroll.3x
+++ /dev/null
@@ -1,96 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.13 2006/02/25 21:49:19 tom Exp $
-.TH curs_scroll 3X ""
-.na
-.hy 0
-.SH NAME
-\fBscroll\fR,
-\fBscrl\fR,
-\fBwscrl\fR - scroll a \fBcurses\fR window
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-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.
-.PP
-For these functions to work, scrolling must be enabled via \fBscrollok\fR.
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure, and \fBOK\fR (SVr4 only specifies
-"an integer value other than \fBERR\fR") upon successful completion.
-.PP
-X/Open defines no error conditions.
-.PP
-This implementation returns an error
-if the window pointer is null, or
-if scrolling is not enabled in the window, e.g., with \fBscrollok\fP.
-.SH NOTES
-Note that \fBscrl\fR and \fBscroll\fR may be macros.
-.PP
-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.
-.PP
-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/contrib/ncurses/man/curs_slk.3x b/contrib/ncurses/man/curs_slk.3x
deleted file mode 100644
index 6361268b19d9..000000000000
--- a/contrib/ncurses/man/curs_slk.3x
+++ /dev/null
@@ -1,205 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.16 2007/06/02 20:40:07 tom Exp $
-.TH curs_slk 3X ""
-.na
-.hy 0
-.SH NAME
-\fBslk_init\fR,
-\fBslk_set\fR,
-\fBslk_refresh\fR,
-\fBslk_noutrefresh\fR,
-\fBslk_label\fR,
-\fBslk_clear\fR,
-\fBslk_restore\fR,
-\fBslk_touch\fR,
-\fBslk_attron\fR,
-\fBslk_attrset\fR,
-\fBslk_attroff\fR,
-\fBslk_attr_on\fR,
-\fBslk_attr_set\fR,
-\fBslk_attr_off\fR,
-\fBslk_attr\fR,
-\fBslk_color\fR - \fBcurses\fR soft label routines
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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 does not try to use any hardware support for this
-mode.
-.PP
-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.
-.PP
-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.
-.PP
-The \fBslk_refresh\fR and \fBslk_noutrefresh\fR routines correspond to
-the \fBwrefresh\fR and \fBwnoutrefresh\fR routines.
-.PP
-The \fBslk_label\fR routine returns the current label for label number
-\fIlabnum\fR, with leading and trailing blanks stripped.
-.PP
-The \fBslk_clear\fR routine clears the soft labels from the screen.
-.PP
-The \fBslk_restore\fR routine restores the soft labels to the screen
-after a \fBslk_clear\fR has been performed.
-.PP
-The \fBslk_touch\fR routine forces all the soft labels to be output
-the next time a \fBslk_noutrefresh\fR is performed.
-.PP
-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).
-.PP
-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.
-.PP
-X/Open defines no error conditions.
-In this implementation
-.RS
-.TP 5
-\fBslk_attr\fR
-returns the attribute used for the soft keys.
-.TP 5
-.na
-.hy 0
-\fBslk_attroff\fP, \fBslk_attron\fP, \fBslk_clear\fP, \fBslk_noutrefresh\fP, \fBslk_refresh\fP, \fBslk_touch\fP
-.ad
-.hy
-return an error
-if the terminal or the softkeys were not initialized.
-.TP 5
-\fBslk_attrset\fP
-returns an error
-if the terminal or the softkeys were not initialized.
-.TP 5
-\fBslk_attr_set\fP
-returns an error
-if the terminal or the softkeys were not initialized, or
-the color pair is outside the range 0..COLOR_PAIRS-1,
-or opts is not null.
-.TP 5
-\fBslk_color\fP
-returns an error
-if the terminal or the softkeys were not initialized, or
-the color pair is outside the range 0..COLOR_PAIRS-1.
-.TP 5
-\fBslk_init\fR
-returns an error
-if the format parameter is outside the range 0..3.
-.TP 5
-\fBslk_label\fR
-returns \fBNULL\fR on error.
-.TP 5
-\fBslk_set\fP
-returns an error
-if the terminal or the softkeys were not initialized, or
-the \fIlabnum\fP parameter is outside the range of label counts, or
-if the format parameter is outside the range 0..2, or if
-memory for the labels cannot be allocated.
-.RE
-.SH NOTES
-Most applications would use \fBslk_noutrefresh\fR because a
-\fBwrefresh\fR is likely to follow soon.
-.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/contrib/ncurses/man/curs_termattrs.3x b/contrib/ncurses/man/curs_termattrs.3x
deleted file mode 100644
index 1e07307d19c0..000000000000
--- a/contrib/ncurses/man/curs_termattrs.3x
+++ /dev/null
@@ -1,134 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2007/06/02 20:40:07 tom Exp $
-.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
-.PP
-\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.
-.PP
-The \fBerasechar\fR routine returns the user's current erase character.
-.PP
-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.
-.PP
-The \fBhas_ic\fR routine is true if the terminal has insert- and delete-
-character capabilities.
-.PP
-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.
-.PP
-The \fBkillchar\fR routine returns the user's current line kill character.
-.PP
-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.
-.PP
-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.
-.PP
-If a given terminal does not 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.
-.PP
-The \fBtermname\fR routine returns the terminal name used by \fBsetupterm\fR.
-.SH RETURN VALUE
-\fBlongname\fR and \fBtermname\fR return \fBNULL\fR on error.
-.PP
-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.
-Most versions of curses truncate the result returned by \fBtermname\fR to
-14 characters.
-.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/contrib/ncurses/man/curs_termcap.3x b/contrib/ncurses/man/curs_termcap.3x
deleted file mode 100644
index 93ac2fb146d1..000000000000
--- a/contrib/ncurses/man/curs_termcap.3x
+++ /dev/null
@@ -1,167 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.22 2007/06/02 20:40:07 tom Exp $
-.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
-.sp
-\fBextern char PC;\fR
-.br
-\fBextern char * UP;\fR
-.br
-\fBextern char * BC;\fR
-.br
-\fBextern @NCURSES_OSPEED@ ospeed;\fR
-.sp
-\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.
-.PP
-The \fBtgetent\fR routine loads the entry for \fIname\fR.
-It returns 1 on success, 0 if there is no such entry, and -1 if the
-terminfo database could not be found.
-The emulation ignores the buffer pointer \fIbp\fR.
-.PP
-The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR,
-or zero if it is not available.
-.PP
-The \fBtgetnum\fR routine gets the numeric entry for \fIid\fR,
-or -1 if it is not available.
-.PP
-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.
-.PP
-Only the first two characters of the \fBid\fR parameter of
-\fBtgetflag\fR,
-\fBtgetnum\fR and
-\fBtgetstr\fR are compared in lookups.
-.PP
-The \fBtgoto\fR routine instantiates the parameters into the given capability.
-The output from this routine is to be passed to \fBtputs\fR.
-.PP
-The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual
-page. It can retrieve capabilities by either termcap or terminfo name.
-.PP
-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.
-.PP
-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 will not 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).
-.PP
-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.
-.PP
-Note that termcap has nothing analogous to terminfo's \fBsgr\fR string.
-One consequence of this is that termcap applications assume \fRme\fR
-(terminfo \fBsgr0\fR) does not reset the alternate character set.
-This implementation checks for, and modifies the data shown to the
-termcap interface to accommodate termcap's limitation in this respect.
-.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.
-.PP
-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.
-.PP
-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(3).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_terminfo.3x b/contrib/ncurses/man/curs_terminfo.3x
deleted file mode 100644
index 5af0b8fbe27c..000000000000
--- a/contrib/ncurses/man/curs_terminfo.3x
+++ /dev/null
@@ -1,336 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1999-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.28 2007/05/26 20:09:06 tom Exp $
-.TH curs_terminfo 3X ""
-.ds n 5
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-.br
-\fB#include <term.h>\fR
-.PP
-\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(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.
-.PP
-Initially, \fBsetupterm\fR should be called. Note that
-\fBsetupterm\fR is automatically called by \fBinitscr\fR and
-\fBnewterm\fR. This defines the set of terminal-dependent variables
-[listed in \fBterminfo\fR(\*n)].
-The \fBterminfo\fR variables
-\fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
-follows:
-.RS
-.PP
-If \fBuse_env(FALSE)\fR has been called, values for
-\fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
-.PP
-Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
-exist, their values are used. If these environment variables do not
-exist and the program is running in a window, the current window size
-is used. Otherwise, if the environment variables do not exist, the
-values for \fBlines\fR and \fBcolumns\fR specified in the
-\fBterminfo\fR database are used.
-.RE
-.PP
-The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
-order) to get the definitions for these strings, numbers, and flags.
-Parameterized strings should be passed through \fBtparm\fR to instantiate them.
-All \fBterminfo\fR strings [including the output of \fBtparm\fR] should be printed
-with \fBtputs\fR or \fBputp\fR. Call the \fBreset_shell_mode\fR to restore the
-tty modes before exiting [see \fBcurs_kernel\fR(3X)]. Programs which use
-cursor addressing should output \fBenter_ca_mode\fR upon startup and should
-output \fBexit_ca_mode\fR before exiting. Programs desiring shell escapes
-should call
-.PP
-\fBreset_shell_mode\fR and output \fBexit_ca_mode\fR before the shell
-is called and should output \fBenter_ca_mode\fR and call
-\fBreset_prog_mode\fR after returning from the shell.
-.PP
-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:
-.sp
- \fBsetupterm((char *)0, 1, (int *)0);\fR,
-.sp
-which uses all the defaults and sends the output to \fBstdout\fR.
-.PP
-The \fBsetterm\fR routine is being replaced by \fBsetupterm\fR. The call:
-.sp
- \fBsetupterm(\fR\fIterm\fR\fB, 1, (int *)0)\fR
-.sp
-provides the same functionality as \fBsetterm(\fR\fIterm\fR\fB)\fR.
-The \fBsetterm\fR routine is included here for BSD compatibility, and
-is not recommended for new programs.
-.PP
-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.
-.PP
-The \fBdel_curterm\fR routine frees the space pointed to by
-\fIoterm\fR and makes it available for further use. If \fIoterm\fR is
-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.
-.PP
-The \fBrestartterm\fR routine is similar to \fBsetupterm\fR and \fBinitscr\fR,
-except that it is called after restoring memory to a previous state (for
-example, when reloading a game saved as a core image dump). It assumes that
-the windows and the input and output options are the same as when memory was
-saved, but the terminal type and baud rate may be different. Accordingly,
-it saves various tty state bits, calls \fBsetupterm\fP,
-and then restores the bits.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-The \fBvidattr\fR routine is like the \fBvidputs\fR routine, except
-that it outputs through \fBputchar\fR.
-.PP
-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.
-.PP
-The \fBmvcur\fR routine provides low-level cursor motion. It takes
-effect immediately (rather than at the next refresh).
-.PP
-The \fBtigetflag\fR, \fBtigetnum\fR and \fBtigetstr\fR routines return
-the value of the capability corresponding to the \fBterminfo\fR
-\fIcapname\fR passed to them, such as \fBxenl\fR.
-.PP
-The \fBtigetflag\fR routine returns the value \fB-1\fR if
-\fIcapname\fR is not a boolean capability,
-or \fB0\fR if it is canceled or absent from the terminal description.
-.PP
-The \fBtigetnum\fR routine returns the value \fB-2\fR if
-\fIcapname\fR is not a numeric capability,
-or \fB-1\fR if it is canceled or absent from the terminal description.
-.PP
-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.
-.PP
-The \fIcapname\fR for each capability is given in the table column entitled
-\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n).
-.sp
-.RS
-\fBchar *boolnames[]\fR, \fB*boolcodes[]\fR, \fB*boolfnames[]\fR
-.sp
-\fBchar *numnames[]\fR, \fB*numcodes[]\fR, \fB*numfnames[]\fR
-.sp
-\fBchar *strnames[]\fR, \fB*strcodes[]\fR, \fB*strfnames[]\fR
-.RE
-.PP
-These null-terminated arrays contain the \fIcapnames\fR, the
-\fBtermcap\fR codes, and the full C names, for each of the
-\fBterminfo\fR variables.
-.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.PP
-Routines that return pointers always return \fBNULL\fR on error.
-.PP
-X/Open defines no error conditions.
-In this implementation
-.RS
-.TP 5
-\fBdel_curterm\fP
-returns an error
-if its terminal parameter is null.
-.TP 5
-\fBrestartterm\fP
-returns an error
-if the associated call to \fBsetupterm\fP returns an error.
-.TP 5
-\fBsetupterm\fP
-returns an error
-if it cannot allocate enough memory, or
-create the initial windows (stdscr, curscr, newscr).
-Other error conditions are documented above.
-.RE
-.SH NOTES
-The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR.
-It may be useful when you want to test for terminal capabilities without
-committing to the allocation of storage involved in \fBinitscr\fR.
-.PP
-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.
-.PP
-\fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
-This is not part of X/Open Curses, but is assumed by some applications.
-.PP
-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.
-.PP
-In System V Release 4, the third argument of \fBtputs\fR has the type
-\fBint (*putc)(char)\fR.
-.PP
-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.
-.PP
-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.
-.PP
-XSI states that the old location must be given for \fBmvcur\fP.
-This implementation allows the caller to use -1's for the old ordinates.
-In that case, the old location is unknown.
-.PP
-Extended terminal capability names, e.g., as defined by \fBtic\ -x\fP,
-are not stored in the arrays described in this section.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_termcap\fR(3X),
-\fBputc\fR(3), \fBterminfo\fR(\*n)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_threads.3x b/contrib/ncurses/man/curs_threads.3x
deleted file mode 100644
index 17dabdb7b40a..000000000000
--- a/contrib/ncurses/man/curs_threads.3x
+++ /dev/null
@@ -1,603 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2008 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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_threads.3x,v 1.12 2008/04/12 18:22:51 tom Exp $
-.TH curs_threads 3X ""
-.na
-.hy 0
-.SH NAME
-\fBuse_screen\fR,
-\fBuse_window\fR - \fBcurses\fR thread support
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBtypedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);\fR
-\fBtypedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);\fR
-.br
-\fBint set_escdelay(int size);\fR
-.br
-\fBint set_tabsize(int size);\fR
-.br
-\fBint use_screen(SCREEN *scr, NCURSES_WINDOW_CB func, void *data);\fR
-.br
-\fBint use_window(WINDOW *win, NCURSES_SCREEN_CB func, void *data);\fR
-.br
-.SH DESCRIPTION
-This implementation can be configured to provide rudimentary support
-for multi-threaded applications.
-This makes a different set of libraries, e.g., \fIlibncursest\fP since
-the binary interfaces are different.
-.PP
-Rather than modify the interfaces to pass a thread specifier to
-each function, it adds a few functions which can be used in any
-configuration which hide the mutex's needed to prevent concurrent
-use of the global variables when configured for threading.
-.PP
-In addition to forcing access to members of the \fBWINDOW\fP structure
-to be via functions (see \fBcurs_opaque\fP(3x)),
-it makes functions of the common global variables,
-e.g.,
-COLORS,
-COLOR_PAIRS,
-COLS,
-ESCDELAY,
-LINES,
-TABSIZE
-curscr,
-newscr and
-ttytype.
-Those variables are maintained as read-only values, stored in the \fBSCREEN\fP
-structure.
-.PP
-Even this is not enough to make a thread-safe application using curses.
-A multi-threaded application would be expected to have threads updating
-separate windows (within the same device),
-or updating on separate screens (on different devices).
-Also, a few of the global variables are considered writable by some
-applications.
-The functions described here address these special situations.
-.PP
-The ESCDELAY and TABSIZE global variables are modified by some applications.
-To modify them in any configuration,
-use the \fBset_escdelay\fP or \fBset_tabsize\fP functions.
-Other global variables are not modifiable.
-.PP
-The \fBuse_window\fP and \fBuse_screen\fP functions provide coarse
-granularity mutexes for their respective \fBWINDOW\fP and \fBSCREEN\fP
-parameters, and call a user-supplied function,
-passing it a \fIdata\fP parameter,
-and returning the value from the user-supplied function to the application.
-.\" ***************************************************************************
-.SS USAGE
-All of the ncurses library functions assume that the locale is not
-altered during operation.
-In addition,
-they use data which is maintained within a hierarchy of scopes.
-.RS
-.TP 3
--
-global data, e.g., used in the low-level terminfo or termcap interfaces.
-.TP 3
--
-terminal data, e.g., associated with a call to \fIset_curterm\fP.
-The terminal data are initialized when screens are created.
-.TP 3
--
-screen data, e.g., associated with a call to \fInewterm\fP or \fIinitscr\fP.
-.TP 3
--
-window data, e.g., associated with a call to \fInewwin\fP or \fIsubwin\fP.
-Windows are associated with screens.
-Pads are not necessarily associated with a particular screen.
-.IP
-Most curses applications operate on one or more windows within a single screen.
-.TP 3
--
-reentrant, i.e., it uses only the data passed as parameters.
-.RE
-.PP
-This table lists the scope of data used for each symbol in the
-ncurses library when it is configured to support threading:
-.TS
-center tab(/);
-l l
-l l .
-Symbol/Scope
-=
-BC/global
-COLORS/screen (readonly)
-COLOR_PAIR/reentrant
-COLOR_PAIRS/screen (readonly)
-COLS/screen (readonly)
-ESCDELAY/screen (readonly, see \fIset_escdelay\fP)
-LINES/screen (readonly)
-PAIR_NUMBER/reentrant
-PC/global
-SP/global
-TABSIZE/screen (readonly)
-UP/global
-acs_map/screen (readonly)
-add_wch/window (stdscr)
-add_wchnstr/window (stdscr)
-add_wchstr/window (stdscr)
-addch/window (stdscr)
-addchnstr/window (stdscr)
-addchstr/window (stdscr)
-addnstr/window (stdscr)
-addnwstr/window (stdscr)
-addstr/window (stdscr)
-addwstr/window (stdscr)
-assume_default_colors/screen
-attr_get/window (stdscr)
-attr_off/window (stdscr)
-attr_on/window (stdscr)
-attr_set/window (stdscr)
-attroff/window (stdscr)
-attron/window (stdscr)
-attrset/window (stdscr)
-baudrate/screen
-beep/screen
-bkgd/window (stdscr)
-bkgdset/window (stdscr)
-bkgrnd/window (stdscr)
-bkgrndset/window (stdscr)
-boolcodes/global (readonly)
-boolfnames/global (readonly)
-boolnames/global (readonly)
-border/window (stdscr)
-border_set/window (stdscr)
-box/window (stdscr)
-box_set/window (stdscr)
-can_change_color/terminal
-cbreak/screen
-chgat/window (stdscr)
-clear/window (stdscr)
-clearok/window
-clrtobot/window (stdscr)
-clrtoeol/window (stdscr)
-color_content/screen
-color_set/window (stdscr)
-copywin/window locks(source, target)
-cur_term/terminal
-curs_set/screen
-curscr/screen (readonly)
-curses_version/global (readonly)
-def_prog_mode/terminal
-def_shell_mode/terminal
-define_key/screen
-del_curterm/screen
-delay_output/screen
-delch/window (stdscr)
-deleteln/window (stdscr)
-delscreen/global locks(screenlist, screen)
-delwin/global locks(windowlist)
-derwin/screen
-doupdate/screen
-dupwin/screen locks(window)
-echo/screen
-echo_wchar/window (stdscr)
-echochar/window (stdscr)
-endwin/screen
-erase/window (stdscr)
-erasechar/window (stdscr)
-erasewchar/window (stdscr)
-filter/global
-flash/terminal
-flushinp/screen
-get_wch/screen (input-operation)
-get_wstr/screen (input-operation)
-getattrs/window
-getbegx/window
-getbegy/window
-getbkgd/window
-getbkgrnd/window
-getcchar/reentrant
-getch/screen (input-operation)
-getcurx/window
-getcury/window
-getmaxx/window
-getmaxy/window
-getmouse/screen (input-operation)
-getn_wstr/screen (input-operation)
-getnstr/screen (input-operation)
-getparx/window
-getpary/window
-getstr/screen (input-operation)
-getwin/screen (input-operation)
-halfdelay/screen
-has_colors/terminal
-has_ic/terminal
-has_il/terminal
-has_key/screen
-hline/window (stdscr)
-hline_set/window (stdscr)
-idcok/window
-idlok/window
-immedok/window
-in_wch/window (stdscr)
-in_wchnstr/window (stdscr)
-in_wchstr/window (stdscr)
-inch/window (stdscr)
-inchnstr/window (stdscr)
-inchstr/window (stdscr)
-init_color/screen
-init_pair/screen
-initscr/global locks(screenlist)
-innstr/window (stdscr)
-innwstr/window (stdscr)
-ins_nwstr/window (stdscr)
-ins_wch/window (stdscr)
-ins_wstr/window (stdscr)
-insch/window (stdscr)
-insdelln/window (stdscr)
-insertln/window (stdscr)
-insnstr/window (stdscr)
-insstr/window (stdscr)
-instr/window (stdscr)
-intrflush/terminal
-inwstr/window (stdscr)
-is_cleared/window
-is_idcok/window
-is_idlok/window
-is_immedok/window
-is_keypad/window
-is_leaveok/window
-is_linetouched/window
-is_nodelay/window
-is_notimeout/window
-is_scrollok/window
-is_syncok/window
-is_term_resized/terminal
-is_wintouched/window
-isendwin/screen
-key_defined/screen
-key_name/global (static data)
-keybound/screen
-keyname/global (static data)
-keyok/screen
-keypad/window
-killchar/terminal
-killwchar/terminal
-leaveok/window
-longname/screen
-mcprint/terminal
-meta/screen
-mouse_trafo/window (stdscr)
-mouseinterval/screen
-mousemask/screen
-move/window (stdscr)
-mvadd_wch/window (stdscr)
-mvadd_wchnstr/window (stdscr)
-mvadd_wchstr/window (stdscr)
-mvaddch/window (stdscr)
-mvaddchnstr/window (stdscr)
-mvaddchstr/window (stdscr)
-mvaddnstr/window (stdscr)
-mvaddnwstr/window (stdscr)
-mvaddstr/window (stdscr)
-mvaddwstr/window (stdscr)
-mvchgat/window (stdscr)
-mvcur/screen
-mvdelch/window (stdscr)
-mvderwin/window (stdscr)
-mvget_wch/screen (input-operation)
-mvget_wstr/screen (input-operation)
-mvgetch/screen (input-operation)
-mvgetn_wstr/screen (input-operation)
-mvgetnstr/screen (input-operation)
-mvgetstr/screen (input-operation)
-mvhline/window (stdscr)
-mvhline_set/window (stdscr)
-mvin_wch/window (stdscr)
-mvin_wchnstr/window (stdscr)
-mvin_wchstr/window (stdscr)
-mvinch/window (stdscr)
-mvinchnstr/window (stdscr)
-mvinchstr/window (stdscr)
-mvinnstr/window (stdscr)
-mvinnwstr/window (stdscr)
-mvins_nwstr/window (stdscr)
-mvins_wch/window (stdscr)
-mvins_wstr/window (stdscr)
-mvinsch/window (stdscr)
-mvinsnstr/window (stdscr)
-mvinsstr/window (stdscr)
-mvinstr/window (stdscr)
-mvinwstr/window (stdscr)
-mvprintw/window (stdscr)
-mvscanw/screen
-mvvline/window (stdscr)
-mvvline_set/window (stdscr)
-mvwadd_wch/window
-mvwadd_wchnstr/window
-mvwadd_wchstr/window
-mvwaddch/window
-mvwaddchnstr/window
-mvwaddchstr/window
-mvwaddnstr/window
-mvwaddnwstr/window
-mvwaddstr/window
-mvwaddwstr/window
-mvwchgat/window
-mvwdelch/window
-mvwget_wch/screen (input-operation)
-mvwget_wstr/screen (input-operation)
-mvwgetch/screen (input-operation)
-mvwgetn_wstr/screen (input-operation)
-mvwgetnstr/screen (input-operation)
-mvwgetstr/screen (input-operation)
-mvwhline/window
-mvwhline_set/window
-mvwin/window
-mvwin_wch/window
-mvwin_wchnstr/window
-mvwin_wchstr/window
-mvwinch/window
-mvwinchnstr/window
-mvwinchstr/window
-mvwinnstr/window
-mvwinnwstr/window
-mvwins_nwstr/window
-mvwins_wch/window
-mvwins_wstr/window
-mvwinsch/window
-mvwinsnstr/window
-mvwinsstr/window
-mvwinstr/window
-mvwinwstr/window
-mvwprintw/window
-mvwscanw/screen
-mvwvline/window
-mvwvline_set/window
-napms/reentrant
-newpad/global locks(windowlist)
-newscr/screen (readonly)
-newterm/global locks(screenlist)
-newwin/global locks(windowlist)
-nl/screen
-nocbreak/screen
-nodelay/window
-noecho/screen
-nofilter/global
-nonl/screen
-noqiflush/terminal
-noraw/screen
-notimeout/window
-numcodes/global (readonly)
-numfnames/global (readonly)
-numnames/global (readonly)
-ospeed/global
-overlay/window locks(source, target)
-overwrite/window locks(source, target)
-pair_content/screen
-pecho_wchar/screen
-pechochar/screen
-pnoutrefresh/screen
-prefresh/screen
-printw/window
-putp/global
-putwin/window
-qiflush/terminal
-raw/screen
-redrawwin/window
-refresh/screen
-reset_prog_mode/screen
-reset_shell_mode/screen
-resetty/terminal
-resize_term/screen locks(windowlist)
-resizeterm/screen
-restartterm/screen
-ripoffline/global (static data)
-savetty/terminal
-scanw/screen
-scr_dump/screen
-scr_init/screen
-scr_restore/screen
-scr_set/screen
-scrl/window (stdscr)
-scroll/window
-scrollok/window
-set_curterm/screen
-set_escdelay/screen
-set_tabsize/screen
-set_term/global locks(screenlist, screen)
-setcchar/reentrant
-setscrreg/window (stdscr)
-setupterm/global
-slk_attr/screen
-slk_attr_off/screen
-slk_attr_on/screen
-slk_attr_set/screen
-slk_attroff/screen
-slk_attron/screen
-slk_attrset/screen
-slk_clear/screen
-slk_color/screen
-slk_init/screen
-slk_label/screen
-slk_noutrefresh/screen
-slk_refresh/screen
-slk_restore/screen
-slk_set/screen
-slk_touch/screen
-slk_wset/screen
-standend/window
-standout/window
-start_color/screen
-stdscr/screen (readonly)
-strcodes/global (readonly)
-strfnames/global (readonly)
-strnames/global (readonly)
-subpad/window
-subwin/window
-syncok/window
-term_attrs/screen
-termattrs/screen
-termname/terminal
-tgetent/global
-tgetflag/global
-tgetnum/global
-tgetstr/global
-tgoto/global
-tigetflag/terminal
-tigetnum/terminal
-tigetstr/terminal
-timeout/window (stdscr)
-touchline/window
-touchwin/window
-tparm/global (static data)
-tputs/screen
-trace/global (static data)
-ttytype/screen (readonly)
-typeahead/screen
-unctrl/screen
-unget_wch/screen (input-operation)
-ungetch/screen (input-operation)
-ungetmouse/screen (input-operation)
-untouchwin/window
-use_default_colors/screen
-use_env/global (static data)
-use_extended_names/global (static data)
-use_legacy_coding/screen
-use_screen/global locks(screenlist, screen)
-use_window/global locks(windowlist, window)
-vid_attr/screen
-vid_puts/screen
-vidattr/screen
-vidputs/screen
-vline/window (stdscr)
-vline_set/window (stdscr)
-vw_printw/window
-vw_scanw/screen
-vwprintw/window
-vwscanw/screen
-wadd_wch/window
-wadd_wchnstr/window
-wadd_wchstr/window
-waddch/window
-waddchnstr/window
-waddchstr/window
-waddnstr/window
-waddnwstr/window
-waddstr/window
-waddwstr/window
-wattr_get/window
-wattr_off/window
-wattr_on/window
-wattr_set/window
-wattroff/window
-wattron/window
-wattrset/window
-wbkgd/window
-wbkgdset/window
-wbkgrnd/window
-wbkgrndset/window
-wborder/window
-wborder_set/window
-wchgat/window
-wclear/window
-wclrtobot/window
-wclrtoeol/window
-wcolor_set/window
-wcursyncup/screen (affects window plus parents)
-wdelch/window
-wdeleteln/window
-wecho_wchar/window
-wechochar/window
-wenclose/window
-werase/window
-wget_wch/screen (input-operation)
-wget_wstr/screen (input-operation)
-wgetbkgrnd/window
-wgetch/screen (input-operation)
-wgetn_wstr/screen (input-operation)
-wgetnstr/screen (input-operation)
-wgetparent/window
-wgetscrreg/window
-wgetstr/screen (input-operation)
-whline/window
-whline_set/window
-win_wch/window
-win_wchnstr/window
-win_wchstr/window
-winch/window
-winchnstr/window
-winchstr/window
-winnstr/window
-winnwstr/window
-wins_nwstr/window
-wins_wch/window
-wins_wstr/window
-winsch/window
-winsdelln/window
-winsertln/window
-winsnstr/window
-winsstr/window
-winstr/window
-winwstr/window
-wmouse_trafo/window
-wmove/window
-wnoutrefresh/screen
-wprintw/window
-wredrawln/window
-wrefresh/screen
-wresize/window locks(windowlist)
-wscanw/screen
-wscrl/window
-wsetscrreg/window
-wstandend/window
-wstandout/window
-wsyncdown/screen (affects window plus parents)
-wsyncup/screen (affects window plus parents)
-wtimeout/window
-wtouchln/window
-wunctrl/global (static data)
-wvline/window
-wvline_set/window
-.TE
-.\" ***************************************************************************
-.SH RETURN VALUE
-These functions all return TRUE or FALSE, except as noted.
-.SH NOTES
-Both a macro and a function are provided for each name.
-.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 ncurses extensions
-be conditioned using NCURSES_VERSION.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_opaque\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_touch.3x b/contrib/ncurses/man/curs_touch.3x
deleted file mode 100644
index a7d07bc3ffbe..000000000000
--- a/contrib/ncurses/man/curs_touch.3x
+++ /dev/null
@@ -1,116 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.11 2006/02/25 21:49:19 tom Exp $
-.TH curs_touch 3X ""
-.na
-.hy 0
-.SH NAME
-\fBtouchwin\fR,
-\fBtouchline\fR,
-\fBuntouchwin\fR,
-\fBwtouchln\fR,
-\fBis_linetouched\fR,
-\fBis_wintouched\fR - \fBcurses\fR refresh control routines
-.ad
-.hy
-.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.
-.PP
-The \fBuntouchwin\fR routine marks all lines in the window as unchanged since
-the last call to \fBwrefresh\fR.
-.PP
-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.
-.PP
-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.
-.PP
-X/Open does not define any error conditions.
-In this implementation
-.RS
-.TP 5
-\fBis_linetouched\fP
-returns an error
-if the window pointer is null, or
-if the line number is outside the window.
-Note that ERR is distinct from TRUE and FALSE, which are the normal return values of this function.
-.TP 5
-\fBwtouchln\fP
-returns an error
-if the window pointer is null, or
-if the line number is outside the window.
-.RE
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.PP
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under
-ncurses.
-.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/contrib/ncurses/man/curs_trace.3x b/contrib/ncurses/man/curs_trace.3x
deleted file mode 100644
index ca7495272d33..000000000000
--- a/contrib/ncurses/man/curs_trace.3x
+++ /dev/null
@@ -1,153 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2000-2005,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2007/02/24 17:33:49 tom Exp $
-.TH curs_trace 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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(int);\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.
-.PP
-The principal parts of this interface are the \fBtrace\fR routine which
-selectively enables different tracing features, and the \fB_tracef\fR
-routine which writes formatted data to the \fItrace\fR file.
-.PP
-Calling \fBtrace\fR with a nonzero parameter opens the file \fBtrace\fR
-in the current directory for output. The parameter is formed by OR'ing
-values from the list of \fBTRACE_\fP\fIxxx\fR definitions in \fB<curses.h>\fR.
-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.
-.PP
-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/contrib/ncurses/man/curs_util.3x b/contrib/ncurses/man/curs_util.3x
deleted file mode 100644
index 4c8929abfce7..000000000000
--- a/contrib/ncurses/man/curs_util.3x
+++ /dev/null
@@ -1,226 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.25 2007/05/26 21:44:42 tom Exp $
-.TH curs_util 3X ""
-.na
-.hy 0
-.SH NAME
-\fBdelay_output\fR,
-\fBfilter\fR,
-\fBflushinp\fR,
-\fBgetwin\fR,
-\fBkey_name\fR,
-\fBkeyname\fR,
-\fBnofilter\fR,
-\fBputwin\fR,
-\fBunctrl\fR,
-\fBuse_env\fR,
-\fBwunctrl\fR - miscellaneous \fBcurses\fR utility routines
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\fBchar *unctrl(chtype c);\fR
-.br
-\fBwchar_t *wunctrl(cchar_t *c);\fR
-.br
-\fBchar *keyname(int c);\fR
-.br
-\fBchar *key_name(wchar_t w);\fR
-.br
-\fBvoid filter(void);\fR
-.br
-\fBvoid nofilter(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.
-.PP
-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.
-.PP
-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.
-.PP
-The \fBnofilter\fP routine cancels the effect of a preceding \fBfilter\fP
-call.
-That allows the caller to initialize a screen on a different device,
-using a different value of \fB$TERM\fP.
-The limitation arises because the \fBfilter\fP routine modifies the
-in-memory copy of the terminal information.
-.PP
-The \fBuse_env\fR routine, if used, is called before \fBinitscr\fR or
-\fBnewterm\fR are called. When called with \fBFALSE\fR as an
-argument, the values of \fBlines\fR and \fBcolumns\fR specified in the
-\fIterminfo\fR database will be used, even if environment variables
-\fBLINES\fR and \fBCOLUMNS\fR (used by default) are set, or if
-\fBcurses\fR is running in a window (in which case default behavior
-would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are
-not set).
-Note that setting \fBLINES\fR or \fBCOLUMNS\fR overrides the
-corresponding size which may be obtained from the operating system.
-.PP
-The \fBputwin\fR routine writes all data associated with window \fIwin\fR into
-the file to which \fIfilep\fR points. This information can be later retrieved
-using the \fBgetwin\fR function.
-.PP
-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.
-.PP
-The \fBdelay_output\fR routine inserts an \fIms\fR millisecond pause
-in output. This routine should not be used extensively because
-padding characters are used rather than a CPU pause.
-If no padding character is specified, this uses \fBnapms\fR to perform the delay.
-.PP
-The \fBflushinp\fR routine throws away any typeahead that has been typed by the
-user and has not yet been read by the program.
-.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.
-.PP
-Routines that return pointers return \fBNULL\fR on error.
-.PP
-X/Open does not define any error conditions.
-In this implementation
-.RS
-.TP 5
-\fBflushinp\fR
-returns an error if the terminal was not initialized.
-.TP 5
-\fBputwin\fP
-returns an error if the associated \fBfwrite\fP calls return an error.
-.RE
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if
-unsuccessful, but does not define any error conditions.
-This implementation checks for three cases:
-.RS
-.TP 5
--
-the parameter is a 7-bit US-ASCII code.
-This is the case that X/Open Curses documented.
-.TP 5
--
-the parameter is in the range 128-159, i.e., a C1 control code.
-If \fBuse_legacy_coding\fP has been called with a \fB2\fP parameter,
-\fBunctrl\fP returns the parameter, i.e., a one-character string with
-the parameter as the first character.
-Otherwise, it returns ``~@'', ``~A'', etc., analogous to ``^@'', ``^A'', C0 controls.
-.IP
-X/Open Curses does not document whether \fBunctrl\fP can be called before
-initializing curses.
-This implementation permits that,
-and returns the ``~@'', etc., values in that case.
-.TP 5
--
-parameter values outside the 0 to 255 range.
-\fBunctrl\fP returns a null pointer.
-.RE
-.PP
-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).
-.PP
-The strings returned by \fBunctrl\fR in this implementation are determined
-at compile time,
-showing C1 controls from the upper-128 codes with a `~' prefix rather than `^'.
-Other implementations have different conventions.
-For example, they may show both sets of control characters with `^',
-and strip the parameter to 7 bits.
-Or they may ignore C1 controls and treat all of the upper-128 codes as
-printable.
-This implementation uses 8 bits but does not modify the string to reflect
-locale.
-The \fBuse_legacy_coding\fP function allows the caller to
-change the output of \fBunctrl\fP.
-.PP
-Likewise, the \fBmeta\fP function allows the caller to change the
-output of \fBkeyname\fP, i.e.,
-it determines whether to use the `M-' prefix
-for ``meta'' keys (codes in the range 128 to 255).
-Both \fBuse_legacy_coding\fP and \fBmeta\fP succeed only after
-curses is initialized.
-X/Open Curses does not document the treatment of codes 128 to 159.
-When treating them as ``meta'' keys
-(or if \fBkeyname\fP is called before initializing curses),
-this implementation returns strings ``M-^@'', ``M-^A'', etc.
-.PP
-The \fBkeyname\fP function may return the names of user-defined
-string capabilities which are defined in the terminfo entry via the \fB-x\fP
-option of \fBtic\fP.
-This implementation automatically assigns at run-time keycodes to
-user-defined strings which begin with "k".
-The keycodes start at KEY_MAX, but are not guaranteed to be
-the same value for different runs because user-defined codes are
-merged from all terminal descriptions which have been loaded.
-.PP
-The \fBnofilter\fP routine is specific to ncurses.
-It was not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on ncurses extensions
-be conditioned using NCURSES_VERSION.
-.SH SEE ALSO
-\fBlegacy_coding\fR(3X),
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_kernel\fR(3X),
-\fBcurs_scr_dump\fR(3X),
-\fBlegacy_coding\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/curs_window.3x b/contrib/ncurses/man/curs_window.3x
deleted file mode 100644
index 552862e9e253..000000000000
--- a/contrib/ncurses/man/curs_window.3x
+++ /dev/null
@@ -1,188 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2006/02/25 21:49:19 tom Exp $
-.TH curs_window 3X ""
-.na
-.hy 0
-.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
-.ad
-.hy
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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.
-.PP
-Calling \fBdelwin\fR deletes the named window, freeing all memory
-associated with it (it does not actually erase the window's screen
-image). Subwindows must be deleted before the main window can be
-deleted.
-.PP
-Calling \fBmvwin\fR moves the window so that the upper left-hand
-corner is at position (\fIx\fR, \fIy\fR). If the move would cause the
-window to be off the screen, it is an error and the window is not
-moved. Moving subwindows is allowed, but should be avoided.
-.PP
-Calling \fBsubwin\fR creates and returns a pointer to a new window
-with the given number of lines, \fInlines\fR, and columns,
-\fIncols\fR. The window is at position (\fIbegin\fR_\fIy\fR,
-\fIbegin\fR_\fIx\fR) on the screen. (This position is relative to the
-screen, and not to the window \fIorig\fR.) The window is made in the
-middle of the window \fIorig\fR, so that changes made to one window
-will affect both windows. The subwindow shares memory with the window
-\fIorig\fR. When using this routine, it is necessary to call
-\fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before calling
-\fBwrefresh\fR on the subwindow.
-.PP
-Calling \fBderwin\fR is the same as calling \fBsubwin,\fR except that
-\fIbegin\fR_\fIy\fR and \fIbegin\fR_\fIx\fR are relative to the origin
-of the window \fIorig\fR rather than the screen. There is no
-difference between the subwindows and the derived windows.
-.PP
-Calling \fBmvderwin\fR moves a derived window (or subwindow)
-inside its parent window. The screen-relative parameters of the
-window are not changed. This routine is used to display different
-parts of the parent window at the same physical position on the
-screen.
-.PP
-Calling \fBdupwin\fR creates an exact duplicate of the window \fIwin\fR.
-.PP
-Calling \fBwsyncup\fR touches all locations in ancestors of \fIwin\fR that are
-changed in \fIwin\fR. If \fBsyncok\fR is called with second argument
-\fBTRUE\fR then \fBwsyncup\fR is called automatically whenever there is a
-change in the window.
-.PP
-The \fBwsyncdown\fR routine touches each location in \fIwin\fR that has been
-touched in any of its ancestor windows. This routine is called by
-\fBwrefresh\fR, so it should almost never be necessary to call it manually.
-.PP
-The routine \fBwcursyncup\fR updates the current cursor position of all the
-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.
-.PP
-Routines that return pointers return \fBNULL\fR on error.
-.PP
-X/Open defines no error conditions.
-In this implementation
-.RS
-.TP 5
-\fBdelwin\fR
-returns an error if the window pointer is null, or
-if the window is the parent of another window.
-.IP
-This implementation also maintains a list of windows,
-and checks that the pointer passed to \fBdelwin\fP is one that
-it created, returning an error if it was not..
-.TP 5
-\fBmvderwin\fP
-returns an error
-if the window pointer is null, or
-if some part of the window would be placed off-screen.
-.TP 5
-\fBmvwin\fP
-returns an error
-if the window pointer is null, or
-if the window is really a pad, or
-if some part of the window would be placed off-screen.
-.TP 5
-\fBsyncok\fP
-returns an error
-if the window pointer is null.
-.RE
-.SH NOTES
-If many small changes are made to the window, the \fBwsyncup\fR option could
-degrade performance.
-.PP
-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.
-.PP
-The System V curses documentation is very unclear about what \fBwsyncup\fR
-and \fBwsyncdown\fR actually do. It seems to imply that they are only
-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/contrib/ncurses/man/default_colors.3x b/contrib/ncurses/man/default_colors.3x
deleted file mode 100644
index 32518ba9d9cf..000000000000
--- a/contrib/ncurses/man/default_colors.3x
+++ /dev/null
@@ -1,144 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey 1997,1999,2000,2005
-.\"
-.\" $Id: default_colors.3x,v 1.20 2006/12/24 15:02:53 tom Exp $
-.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
-.sp
-\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 function accepts
-negative arguments to specify default foreground or background colors.
-.PP
-The \fIuse_default_colors()\fP function was added to support \fIded\fP.
-This is a full-screen application which uses curses to manage only part
-of the screen. The bottom portion of the screen, which is of adjustable
-size, is left uncolored to display the results from shell commands.
-The top portion of the screen colors filenames using a scheme like the
-"color ls" programs.
-Attempting to manage the background color of the screen for this application
-would give unsatisfactory results for a variety of reasons.
-This extension was devised after
-noting that color xterm (and similar programs) provides a background color
-which does not necessarily correspond to any of the ANSI colors.
-While a special terminfo entry could be constructed using nine colors,
-there was no mechanism provided within curses to account for the related
-\fIorig_pair\fP and \fIback_color_erase\fP capabilities.
-.PP
-The \fIassume_default_colors()\fP function was added to solve
-a different problem: support for applications which would use
-environment variables and other configuration to bypass curses'
-notion of the terminal's default colors, setting specific values.
-.SH PORTABILITY
-These routines are specific to ncurses. They were not supported on
-Version 7, BSD or System V implementations. It is recommended that
-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/contrib/ncurses/man/define_key.3x b/contrib/ncurses/man/define_key.3x
deleted file mode 100644
index 216a3cbce4b6..000000000000
--- a/contrib/ncurses/man/define_key.3x
+++ /dev/null
@@ -1,65 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey 1997
-.\"
-.\" $Id: define_key.3x,v 1.12 2006/02/25 21:49:19 tom Exp $
-.TH define_key 3X ""
-.SH NAME
-\fBdefine_key\fP \- define a keycode
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint define_key(const 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),
-\fBkey_defined\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/contrib/ncurses/man/form.3x b/contrib/ncurses/man/form.3x
deleted file mode 100644
index 75fc78aee2d4..000000000000
--- a/contrib/ncurses/man/form.3x
+++ /dev/null
@@ -1,208 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.21 2008/04/26 17:11:52 tom Exp $
-.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.
-.PP
-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_field_info \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_fieldtype \fBform_fieldtype\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_fieldtype \fBform_fieldtype\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,
-and set errno to the corresponding error-code returned by functions
-returning an integer.
-Routines that return
-an integer return one of the following error codes:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_CONNECTED
-The field is already connected to a form.
-.TP 5
-.B E_INVALID_FIELD
-Contents of a field are not valid.
-.TP 5
-.B E_NOT_CONNECTED
-No fields are connected to the form.
-.TP 5
-.B E_NOT_POSTED
-The form has not been posted.
-.TP 5
-.B E_NO_ROOM
-Form is too large for its window.
-.TP 5
-.B E_POSTED
-The form is already posted.
-.TP 5
-.B E_REQUEST_DENIED
-The form driver could not process the request.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_UNKNOWN_COMMAND
-The form driver code saw an unknown request code.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-.PP
-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 most 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.
-.SH SEE ALSO
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/form_cursor.3x b/contrib/ncurses/man/form_cursor.3x
deleted file mode 100644
index bf9f28d6c61e..000000000000
--- a/contrib/ncurses/man/form_cursor.3x
+++ /dev/null
@@ -1,75 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/11/04 18:50:24 tom Exp $
-.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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_NOT_POSTED
-The form has not been posted.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/form_data.3x b/contrib/ncurses/man/form_data.3x
deleted file mode 100644
index 2ba004c3387e..000000000000
--- a/contrib/ncurses/man/form_data.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/02/25 21:38:26 tom Exp $
-.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).
-.PP
-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/contrib/ncurses/man/form_driver.3x b/contrib/ncurses/man/form_driver.3x
deleted file mode 100644
index 85b1df8277d6..000000000000
--- a/contrib/ncurses/man/form_driver.3x
+++ /dev/null
@@ -1,324 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.15 2007/06/02 22:56:49 tom Exp $
-.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 is 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.
-.sp
-.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.
-.sp
-.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.
-.sp
-.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.
-.sp
-.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.
-.sp
-.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.
-.sp
-.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.
-.SS MOUSE HANDLING
-.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 form display
-area or the decoration window) are handled.
-.PP
-If you click above the display region of the form:
-.RS
-.TP
-a REQ_PREV_FIELD is generated for a single click,
-.TP
-a REQ_PREV_PAGE is generated for a double-click and
-.TP
-a REQ_FIRST_FIELD is generated for a triple-click.
-.RE
-.PP
-If you click below the display region of the form:
-.RS
-.TP
-a REQ_NEXT_FIELD is generated for a single click,
-.TP
-a REQ_NEXT_PAGE is generated for a double-click and
-.TP
-a REQ_LAST_FIELD is generated for a triple-click.
-.RE
-.PP
-If you click at an field inside the display area of the form:
-.RS
-.TP 3
--
-the form cursor is positioned to that field.
-.TP 3
--
-If you double-click a field,
-the form cursor is positioned to that field
-and \fBE_UNKNOWN_COMMAND\fR is returned.
-This return value makes sense,
-because a double click usually means that an field-specific action should
-be returned.
-It is exactly the purpose of this return value to signal that an
-application specific command should be executed.
-.TP 3
--
-If a translation
-into a request was done, \fBform_driver\fR returns the result of this request.
-.RE
-.PP
-If you clicked outside the user window or the mouse event couldn't be translated
-into a form request an \fBE_REQUEST_DENIED\fR is returned.
-.SS APPLICATION-DEFINED COMMANDS
-.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 returns one of the following error codes:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_NOT_POSTED
-The form has not been posted.
-.TP 5
-.B E_INVALID_FIELD
-Contents of field is invalid.
-.TP 5
-.B E_REQUEST_DENIED
-The form driver could not process the request.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_UNKNOWN_COMMAND
-The form driver code saw an unknown request code.
-.
-.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/contrib/ncurses/man/form_field.3x b/contrib/ncurses/man/form_field.3x
deleted file mode 100644
index f3a26c57dac0..000000000000
--- a/contrib/ncurses/man/form_field.3x
+++ /dev/null
@@ -1,98 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/11/04 18:01:38 tom Exp $
-.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.
-.PP
-The function \fBform_fields\fR returns the field array of the given form.
-.PP
-The function \fBfield_count\fR returns the count of fields in \fIform\fR.
-.PP
-The function \fBmove_field\fR moves the given field (which must be disconnected)
-to a specified location on the screen.
-.SH RETURN VALUES
-The function \fBform_fields\fR returns a pointer (which may be \fBNULL\fR).
-It does not set errno.
-.PP
-The function \fBfield_count\fR returns \fBERR\fR if the \fIform\fP parameter
-is \fBNULL\fP.
-.PP
-The functions \fBset_form_fields\fR and \fBmove_field\fR return one of
-the following codes on error:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_CONNECTED
-The field is already connected to a form.
-.TP 5
-.B E_POSTED
-The form is already posted.
-.TP 5
-.B E_SYSTEM_ERROR
-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.
-.PP
-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/contrib/ncurses/man/form_field_attributes.3x b/contrib/ncurses/man/form_field_attributes.3x
deleted file mode 100644
index 90dc0f31b63b..000000000000
--- a/contrib/ncurses/man/form_field_attributes.3x
+++ /dev/null
@@ -1,92 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/11/04 18:51:26 tom Exp $
-.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.
-.PP
-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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.
-.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/contrib/ncurses/man/form_field_buffer.3x b/contrib/ncurses/man/form_field_buffer.3x
deleted file mode 100644
index cac6a088e5ed..000000000000
--- a/contrib/ncurses/man/form_field_buffer.3x
+++ /dev/null
@@ -1,112 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2006/11/04 17:12:00 tom Exp $
-.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 do not use it for long term
-storage of the entered form data.
-.PP
-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.
-.PP
-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.
-It sets errno according to their success:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.PP
-The \fBfield_status\fR function returns \fBTRUE\fR or \fBFALSE\fR.
-.PP
-The remaining routines return one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-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
-.PP
-When configured for wide-characters, \fBfield_buffer\fP returns a pointer
-to temporary storage (allocated and freed by the library).
-The application should not attempt to modify the data.
-It will be freed on the next call to \fBfield_buffer\fP to return the
-same buffer.
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-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/contrib/ncurses/man/form_field_info.3x b/contrib/ncurses/man/form_field_info.3x
deleted file mode 100644
index bde312856951..000000000000
--- a/contrib/ncurses/man/form_field_info.3x
+++ /dev/null
@@ -1,85 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/11/04 17:14:31 tom Exp $
-.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.
-.PP
-The function \fBdynamic_field_info\fR returns the actual size of the field, and
-its maximum possible size. If the field has no size limit, the location
-addressed by the third argument will be set to 0.
-A field can be made dynamic
-by turning off the \fBO_STATIC\fR option with \fBfield_opts_off\fR.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-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/contrib/ncurses/man/form_field_just.3x b/contrib/ncurses/man/form_field_just.3x
deleted file mode 100644
index 15d6cb254df1..000000000000
--- a/contrib/ncurses/man/form_field_just.3x
+++ /dev/null
@@ -1,78 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-The function \fBset_field_just\fR returns one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-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/contrib/ncurses/man/form_field_new.3x b/contrib/ncurses/man/form_field_new.3x
deleted file mode 100644
index 6095de1ccbb2..000000000000
--- a/contrib/ncurses/man/form_field_new.3x
+++ /dev/null
@@ -1,106 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.16 2007/06/02 20:40:07 tom Exp $
-.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.
-.PP
-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.
-.PP
-The function \fBlink_field\fR acts like \fBdup_field\fR, but the new field
-shares buffers with its parent. Attribute data is separate.
-.PP
-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.
-They set errno according to their success:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred, e.g., malloc failure.
-.PP
-The function \fBfree_field\fR returns one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_CONNECTED
-field is connected.
-.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.
-.PP
-It may be unwise to count on the set of attributes copied by
-\fBdup_field\fR being portable; the System V forms library documents are
-not very explicit about what gets copied and what 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/contrib/ncurses/man/form_field_opts.3x b/contrib/ncurses/man/form_field_opts.3x
deleted file mode 100644
index d505279ceb20..000000000000
--- a/contrib/ncurses/man/form_field_opts.3x
+++ /dev/null
@@ -1,124 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.13 2007/02/24 17:34:27 tom Exp $
-.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, Field_Options opts);
-.br
-int field_opts_on(FIELD *field, Field_Options opts);
-.br
-int field_opts_off(FIELD *field, Field_Options opts);
-.br
-Field_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).
-.PP
-The function \fBfield_opts_on\fR turns on the given option bits, and leaves
-others alone.
-.PP
-The function \fBfield_opts_off\fR turns off the given option bits, and leaves
-others alone.
-.PP
-The function \fBfield_opts\fR returns the field's current option bits.
-.PP
-The following options are defined (all are on by default):
-.TP 5
-O_VISIBLE
-The field is displayed. If this option is off, display of the field is
-suppressed.
-.TP 5
-O_ACTIVE
-The field is visited during processing. If this option is off, the field will
-not be reachable by navigation keys. Please notice that an invisible field
-appears to be inactive also.
-.TP 5
-O_PUBLIC
-The field contents are displayed as data is entered.
-.TP 5
-O_EDIT
-The field can be edited.
-.TP 5
-O_WRAP
-Words that do not fit on a line are wrapped to the next line. Words are
-blank-separated.
-.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.
-Turn this option off to create a dynamic field.
-.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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_CURRENT
-The field is the current field.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.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/contrib/ncurses/man/form_field_userptr.3x b/contrib/ncurses/man/form_field_userptr.3x
deleted file mode 100644
index 47b9ed424d19..000000000000
--- a/contrib/ncurses/man/form_field_userptr.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/11/04 18:04:37 tom Exp $
-.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 a pointer (which may be \fBNULL\fR).
-It does not set errno.
-.PP
-The function \fBset_field_userptr\fR returns \fBE_OK\fP (success).
-.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.
-.PP
-The user pointer is a void pointer.
-We chose not to 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/contrib/ncurses/man/form_field_validation.3x b/contrib/ncurses/man/form_field_validation.3x
deleted file mode 100644
index 2da52efd2e36..000000000000
--- a/contrib/ncurses/man/form_field_validation.3x
+++ /dev/null
@@ -1,144 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.16 2006/12/24 16:08:08 tom Exp $
-.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);
-.sp
-FIELDTYPE *TYPE_ALNUM;
-.br
-FIELDTYPE *TYPE_ALPHA;
-.br
-FIELDTYPE *TYPE_ENUM;
-.br
-FIELDTYPE *TYPE_INTEGER;
-.br
-FIELDTYPE *TYPE_NUMERIC;
-.br
-FIELDTYPE *TYPE_REGEXP;
-.br
-FIELDTYPE *TYPE_IPV4;
-.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 predefined 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 using 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 than or equal to 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 locales, the decimal point character
-to be used must be the one specified by your locale.
-If the maximum value is less than or equal to 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 and \fBregexec\fR. 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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/form_fieldtype.3x b/contrib/ncurses/man/form_fieldtype.3x
deleted file mode 100644
index 0d42faed6cc2..000000000000
--- a/contrib/ncurses/man/form_fieldtype.3x
+++ /dev/null
@@ -1,148 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2006/11/04 17:12:00 tom Exp $
-.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 attempts 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.
-.PP
-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.
-.PP
-The function \fBfree_fieldtype\fR frees the space allocated for a given
-validation type.
-.PP
-The function \fBset_fieldtype_arg\fR associates three storage-management functions
-with a field type.
-The \fImake_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 \fImake_arg\fR function,
-the other two are optional, you may supply NULL for them.
-In this case it is assumed
-that \fImake_arg\fR does not allocate memory but simply loads the
-argument into a single scalar value.
-.PP
-The function \fBlink_fieldtype\fR creates
-a new field type from the two given types.
-They are connected by an logical 'OR'.
-.PP
-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.
-They set errno according to their success:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred, e.g., malloc failure.
-.PP
-The integer-valued routines return one of the following codes on
-error:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_CONNECTED
-The field is already connected to a form.
-.TP 5
-.B E_CURRENT
-The field is the current field.
-.TP 5
-.B E_SYSTEM_ERROR
-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.
-.PP
-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/contrib/ncurses/man/form_hook.3x b/contrib/ncurses/man/form_hook.3x
deleted file mode 100644
index cd47a24a59c8..000000000000
--- a/contrib/ncurses/man/form_hook.3x
+++ /dev/null
@@ -1,100 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2007/02/24 17:34:18 tom Exp $
-.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, Form_Hook func);
-.br
-Form_Hook field_init(const FORM *form);
-.br
-int set_field_term(FORM *form, Form_Hook func);
-.br
-Form_Hook field_term(const FORM *form);
-.br
-int set_form_init(FORM *form, Form_Hook func);
-.br
-Form_Hook form_init(const FORM *form);
-.br
-int set_form_term(FORM *form, Form_Hook func);
-.br
-Form_Hook 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.
-.PP
-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).
-.PP
-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).
-.PP
-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).
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/form_new.3x b/contrib/ncurses/man/form_new.3x
deleted file mode 100644
index cac4f508b38b..000000000000
--- a/contrib/ncurses/man/form_new.3x
+++ /dev/null
@@ -1,89 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.7 2006/11/04 17:12:00 tom Exp $
-.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).
-.PP
-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.
-It sets errno according to the function's success:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_CONNECTED
-The field is already connected to a form.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred, e.g., malloc failure.
-.PP
-The function \fBfree_form\fR returns one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_POSTED
-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/contrib/ncurses/man/form_new_page.3x b/contrib/ncurses/man/form_new_page.3x
deleted file mode 100644
index 5b7f58d4a46a..000000000000
--- a/contrib/ncurses/man/form_new_page.3x
+++ /dev/null
@@ -1,77 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-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.
-.PP
-The function \fBset_new_page\fR return one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_CONNECTED
-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/contrib/ncurses/man/form_opts.3x b/contrib/ncurses/man/form_opts.3x
deleted file mode 100644
index 0caaae7c8837..000000000000
--- a/contrib/ncurses/man/form_opts.3x
+++ /dev/null
@@ -1,90 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2007/02/24 17:34:36 tom Exp $
-.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, Field_Options opts);
-.br
-int form_opts_on(FORM *form, Field_Options opts);
-.br
-int form_opts_off(FORM *form, Field_Options opts);
-.br
-Field_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).
-.PP
-The function \fBform_opts_on\fR turns on the given option bits, and leaves
-others alone.
-.PP
-The function \fBform_opts_off\fR turns off the given option bits, and leaves
-others alone.
-.PP
-The function \fBform_opts\fR returns the form's current option bits.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/form_page.3x b/contrib/ncurses/man/form_page.3x
deleted file mode 100644
index 50ed54db4cc5..000000000000
--- a/contrib/ncurses/man/form_page.3x
+++ /dev/null
@@ -1,96 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/11/04 18:52:32 tom Exp $
-.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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_INVALID_FIELD
-Contents of a field are not valid.
-.TP 5
-.B E_REQUEST_DENIED
-The form driver could not process the request.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/form_post.3x b/contrib/ncurses/man/form_post.3x
deleted file mode 100644
index 6bf1607799c6..000000000000
--- a/contrib/ncurses/man/form_post.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.7 2006/11/04 18:53:20 tom Exp $
-.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).
-.PP
-The function \fBunpost_form\fR erases form from its associated subwindow.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_NOT_POSTED
-The form has not been posted.
-.TP 5
-.B E_NOT_CONNECTED
-No items are connected to the form.
-.TP 5
-.B E_NO_ROOM
-Form is too large for its window.
-.TP 5
-.B E_POSTED
-The form has already been posted.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/form_requestname.3x b/contrib/ncurses/man/form_requestname.3x
deleted file mode 100644
index a172f857b1e3..000000000000
--- a/contrib/ncurses/man/form_requestname.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.7 2006/11/04 17:57:49 tom Exp $
-.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.
-It does not set errno.
-.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/contrib/ncurses/man/form_userptr.3x b/contrib/ncurses/man/form_userptr.3x
deleted file mode 100644
index 7be0bf860480..000000000000
--- a/contrib/ncurses/man/form_userptr.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.11 2006/11/04 18:43:24 tom Exp $
-.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 a pointer (which may be \fBNULL\fR).
-It does not set errno.
-.PP
-The function \fBset_form_userptr\fR returns \fBE_OK\fP (success).
-.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.
-.PP
-The user pointer is a void pointer.
-We chose not to 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/contrib/ncurses/man/form_win.3x b/contrib/ncurses/man/form_win.3x
deleted file mode 100644
index c8f64f2e04ad..000000000000
--- a/contrib/ncurses/man/form_win.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-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.
-.PP
-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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_POSTED
-The form has already been posted.
-.TP 5
-.B E_NOT_CONNECTED
-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/contrib/ncurses/man/infocmp.1m b/contrib/ncurses/man/infocmp.1m
deleted file mode 100644
index b1a88e76723b..000000000000
--- a/contrib/ncurses/man/infocmp.1m
+++ /dev/null
@@ -1,437 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.44 2006/12/24 18:16:31 tom Exp $
-.TH @INFOCMP@ 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fB@INFOCMP@\fR - compare or print out \fIterminfo\fR descriptions
-.SH SYNOPSIS
-\fB@INFOCMP@\fR [\fB-\
-1\
-C\
-E\
-F\
-G\
-I\
-L\
-T\
-U\
-V\
-c\
-d\
-e\
-g\
-i\
-l\
-n\
-p\
-q\
-r\
-t\
-u\
-x\
-\fR]
-.br
- [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB-R \fR\fBsubset\fR]
-.br
- [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR]
-.br
- [\fItermname\fR...]
-.SH DESCRIPTION
-\fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
-terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
-\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
-binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean
-fields will be printed first, followed by the numeric fields, followed by the
-string fields.
-.SS Default Options
-If no options are specified and zero or one \fItermnames\fR are specified, the
-\fB-I\fR option will be assumed. If more than one \fItermname\fR is specified,
-the \fB-d\fR option will be assumed.
-.SS Comparison Options [-d] [-c] [-n]
-\fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
-\fItermname\fR with each of the descriptions given by the entries for the other
-terminal's \fItermnames\fR. If a capability is defined for only one of the
-terminals, the value returned will depend on the type of the capability:
-\fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR
-for string variables.
-.PP
-The \fB-d\fR option produces a list of each capability that is different
-between two entries. This option is useful to show the difference between two
-entries, created by different people, for the same or similar terminals.
-.PP
-The \fB-c\fR option produces a list of each capability that is common between
-two entries. Capabilities that are not set are ignored. This option can be
-used as a quick check to see if the \fB-u\fR option is worth using.
-.PP
-The \fB-n\fR option produces a list of each capability that is in neither
-entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR
-will be used for both of the \fItermnames\fR. This can be used as a quick
-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
-.PP
-If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
-used for the terminal name.
-.PP
-The source produced by the \fB-C\fR option may be used directly as a
-\fBtermcap\fR entry, but not all parameterized strings can be changed to
-the \fBtermcap\fR format. \fB@INFOCMP@\fR will attempt to convert most of the
-parameterized information, and anything not converted will be plainly marked in
-the output and commented out. These should be edited by hand.
-.PP
-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.
-.PP
-All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
-are derivable from other \fBterminfo\fR variables, will be output. Not all
-\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.
-.PP
-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.
-.PP
-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 \fB@INFOCMP@\fR will show what can be done to change
-one description to be relative to the other.
-.PP
-A capability will get printed with an at-sign (@) if it no longer exists in the
-first \fItermname\fR, but one of the other \fItermname\fR entries contains a
-value for it. A capability's value gets printed if the value in the first
-\fItermname\fR is not found in any of the other \fItermname\fR entries, or if
-the first of the other \fItermname\fR entries that has this capability gives a
-different value for the capability than that in the first \fItermname\fR.
-.PP
-The order of the other \fItermname\fR entries is significant. Since the
-terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
-specifying two \fBuse=\fR entries that contain differing entries for the same
-capabilities will produce different results depending on the order that the
-entries are given in. \fB@INFOCMP@\fR will flag any such inconsistencies between
-the other \fItermname\fR entries as they are found.
-.PP
-Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
-contains that capability will cause the second specification to be ignored.
-Using \fB@INFOCMP@\fR to recreate a description can be a useful check to make
-sure that everything was specified correctly in the original source
-description.
-.PP
-Another error that does not cause incorrect compiled files, but will slow down
-the compilation time, is specifying extra \fBuse=\fR fields that are
-superfluous. \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
-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 \fB@INFOCMP@\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:
-i.
-.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
-=
-DECSTR/soft reset (VT320)
-S7C1T/7-bit controls (VT220)
-=
-ISO DEC G0/enable DEC graphics for G0
-ISO UK G0/enable UK chars for G0
-ISO US G0/enable US chars for G0
-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
-=
-ECMA[+-]AM/keyboard action mode
-ECMA[+-]IRM/insert replace mode
-ECMA[+-]SRM/send receive mode
-ECMA[+-]LNM/linefeed mode
-=
-DEC[+-]CKM/application cursor keys
-DEC[+-]ANM/set VT52 mode
-DEC[+-]COLM/132-column mode
-DEC[+-]SCLM/smooth scroll
-DEC[+-]SCNM/reverse video mode
-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).
-.PP
-An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
-.TP 5
-\fB-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-U\fR
-tells \fB@INFOCMP@\fP to not post-process the data after parsing the source file.
-This feature helps when comparing the actual contents of two source files,
-since it excludes the inferences that \fB@INFOCMP@\fP makes to fill in missing
-data.
-.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.
-.TP
-\fB-x\fR
-print information for user-defined capabilities.
-These are extensions to the terminfo repertoire which can be loaded
-using the \fB-x\fR option of \fBtic\fP.
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH EXTENSIONS
-The
-\fB-E\fR,
-\fB-F\fR,
-\fB-G\fR,
-\fB-R\fR,
-\fB-T\fR,
-\fB-V\fR,
-\fB-a\fR,
-\fB-e\fR,
-\fB-f\fR,
-\fB-g\fR,
-\fB-i\fR,
-\fB-l\fR,
-\fB-p\fR,
-\fB-q\fR and
-\fB-t\fR
-options are not supported in SVr4 curses.
-.PP
-The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
-Actual BSD curses versions will have a more restricted set. To see only the
-4.4BSD set, use \fB-r\fR \fB-RBSD\fR.
-.SH BUGS
-The \fB-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
-.SH SEE ALSO
-\fB@CAPTOINFO@\fR(1M),
-\fB@INFOTOCAP@\fR(1M),
-\fB@TIC@\fR(1M),
-\fB@TOE@\fR(1M),
-\fBcurses\fR(3X),
-\fBterminfo\fR(\*n).
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SH AUTHOR
-Eric S. Raymond <esr@snark.thyrsus.com>
-and
-.br
-Thomas E. Dickey <dickey@invisible-island.net>
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/infotocap.1m b/contrib/ncurses/man/infotocap.1m
deleted file mode 100644
index 19160b449561..000000000000
--- a/contrib/ncurses/man/infotocap.1m
+++ /dev/null
@@ -1,77 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1999-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/12/24 20:13:56 tom Exp $
-.TH @INFOTOCAP@ 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fB@INFOTOCAP@\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
-.SH SYNOPSIS
-\fB@INFOTOCAP@\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
-.SH DESCRIPTION
-\fB@INFOTOCAP@\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 \fI@TIC@\fR, running in \fI-C\fR mode.
-You can use other \fI@TIC@\fR options such as \fB-f\fR and \fB-x\fR.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fB@TIC@\fR(1M),
-\fB@INFOCMP@\fR(1M),
-\fBterminfo\fR(\*n)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/key_defined.3x b/contrib/ncurses/man/key_defined.3x
deleted file mode 100644
index d7413da6fe35..000000000000
--- a/contrib/ncurses/man/key_defined.3x
+++ /dev/null
@@ -1,60 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2003-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey 2003
-.\"
-.\" $Id: key_defined.3x,v 1.4 2006/02/25 21:50:01 tom Exp $
-.TH key_defined 3X ""
-.SH NAME
-\fBkey_defined\fP \- check if a keycode is defined
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint key_defined(const char *definition);\fP
-.SH DESCRIPTION
-This is an extension to the curses library.
-It permits an application to determine if a string is currently bound
-to any keycode.
-.SH RETURN VALUE
-If the string is bound to a keycode, its value (greater than zero) is returned.
-If no keycode is bound, zero is returned.
-If the string conflicts with longer strings which are bound to keys, -1 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
-\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/contrib/ncurses/man/keybound.3x b/contrib/ncurses/man/keybound.3x
deleted file mode 100644
index 93e17945a31a..000000000000
--- a/contrib/ncurses/man/keybound.3x
+++ /dev/null
@@ -1,64 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1999-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey 1999
-.\"
-.\" $Id: keybound.3x,v 1.6 2006/02/25 21:47:06 tom Exp $
-.TH keyok 3X ""
-.SH NAME
-\fBkeybound\fP \- return definition of keycode
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\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 \fIkeycode\fP parameter must be greater than zero, else NULL is returned.
-If it does not correspond to a defined key, then NULL is returned.
-The \fIcount\fP parameter is used to allow the application to iterate
-through multiple definitions, counting from zero.
-When successful,
-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/contrib/ncurses/man/keyok.3x b/contrib/ncurses/man/keyok.3x
deleted file mode 100644
index 08c2a27778ea..000000000000
--- a/contrib/ncurses/man/keyok.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey 1997
-.\"
-.\" $Id: keyok.3x,v 1.9 2006/02/25 21:47:06 tom Exp $
-.TH keyok 3X ""
-.SH NAME
-\fBkeyok\fP \- enable or disable a keycode
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\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/contrib/ncurses/man/legacy_coding.3x b/contrib/ncurses/man/legacy_coding.3x
deleted file mode 100644
index 42c49fe5e96c..000000000000
--- a/contrib/ncurses/man/legacy_coding.3x
+++ /dev/null
@@ -1,82 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey
-.\"
-.\" $Id: legacy_coding.3x,v 1.3 2006/12/24 15:12:55 tom Exp $
-.TH legacy_coding 3X ""
-.SH NAME
-\fBuse_legacy_coding\fR \- use terminal's default colors
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-.sp
-\fBint use_legacy_coding(int level);\fP
-.SH DESCRIPTION
-The
-.I use_legacy_coding()
-function is an extension to the curses library.
-It allows the caller to change the result of \fBunctrl\fP,
-and suppress related checks within the library that would normally
-cause nonprinting characters to be rendered in visible form.
-This affects only 8-bit characters.
-.PP
-The \fIlevel\fP parameter controls the result:
-.RS
-.TP 5
-0
-the library functions normally,
-rendering nonprinting characters as described in \fBunctrl\fP.
-.TP
-1
-the library ignores \fBisprintf\fP for codes in the range 160-255.
-.TP
-2
-the library ignores \fBisprintf\fP for codes in the range 128-255.
-It also modifies the output of \fBunctrl\fP, showing codes in the
-range 128-159 as is.
-.RE
-.SH RETURN VALUE
-If the screen has not been initialized,
-or the \fIlevel\fP parameter is out of range,
-the function returns \fBERR\fP.
-Otherwise, it returns the previous level: \fB0\fP, \fB1\fP or \fB2\fP.
-.SH PORTABILITY
-This routine is specific to ncurses.
-It was not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on ncurses extensions
-be conditioned using NCURSES_VERSION.
-.SH SEE ALSO
-\fBunctrl\fR.
-.SH AUTHOR
-Thomas Dickey (to support lynx's font-switching feature).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/make_sed.sh b/contrib/ncurses/man/make_sed.sh
deleted file mode 100755
index f2afac93ebc8..000000000000
--- a/contrib/ncurses/man/make_sed.sh
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/sh
-# $Id: make_sed.sh,v 1.9 2005/07/16 18:15:31 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1997-2005
-#
-# Construct a sed-script to perform renaming within man-pages. Originally
-# written in much simpler form, this one accounts for the common cases of
-# 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
-
-echo "# Do the TH lines" >>$RESULT
-sed -e 's/\//\/TH /' \
- -e 's/ / /' \
- -e 's/ / ""\/TH /' \
- -e 's/ / /' \
- -e 's/\/$/ ""\//' \
- $UPPER >>$RESULT
-
-echo "# Do the embedded references" >>$RESULT
-sed -e 's/</<fB/' \
- -e 's/ /\\\\fR(/' \
- -e 's/ /)\/fB/' \
- -e 's/ /\\\\fR(/' \
- -e 's/\/$/)\//' \
- $UPPER >>$RESULT
-
-echo "# Do the \fBxxx\fR references in the .NAME section" >>$RESULT
-sed -e 's/\\</^\\\\fB/' \
- -e 's/ [^ ]* /\\\\f[RP] -\/\\\\fB/' \
- -e 's/ .*$/\\\\fR -\//' \
- $UPPER >>$RESULT
-
-# Finally, send the result to standard output
-cat $RESULT
diff --git a/contrib/ncurses/man/man_db.renames b/contrib/ncurses/man/man_db.renames
deleted file mode 100644
index 5a09a03598b8..000000000000
--- a/contrib/ncurses/man/man_db.renames
+++ /dev/null
@@ -1,176 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: man_db.renames,v 0.40 2008/01/19 18:28:50 tom Exp $
-# 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_legacy.3x legacy.3ncurses
-curs_mouse.3x mouse.3ncurses
-curs_move.3x move.3ncurses
-curs_opaque.3x opaque.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_threads.3x threads.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
-key_defined.3x key_defined.3ncurses
-keybound.3x keybound.3ncurses
-keyok.3x keyok.3ncurses
-legacy_coding.3x legacy_coding.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:
-tack.1m tack.1
-#
-getty.1 getty.8
-scanf.3 scanf.3
-ttys.5 ttys.4
-termio.7 termios.3
-system.3 system.3
-regcomp.3x regcomp.3
-regexec.3x regexec.3
-#
-# vile:cfgmode
diff --git a/contrib/ncurses/man/manlinks.sed b/contrib/ncurses/man/manlinks.sed
deleted file mode 100644
index 78055b4c7c7d..000000000000
--- a/contrib/ncurses/man/manlinks.sed
+++ /dev/null
@@ -1,102 +0,0 @@
-# $Id: manlinks.sed,v 1.13 2008/01/19 23:31:17 tom Exp $
-##############################################################################
-# Copyright (c) 2000-2003,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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
-#
-# eliminate formatting controls that get in the way
-/^'\\"/d
-/\.\\"/d
-/^\.br/d
-/^\.sp/d
-/typedef/d
-s/^\.IX//
-s/\\f.//g
-s/[:,]/ /g
-#
-# eliminate unnecessary whitespace, convert multiple blanks to single space
-s/^[ ][ ]*//
-s/[ ][ ]*$//
-s/[ ][ ]*/ /g
-#
-# convert ".SH" into a more manageable form
-s/\.SH[ ][ ]*/.SH_(/
-#
-# in ".SH NAME"
-# change "\-" to "-", eliminate text after "-", and split the remaining lines
-# at each space, making a list of names:
-/^\.SH_(NAME/,/^\.SH_(SYNOPSIS/{
-s/\\-.*/ -/
-/ -/{
-s/ -.*//
-s/ /\
-/g
-}
-/^-/{
-d
-}
-s/ /\
-/g
-}
-#
-# in ".SH SYNOPSIS"
-# remove any line that does not contain a '(', since we only want functions.
-# then strip off return-type of each function.
-# finally, remove the parameter list, which begins with a '('.
-/^\.SH_(SYNOPSIS/,/^\.SH_(DESCRIPTION/{
-/^[^(]*$/d
-# reduce
-# .B "int add_wch( const cchar_t *\fIwch\fB );"
-# to
-# add_wch( const cchar_t *\fIwch\fB );"
-s/^\([^ (]* [^ (]* [*]*\)//g
-s/^\([^ (]* [*]*\)//g
-# trim blanks in case we have
-# void (*) (FORM *) field_init(const FORM *form);
-s/) (/)(/g
-# reduce stuff like
-# void (*)(FORM *) field_init(const FORM *form);
-# to
-# field_init(const FORM *form);
-s/^\(([^)]*)\)\(([^)]*)\)*[ ]*//g
-# rename marker temporarily
-s/\.SH_(/.SH_/
-# kill lines with ");", and trim off beginning of argument list.
-s/[()].*//
-# rename marker back
-s/\.SH_/.SH_(/
-}
-#
-# delete ".SH DESCRIPTION" and following lines
-/^\.SH_(DESCRIPTION/,${
-d
-}
-#
-# delete any remaining directives
-/^\./d
diff --git a/contrib/ncurses/man/menu.3x b/contrib/ncurses/man/menu.3x
deleted file mode 100644
index 17d6fc120cba..000000000000
--- a/contrib/ncurses/man/menu.3x
+++ /dev/null
@@ -1,193 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.19 2006/11/04 18:38:29 tom Exp $
-.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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_NO_MATCH
-Character failed to match.
-.TP 5
-.B E_NO_ROOM
-Menu is too large for its window.
-.TP 5
-.B E_NOT_CONNECTED
-No items are connected to the menu.
-.TP 5
-.B E_NOT_POSTED
-The menu has not been posted.
-.TP 5
-.B E_NOT_SELECTABLE
-The designated item cannot be selected.
-.TP 5
-.B E_POSTED
-The menu is already posted.
-.TP 5
-.B E_REQUEST_DENIED
-The menu driver could not process the request.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_UNKNOWN_COMMAND
-The menu driver code saw an unknown request code.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-.PP
-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
-usually give a link-error).
-.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.
-.SH SEE ALSO
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/menu_attributes.3x b/contrib/ncurses/man/menu_attributes.3x
deleted file mode 100644
index d96ea234fd84..000000000000
--- a/contrib/ncurses/man/menu_attributes.3x
+++ /dev/null
@@ -1,100 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-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.
-.PP
-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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-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/contrib/ncurses/man/menu_cursor.3x b/contrib/ncurses/man/menu_cursor.3x
deleted file mode 100644
index 4ade0bf96269..000000000000
--- a/contrib/ncurses/man/menu_cursor.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/11/04 17:13:57 tom Exp $
-.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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_NOT_POSTED
-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/contrib/ncurses/man/menu_driver.3x b/contrib/ncurses/man/menu_driver.3x
deleted file mode 100644
index bf7d8770a449..000000000000
--- a/contrib/ncurses/man/menu_driver.3x
+++ /dev/null
@@ -1,201 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2007/06/02 22:50:09 tom Exp $
-.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 is 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.
-.SS MOUSE HANDLING
-.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.
-.PP
-If you click above the display region of the menu:
-.RS
-.TP
-a REQ_SCR_ULINE is generated for a single click,
-.TP
-a REQ_SCR_UPAGE is generated for a double-click and
-.TP
-a REQ_FIRST_ITEM is generated for a triple-click.
-.RE
-.PP
-If you click below the display region of the menu:
-.RS
-.TP
-a REQ_SCR_DLINE is generated for a single click,
-.TP
-a REQ_SCR_DPAGE is generated for a double-click and
-.TP
-a REQ_LAST_ITEM is generated for a triple-click.
-.RE
-.PP
-If you click at an item inside the display area of the menu:
-.RS
-.TP 3
--
-the menu cursor is positioned to that item.
-.TP 3
--
-If you double-click 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 is exactly the purpose of this return value to signal that an
-application specific command should be executed.
-.TP 3
--
-If a translation
-into a request was done, \fBmenu_driver\fR returns the result of this request.
-.RE
-.PP
-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.
-.SS APPLICATION-DEFINED COMMANDS
-.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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_NOT_POSTED
-The menu has not been posted.
-.TP 5
-.B E_UNKNOWN_COMMAND
-The menu driver code saw an unknown request code.
-.TP 5
-.B E_NO_MATCH
-Character failed to match.
-.TP 5
-.B E_REQUEST_DENIED
-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/contrib/ncurses/man/menu_format.3x b/contrib/ncurses/man/menu_format.3x
deleted file mode 100644
index f4d456f6f960..000000000000
--- a/contrib/ncurses/man/menu_format.3x
+++ /dev/null
@@ -1,87 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_POSTED
-The menu is already posted.
-.TP 5
-.B E_NOT_CONNECTED
-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/contrib/ncurses/man/menu_hook.3x b/contrib/ncurses/man/menu_hook.3x
deleted file mode 100644
index 204e1ec41500..000000000000
--- a/contrib/ncurses/man/menu_hook.3x
+++ /dev/null
@@ -1,101 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2007/02/24 17:34:08 tom Exp $
-.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, Menu_Hook func);
-.br
-Menu_Hook item_init(const MENU *menu);
-.br
-int set_item_term(MENU *menu, Menu_Hook func);
-.br
-Menu_Hook item_term(const MENU *menu);
-.br
-int set_menu_init(MENU *menu, Menu_Hook func);
-.br
-Menu_Hook menu_init(const MENU *menu);
-.br
-int set_menu_term(MENU *menu, Menu_Hook func);
-.br
-Menu_Hook 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.
-.PP
-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).
-.PP
-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).
-.PP
-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).
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/menu_items.3x b/contrib/ncurses/man/menu_items.3x
deleted file mode 100644
index 091534385368..000000000000
--- a/contrib/ncurses/man/menu_items.3x
+++ /dev/null
@@ -1,93 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.7 2006/11/04 18:35:31 tom Exp $
-.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.
-.PP
-The function \fBmenu_items\fR returns the item array of the given menu.
-.PP
-The function \fBitem_count\fR returns the count of items in \fImenu\fR.
-.SH RETURN VALUES
-The function \fBmenu_items\fR returns a pointer (which may be \fBNULL\fR).
-It does not set errno.
-.PP
-The function \fBitem_count\fR returns \fBERR\fR (the general \fBcurses\fR error
-return value) if its \fImenu\fP parameter is \fBNULL\fP.
-.PP
-The function \fBset_menu_items\fR returns one of the following codes on error:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_NOT_CONNECTED
-No items are connected to the menu.
-.TP 5
-.B E_POSTED
-The menu is already posted.
-.TP 5
-.B E_SYSTEM_ERROR
-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.
-.PP
-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/contrib/ncurses/man/menu_mark.3x b/contrib/ncurses/man/menu_mark.3x
deleted file mode 100644
index 1db2b3ee1974..000000000000
--- a/contrib/ncurses/man/menu_mark.3x
+++ /dev/null
@@ -1,86 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2006/11/04 18:33:18 tom Exp $
-.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.
-.PP
-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.
-.PP
-The default string is "-" (a dash). Calling \fBset_menu_mark\fR with
-a non-\fBNULL\fR menu argument will change this default.
-.PP
-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 a pointer (which may be \fBNULL\fR).
-It does not set errno.
-.PP
-The function \fBset_menu_mark\fR may return the following error codes:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/menu_new.3x b/contrib/ncurses/man/menu_new.3x
deleted file mode 100644
index c2b98e499055..000000000000
--- a/contrib/ncurses/man/menu_new.3x
+++ /dev/null
@@ -1,86 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2006/11/04 18:31:37 tom Exp $
-.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).
-.PP
-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.
-It sets errno according to the function's failure:
-.TP 5
-.B E_NOT_CONNECTED
-No items are connected to the menu.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred, e.g., malloc failure.
-.PP
-The function \fBfree_menu\fR returns one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_POSTED
-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/contrib/ncurses/man/menu_opts.3x b/contrib/ncurses/man/menu_opts.3x
deleted file mode 100644
index dc927c47700c..000000000000
--- a/contrib/ncurses/man/menu_opts.3x
+++ /dev/null
@@ -1,104 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2007/02/24 17:33:59 tom Exp $
-.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, Menu_Options opts);
-.br
-int menu_opts_on(MENU *menu, Menu_Options opts);
-.br
-int menu_opts_off(MENU *menu, Menu_Options opts);
-.br
-Menu_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).
-.PP
-The function \fBmenu_opts_on\fR turns on the given option bits, and leaves
-others alone.
-.PP
-The function \fBmenu_opts_off\fR turns off the given option bits, and leaves
-others alone.
-.PP
-The function \fBmenu_opts\fR returns the menu's current option bits.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_POSTED
-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/contrib/ncurses/man/menu_pattern.3x b/contrib/ncurses/man/menu_pattern.3x
deleted file mode 100644
index 50dee87a1e84..000000000000
--- a/contrib/ncurses/man/menu_pattern.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/11/04 18:25:24 tom Exp $
-.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).
-.PP
-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.
-.PP
-The function \fBmenu_pattern\fR returns the pattern buffer of the given
-\fImenu\fR.
-.SH RETURN VALUE
-The function \fBmenu_pattern\fR returns a pointer, which is \fBNULL\fR if the \fImenu\fP parameter is \fBNULL\fP.
-Otherwise, it is a pointer to a string which is empty if no pattern has been set.
-It does not set errno.
-.PP
-The function \fBset_menu_pattern\fR may return the following error codes:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_NOT_CONNECTED
-No items are connected to menu.
-.TP 5
-.B E_NO_MATCH
-Character failed to match.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/menu_post.3x b/contrib/ncurses/man/menu_post.3x
deleted file mode 100644
index e47facc9e4d9..000000000000
--- a/contrib/ncurses/man/menu_post.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-The function \fBunpost_menu\fR erases menu from its associated subwindow.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_POSTED
-The menu has already been posted.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_NO_ROOM
-Menu is too large for its window. You should consider to use
-\fBset_menu_format()\fR to solve the problem.
-.TP 5
-.B E_NOT_POSTED
-The menu has not been posted.
-.TP 5
-.B E_NOT_CONNECTED
-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/contrib/ncurses/man/menu_requestname.3x b/contrib/ncurses/man/menu_requestname.3x
deleted file mode 100644
index 1345aa784851..000000000000
--- a/contrib/ncurses/man/menu_requestname.3x
+++ /dev/null
@@ -1,71 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.7 2006/11/04 17:56:09 tom Exp $
-.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.
-It does not set errno.
-.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/contrib/ncurses/man/menu_spacing.3x b/contrib/ncurses/man/menu_spacing.3x
deleted file mode 100644
index dfe03a8a55b1..000000000000
--- a/contrib/ncurses/man/menu_spacing.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2004/12/11 23:39:07 tom Exp $
-.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 the blank lines between item rows, these lines
-will contain the pad character in the appropriate positions.
-\fBspc_columns\fR controls the number of blanks between columns of items. It must not
-be larger than TABSIZE.
-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/contrib/ncurses/man/menu_userptr.3x b/contrib/ncurses/man/menu_userptr.3x
deleted file mode 100644
index b7be2adcd8d0..000000000000
--- a/contrib/ncurses/man/menu_userptr.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/11/04 18:21:03 tom Exp $
-.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
-\fBmenu_userptr\fR returns a pointer (which may be \fBNULL\fR).
-It does not set errno.
-.PP
-\fBset_menu_userptr\fP returns \fBE_OK\fP (success).
-.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.
-.PP
-The user pointer is a void pointer.
-We chose not to 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/contrib/ncurses/man/menu_win.3x b/contrib/ncurses/man/menu_win.3x
deleted file mode 100644
index aa356e18de7e..000000000000
--- a/contrib/ncurses/man/menu_win.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-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.
-.PP
-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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_POSTED
-The menu has already been posted.
-.TP 5
-.B E_NOT_CONNECTED
-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/contrib/ncurses/man/mitem_current.3x b/contrib/ncurses/man/mitem_current.3x
deleted file mode 100644
index 979f401341fe..000000000000
--- a/contrib/ncurses/man/mitem_current.3x
+++ /dev/null
@@ -1,102 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.11 2006/11/04 18:18:19 tom Exp $
-.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.
-.PP
-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.
-.PP
-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 a pointer (which may be \fBNULL\fR).
-It does not set errno.
-.PP
-\fBtop_row\fR and \fBitem_index\fR return \fBERR\fR (the general \fBcurses\fR
-error value) if their \fImenu\fP parameter is \fBNULL\fP.
-.PP
-\fBset_current_item\fR and \fBset_top_row\fR return one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_BAD_STATE
-Routine was called from an initialization or termination function.
-.TP 5
-.B E_NOT_CONNECTED
-No items are connected to the menu.
-.TP 5
-.B E_SYSTEM_ERROR
-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.
-.PP
-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/contrib/ncurses/man/mitem_name.3x b/contrib/ncurses/man/mitem_name.3x
deleted file mode 100644
index 12009edace35..000000000000
--- a/contrib/ncurses/man/mitem_name.3x
+++ /dev/null
@@ -1,65 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.6 2006/11/04 17:53:40 tom Exp $
-.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 return a pointer (which may be \fBNULL\fR).
-They do not set errno.
-.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/contrib/ncurses/man/mitem_new.3x b/contrib/ncurses/man/mitem_new.3x
deleted file mode 100644
index c0fa6edcf64a..000000000000
--- a/contrib/ncurses/man/mitem_new.3x
+++ /dev/null
@@ -1,90 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.10 2006/11/04 18:16:36 tom Exp $
-.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 careful 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.
-It sets errno according to the function's failure:
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred, e.g., malloc failure.
-.PP
-The function \fBfree_item\fR returns one of the following:
-.TP 5
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_BAD_ARGUMENT
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-.B E_CONNECTED
-Item is connected to a menu.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/mitem_opts.3x b/contrib/ncurses/man/mitem_opts.3x
deleted file mode 100644
index 2459dabfbae6..000000000000
--- a/contrib/ncurses/man/mitem_opts.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2007/02/24 17:33:32 tom Exp $
-.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, Item_Options opts);
-.br
-int item_opts_on(ITEM *item, Item_Options opts);
-.br
-int item_opts_off(ITEM *item, Item_Options opts);
-.br
-Item_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).
-.PP
-The function \fBitem_opts_on\fR turns on the given option bits, and leaves
-others alone.
-.PP
-The function \fBitem_opts_off\fR turns off the given option bits, and leaves
-others alone.
-.PP
-The function \fBitem_opts\fR returns the item's current option bits.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-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/contrib/ncurses/man/mitem_userptr.3x b/contrib/ncurses/man/mitem_userptr.3x
deleted file mode 100644
index 58951930244c..000000000000
--- a/contrib/ncurses/man/mitem_userptr.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.9 2006/11/04 18:21:03 tom Exp $
-.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
-The function \fBitem_userptr\fR returns a pointer (possibly \fBNULL\fR).
-It does not set errno.
-.PP
-The \fBset_item_userptr\fP always returns \fBE_OK\fP (success).
-.
-.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.
-.PP
-The user pointer is a void pointer.
-We chose not to 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/contrib/ncurses/man/mitem_value.3x b/contrib/ncurses/man/mitem_value.3x
deleted file mode 100644
index 748fd528675c..000000000000
--- a/contrib/ncurses/man/mitem_value.3x
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.8 2006/11/04 17:12:00 tom Exp $
-.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.
-.PP
-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
-.B E_OK
-The routine succeeded.
-.TP 5
-.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR).
-.TP 5
-.B E_REQUEST_DENIED
-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/contrib/ncurses/man/mitem_visible.3x b/contrib/ncurses/man/mitem_visible.3x
deleted file mode 100644
index 8f9039c2f6db..000000000000
--- a/contrib/ncurses/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: mitem_visible.3x,v 1.5 1998/11/29 01:12:55 Rick.Ohnemus Exp $
-.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/contrib/ncurses/man/ncurses.3x b/contrib/ncurses/man/ncurses.3x
deleted file mode 100644
index ac3d049528c2..000000000000
--- a/contrib/ncurses/man/ncurses.3x
+++ /dev/null
@@ -1,1141 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.89 2007/09/01 18:57:29 tom Exp $
-.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.
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.PP
-The \fBncurses\fR library emulates the \fBcurses\fR(3X) library of
-System V Release 4 UNIX,
-and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
-XSI stands for X/Open System Interfaces Extension.
-The \fBncurses\fR library is freely redistributable in source form.
-Differences from the SVr4
-curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
-described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
-of individual man pages.
-.PP
-The \fBncurses\fR library also provides many useful extensions,
-i.e., features which cannot be implemented by a simple add-on library
-but which require access to the internals of the library.
-.PP
-A program using these routines must be linked with the \fB-lncurses\fR option,
-or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
-(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.
-See also the section on \fBALTERNATE CONFIGURATIONS\fP.
-.PP
-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.
-.PP
-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:
-.sp
- \fBinitscr(); cbreak(); noecho();\fR
-.sp
-Most programs would additionally use the sequence:
-.sp
- \fBnonl();\fR
- \fBintrflush(stdscr, FALSE);\fR
- \fBkeypad(stdscr, TRUE);\fR
-.sp
-Before a \fBcurses\fR program is run, the tab stops of the terminal
-should be set and its initialization strings, if defined, must be output.
-This can be done by executing the \fBtput init\fR command
-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.]
-.PP
-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.
-.PP
-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.
-.PP
-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 those, 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.
-.PP
-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.
-.PP
-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.
-.PP
-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.
-.PP
-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 affect a program running in an AT&T 630 layer,
-for example, where the size of a
-screen is changeable (see \fBENVIRONMENT\fR).
-.PP
-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
-.sp
- \fB\*d/a/att4424\fR.
-.sp
-(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
-.sp
- \fB$HOME/myterms/a/att4424\fR,
-.sp
-and if that fails, it then checks
-.sp
- \fB\*d/a/att4424\fR.
-.sp
-This is useful for developing experimental definitions or when write
-permission in \fB\*d\fR is not available.
-.PP
-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.
-.PP
-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.
-.PP
-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).
-.PP
-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.
-.PP
-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.
-.PP
-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.
-Most of the data types used in the library routines,
-such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
-are defined in \fB<curses.h>\fR.
-Types used for the terminfo routines such as
-\fBTERMINAL\fR are defined in \fB<term.h>\fR.
-.PP
-This manual page describes functions which may appear in any configuration
-of the library.
-There are two common configurations of the library:
-.RS
-.TP 5
-ncurses
-the "normal" library, which handles 8-bit characters.
-The normal (8-bit) library stores characters combined with attributes
-in \fBchtype\fP data.
-.IP
-Attributes alone (no corresponding character) may be stored in \fBchtype\fP
-or the equivalent \fBattr_t\fP data.
-In either case, the data is stored in something like an integer.
-.IP
-Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
-.TP 5
-ncursesw
-the so-called "wide" library, which handles multibyte characters
-(See the section on \fBALTERNATE CONFIGURATIONS\fP).
-The "wide" library includes all of the calls from the "normal" library.
-It adds about one third more calls using data types which store
-multibyte characters:
-.RS
-.TP 5
-.B cchar_t
-corresponds to \fBchtype\fP.
-However it is a structure, because more data is stored than can fit into
-an integer.
-The characters are large enough to require a full integer value - and there
-may be more than one character per cell.
-The video attributes and color are stored in separate fields of the structure.
-.IP
-Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
-.TP 5
-.B wchar_t
-stores a "wide" character.
-Like \fBchtype\fP, this may be an integer.
-.TP 5
-.B wint_t
-stores a \fBwchar_t\fP or \fBWEOF\fP - not the same, though both may have
-the same size.
-.RE
-.IP
-The "wide" library provides new functions which are analogous to
-functions in the "normal" library.
-There is a naming convention which relates many of the normal/wide variants:
-a "_w" is inserted into the name.
-For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
-.RE
-.PP
-.\"
-.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.
-.PP
-.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)
-getattrs/\fBcurs_attr\fR(3X)
-getbegx/\fBcurs_legacy\fR(3X)*
-getbegy/\fBcurs_legacy\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)
-getcurx/\fBcurs_legacy\fR(3X)*
-getcury/\fBcurs_legacy\fR(3X)*
-getmaxx/\fBcurs_legacy\fR(3X)*
-getmaxy/\fBcurs_legacy\fR(3X)*
-getmaxyx/\fBcurs_getyx\fR(3X)
-getmouse/\fBcurs_mouse\fR(3X)*
-getn_wstr/\fBcurs_get_wstr\fR(3X)
-getnstr/\fBcurs_getstr\fR(3X)
-getparx/\fBcurs_legacy\fR(3X)*
-getpary/\fBcurs_legacy\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_cleared/\fBcurs_opaque\fR(3X)*
-is_idcok/\fBcurs_opaque\fR(3X)*
-is_idlok/\fBcurs_opaque\fR(3X)*
-is_immedok/\fBcurs_opaque\fR(3X)*
-is_keypad/\fBcurs_opaque\fR(3X)*
-is_leaveok/\fBcurs_opaque\fR(3X)*
-is_linetouched/\fBcurs_touch\fR(3X)
-is_nodelay/\fBcurs_opaque\fR(3X)*
-is_notimeout/\fBcurs_opaque\fR(3X)*
-is_scrollok/\fBcurs_opaque\fR(3X)*
-is_syncok/\fBcurs_opaque\fR(3X)*
-is_term_resized/\fBresizeterm\fR(3X)*
-is_wintouched/\fBcurs_touch\fR(3X)
-isendwin/\fBcurs_initscr\fR(3X)
-key_defined/\fBkey_defined\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)
-nofilter/\fBcurs_util\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)*
-use_legacy_coding/\fBlegacy_coding\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.
-.PP
-All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
-\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
-The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
-\fBgetmaxyx\fR are undefined (i.e., these should not be used as the
-right-hand side of assignment statements).
-.PP
-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 \fBCOLUMNS\fP value nor the terminal's screen size is available,
-\fBncurses\fR uses the size which may be specified in the terminfo database
-(i.e., the \fBcols\fR capability).
-.IP
-It is important that your application use a correct size for the screen.
-This is not always possible because your application may be
-running on a host which does not honor NAWS (Negotiations About Window
-Size), or because you are temporarily running as another user.
-However, setting \fBCOLUMNS\fP and/or \fBLINES\fP overrides the library's
-use of the screen size obtained from the operating system.
-.IP
-Either \fBCOLUMNS\fP or \fBLINES\fP symbols may be specified independently.
-This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
-e.g., xterm which commonly specifies a 65 line screen.
-For best results, \fBlines\fR and \fBcols\fR should not be specified in
-a terminal description for terminals which are run as emulations.
-.IP
-Use the \fBuse_env\fR function to disable all use of external environment
-(including system calls) to determine the screen size.
-.TP 5
-ESCDELAY
-Specifies the total time, in milliseconds, for which ncurses will
-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.
-.IP
-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.
-.IP
-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.
-.IP
-In addition to the environment variable,
-this implementation provides a global variable with the same name.
-Portable applications should not rely upon the presence of ESCDELAY
-in either form,
-but setting the environment variable rather than the global variable
-does not create problems when compiling an application.
-.TP 5
-HOME
-Tells \fBncurses\fR where your home directory is.
-That is where it may read and write auxiliary terminal descriptions:
-.IP
-$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:
-.sp
-1 = left
-.br
-2 = right
-.br
-3 = middle.
-.sp
-This symbol lets you customize the mouse.
-The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321.
-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 \fBdefault_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_HARD_TABS
-\fBNcurses\fP may use tabs as part of the cursor movement optimization.
-In some cases,
-your terminal driver may not handle these properly.
-Set this environment variable to disable the feature.
-You can also adjust your \fBstty\fP settings to avoid the problem.
-.TP 5
-NCURSES_NO_MAGIC_COOKIES
-Some terminals use a magic-cookie feature which requires special handling
-to make highlighting and other video attributes display properly.
-You can suppress the highlighting entirely for these terminals by
-setting this environment variable.
-.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.
-.IP
-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.
-.IP
-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_NO_UTF8_ACS
-During initialization, the \fBncurses\fR library
-checks for special cases where VT100 line-drawing (and the corresponding
-alternate character set capabilities) described in the terminfo are known
-to be missing.
-Specifically, when running in a UTF-8 locale,
-the Linux console emulator and the GNU screen program ignore these.
-Ncurses checks the TERM environment variable for these.
-For other special cases, you should set this environment variable.
-Doing this tells ncurses to use Unicode values which correspond to
-the VT100 line-drawing glyphs.
-That works for the special cases cited,
-and is likely to work for terminal emulators.
-.IP
-When setting this variable, you should set it to a nonzero value.
-Setting it to zero (or to a nonnumber)
-disables the special check for Linux and screen.
-.TP 5
-NCURSES_TRACE
-During initialization, the \fBncurses\fR debugging library
-checks the NCURSES_TRACE symbol.
-If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
-function, using that value as the argument.
-.IP
-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.
-.IP
-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 ALTERNATE CONFIGURATIONS
-Several different configurations are possible,
-depending on the configure script options used when building \fBncurses\fP.
-There are a few main options whose effects are visible to the applications
-developer using \fBncurses\fP:
-.TP 5
---disable-overwrite
-The standard include for \fBncurses\fP is as noted in \fBSYNOPSIS\fP:
-.RS
-.sp
-\fB#include <curses.h>\fR
-.RE
-.IP
-This option is used to avoid filename conflicts when \fBncurses\fP
-is not the main implementation of curses of the computer.
-If \fBncurses\fP is installed disabling overwrite, it puts its headers in
-a subdirectory, e.g.,
-.RS
-.sp
-\fB#include <ncurses/curses.h>\fR
-.RE
-.IP
-It also omits a symbolic link which would allow you to use \fB-lcurses\fP
-to build executables.
-.TP 5
---enable-widec
-The configure script renames the library and (if the \fB--disable-overwrite\fP
-option is used) puts the header files in a different subdirectory.
-All of the library names have a "w" appended to them,
-i.e., instead of
-.RS
-.sp
-\fB-lncurses\fR
-.RE
-.IP
-you link with
-.RS
-.sp
-\fB-lncursesw\fR
-.RE
-.IP
-You must also define \fB_XOPEN_SOURCE_EXTENDED\fP when compiling for the
-wide-character library to use the extended (wide-character) functions.
-The \fBcurses.h\fP file which is installed for the wide-character
-library is designed to be compatible with the normal library's header.
-Only the size of the \fBWINDOW\fP structure differs, and very few
-applications require more than a pointer to \fBWINDOW\fPs.
-If the headers are installed allowing overwrite,
-the wide-character library's headers should be installed last,
-to allow applications to be built using either library
-from the same set of headers.
-.TP 5
---with-shared
-.TP
---with-normal
-.TP
---with-debug
-.TP
---with-profile
-The shared and normal (static) library names differ by their suffixes,
-e.g., \fBlibncurses.so\fP and \fBlibncurses.a\fP.
-The debug and profiling libraries add a "_g" and a "_p" to the root
-names respectively,
-e.g., \fBlibncurses_g.a\fP and \fBlibncurses_p.a\fP.
-.TP 5
---with-trace
-The \fBtrace\fP function normally resides in the debug library,
-but it is sometimes useful to configure this in the shared library.
-Configure scripts should check for the function's existence rather
-than assuming it is always in the debug library.
-.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.
-.PP
-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.
-.PP
-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.
-.PP
-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)
-\fBkey_defined\fR(3X),
-and \fBkeyok\fR(3X) manual pages for details.
-.PP
-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.
-.PP
-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 XSI
-Curses.
-The EXTENDED XSI Curses functionality
-(including color support) is supported.
-.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
-This implementation also contains several extensions:
-.RS 5
-.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
-The WINDOW structure's internal details can be hidden from application
-programs.
-See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
-.RE
-.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 sending NUL bytes.
-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.
-.PP
-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/contrib/ncurses/man/panel.3x b/contrib/ncurses/man/panel.3x
deleted file mode 100644
index 719a9e636bc5..000000000000
--- a/contrib/ncurses/man/panel.3x
+++ /dev/null
@@ -1,190 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.14 2007/05/12 20:45:20 tom Exp $
-.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, hide, 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
-.B new_panel(win)
-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
-.B update_panels()
-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
-.B del_panel(pan)
-removes the given panel from the stack and deallocates the
-\fBPANEL\fR structure (but not its associated window).
-.TP
-.B hide_panel(pan)
-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
-.B panel_hidden(pan)
-returns TRUE if the panel is in the panel stack,
-FALSE if it is not.
-If the panel is a null pointer, return ERR.
-.TP
-.B show_panel(pan)
-makes a hidden panel visible by placing it on top of the panels in the
-panel stack. See COMPATIBILITY below.
-.TP
-.B top_panel(pan)
-puts the given visible panel on top of all panels in the stack. See
-COMPATIBILITY below.
-.TP
-.B bottom_panel(pan)
-puts panel at the bottom of all panels.
-.TP
-.B move_panel(pan,starty,startx)
-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
-.B replace_panel(pan,window)
-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
-.B panel_above(pan)
-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
-.B panel_below(pan)
-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
-.B set_panel_userptr(pan,ptr)
-sets the panel's user pointer.
-.TP
-.B panel_userptr(pan)
-returns the user pointer for a given panel.
-.TP
-.B panel_window(pan)
-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
-usually give a link-error).
-.SH FILES
-.P
-panel.h
-interface for the panels library
-.P
-libpanel.a
-the panels library itself
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.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/contrib/ncurses/man/resizeterm.3x b/contrib/ncurses/man/resizeterm.3x
deleted file mode 100644
index 888eaaf318d1..000000000000
--- a/contrib/ncurses/man/resizeterm.3x
+++ /dev/null
@@ -1,100 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be 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-2005
-.\"
-.\" $Id: resizeterm.3x,v 1.11 2005/06/25 22:19:42 tom Exp $
-.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
-.sp
-\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.
-.LP
-Most of the work is done by the inner function \fBresize_term\fR.
-The outer function \fBresizeterm\fR adds bookkeeping for the SIGWINCH handler.
-When resizing the windows,
-\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.
-.LP
-A support function \fBis_term_resized\fR is provided so that applications
-can check if the \fBresize_term\fR function would modify the window structures.
-It returns TRUE if the windows would be modified, and FALSE otherwise.
-.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.
-.PP
-If the environment variables \fBLINES\fP or \fBCOLUMNS\fP are set,
-this overrides the library's use of the window size obtained from
-the operating system.
-Thus, even if a SIGWINCH is received,
-no screen size change may be recorded.
-In that case, no \fBKEY_RESIZE\fP is queued for the next call to \fBgetch\fP;
-an \fBERR\fP will be returned instead.
-.SH SEE ALSO
-\fBwresize\fR(3X).
-.SH AUTHOR
-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/contrib/ncurses/man/term.5 b/contrib/ncurses/man/term.5
deleted file mode 100644
index 19af62a350ed..000000000000
--- a/contrib/ncurses/man/term.5
+++ /dev/null
@@ -1,283 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.19 2006/12/24 18:12:38 tom Exp $
-.TH term 5
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-term \- format of compiled term file.
-.SH SYNOPSIS
-.B term
-.SH DESCRIPTION
-.SS STORAGE LOCATION
-Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
-Two configurations are supported (when building the ncurses libraries):
-.TP 5
-.B directory tree
-A two-level scheme is used to avoid a linear search
-of a huge \s-1UNIX\s+1 system directory: \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.
-.TP 5
-.B hashed database
-Using Berkeley database, two types of records are stored:
-the terminfo data in the same format as stored in a directory tree with
-the terminfo's primary name as a key,
-and records containing only aliases pointing to the primary name.
-.IP
-If built to write hashed databases,
-ncurses can still read terminfo databases organized as a directory tree,
-but cannot write entries into the directory tree.
-It can write (or rewrite) entries in the hashed database.
-.IP
-ncurses distinguishes the two cases in the TERMINFO and TERMINFO_DIRS
-environment variable by assuming a directory tree for entries that
-correspond to an existing directory,
-and hashed database otherwise.
-.SS STORAGE FORMAT
-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
-.B @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
-.RS 5
-.TP 5
-(1) the magic number (octal 0432);
-.TP 5
-(2) the size, in bytes, of the names section;
-.TP 5
-(3) the number of bytes in the boolean section;
-.TP 5
-(4) the number of short integers in the numbers section;
-.TP 5
-(5) the number of offsets (short integers) in the strings section;
-.TP 5
-(6) the size, in bytes, of the string table.
-.RE
-.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.
-.SS EXTENDED STORAGE FORMAT
-The previous section describes the conventional terminfo binary format.
-With some minor variations of the offsets (see PORTABILITY),
-the same binary format is used in all modern UNIX systems.
-Each system uses a predefined set of boolean, number or string capabilities.
-.PP
-The ncurses libraries and applications support extended terminfo binary format,
-allowing users to define capabilities which are loaded at runtime. This
-extension is made possible by using the fact that the other implementations
-stop reading the terminfo data when they have reached the end of the size given
-in the header.
-ncurses checks the size, and if it exceeds that due to the predefined data,
-continues to parse according to its own scheme.
-.PP
-First, it reads the extended header (5 short integers):
-.RS 5
-.TP 5
-(1)
-count of extended boolean capabilities
-.TP 5
-(2)
-count of extended numeric capabilities
-.TP 5
-(3)
-count of extended string capabilities
-.TP 5
-(4)
-size of the extended string table in bytes.
-.TP 5
-(5)
-last offset of the extended string table in bytes.
-.RE
-.PP
-Using the counts and sizes, ncurses allocates arrays and reads data
-for the extended capabilties in the same order as the header information.
-.PP
-The extended string table contains values for string capabilities.
-After the end of these values, it contains the names for each of
-the extended capabilities in order, e.g., booleans, then numbers and
-finally strings.
-.
-.SH PORTABILITY
-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.
-.SH EXAMPLE
-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
-.SH LIMITS
-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).
-.SH AUTHORS
-Thomas E. Dickey
-.br
-extended terminfo format for ncurses 5.0
-.br
-hashed database support for ncurses 5.6
-.sp
-Eric S. Raymond
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/term.7 b/contrib/ncurses/man/term.7
deleted file mode 100644
index 7eda6fbd5870..000000000000
--- a/contrib/ncurses/man/term.7
+++ /dev/null
@@ -1,204 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.18 2007/06/02 20:40:07 tom Exp $
-.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
-.sp
- @TOE@ | more
-.sp
-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 \fB@INFOCMP@\fR(1M) command.
-Invoke it as follows:
-.sp
- @INFOCMP@ \fIentry-name\fR
-.sp
-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 does not 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/contrib/ncurses/man/terminfo.head b/contrib/ncurses/man/terminfo.head
deleted file mode 100644
index 7455675ab953..000000000000
--- a/contrib/ncurses/man/terminfo.head
+++ /dev/null
@@ -1,107 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.16 2007/03/04 00:09:46 tom Exp $
-.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.
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.PP
-Entries in
-.I terminfo
-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.
-.PP
-Lines beginning with a `#' in the first column are treated as comments.
-While comment lines are legal at any point, the output of \fB@CAPTOINFO@\fP
-and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP)
-will move comments so they occur only between entries.
-.PP
-Newlines and leading tabs may be used for formatting entries for readability.
-These are removed from parsed entries.
-The \fB@INFOCMP@\ -f\fP option relies on this to format if-then-else expressions:
-the result can be read by \fB@TIC@\fP.
-.PP
-Terminal names (except for the last, verbose entry) should
-be chosen using the following conventions.
-The particular piece of hardware making up the terminal should
-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/contrib/ncurses/man/terminfo.tail b/contrib/ncurses/man/terminfo.tail
deleted file mode 100644
index d06d3a963a63..000000000000
--- a/contrib/ncurses/man/terminfo.tail
+++ /dev/null
@@ -1,1703 +0,0 @@
-.\" $Id: terminfo.tail,v 1.49 2008/02/16 20:57:43 tom Exp $
-.\" Beginning of terminfo.tail file
-.\" This file is part of ncurses.
-.\" See "terminfo.head" for copyright.
-.ps +1
-.
-.SS A Sample Entry
-.
-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 -2
-\s-133\||\|tty33\||\|tty\||\|model 33 teletype,
- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
-.\".in +2
-.ft R
-.PP
-while the Lear Siegler \s-1ADM-3\s0 is described as
-.PP
-.DT
-.nf
-.ft CW
-.\".in -2
-\s-1adm3\||\|3\||\|lsi adm3,
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,\s+1
-.\".in +2
-.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 (3)
-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.
-Print (e.g., "%d") is a special case.
-Other operations, including "%t" pop their operand from the stack.
-It is noted that more complex operations are often necessary,
-e.g., in the \fBsgr\fP string.
-.PP
-The \fB%\fR encodings have the following meanings:
-.PP
-.TP 5
-\s-1%%
-outputs `%'
-.TP
-%\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
-as in \fBprintf\fP, flags are [-+#] and space.
-Use a `:' to allow the next character to be a `-' flag,
-avoiding interpreting "%-" as an operator.
-.TP
-%c
-print pop() like %c in \fBprintf\fP
-.TP
-%s
-print pop() like %s in \fBprintf\fP
-.TP
-%p[1-9]
-push \fIi\fP'th parameter
-.TP
-%P[a-z]
-set dynamic variable [a-z] to pop()
-.TP
-%g[a-z]
-get dynamic variable [a-z] and push it
-.TP
-%P[A-Z]
-set static variable [a-z] to pop()
-.TP
-%g[A-Z]
-get static variable [a-z] and push it
-.IP
-The terms "static" and "dynamic" are misleading.
-Historically, these are simply two different sets of variables,
-whose values are not reset between calls to \fBtparm\fP.
-However, that fact is not documented in other implementations.
-Relying on it will adversely impact portability to other implementations.
-.TP
-%'\fIc\fP'
-char constant \fIc\fP
-.TP
-%{\fInn\fP}
-integer constant \fInn\fP
-.TP
-%l
-push strlen(pop)
-.TP
-%+ %- %* %/ %m
-arithmetic (%m is mod): push(pop() op pop())
-.TP
-%& %| %^
-bit operations (AND, OR and exclusive-OR): push(pop() op pop())
-.TP
-%= %> %<
-logical operations: push(pop() op pop())
-.TP
-%A, %O
-logical AND and OR operations (for conditionals)
-.TP
-%! %~
-unary operations (logical and bit complement): push(op pop())
-.TP
-%i
-add 1 to first two parameters (for ANSI terminals)
-.TP
-%? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %;
-This forms an if-then-else.
-The %e \fIelsepart\fP is optional.
-Usually the %? \fIexpr\fP part pushes a value onto the stack,
-and %t pops it from the stack, testing if it is nonzero (true).
-If it is zero (false), control passes to the %e (else) part.
-.IP
-It is possible to form else-if's a la Algol 68:
-.RS
-%? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %;
-.RE
-.IP
-where c\di\u are conditions, b\di\u are bodies.
-.IP
-Use the \fB-f\fP option of \fBtic\fP or \fB@INFOCMP@\fP to see
-the structure of if-the-else's.
-Some strings, e.g., \fBsgr\fP can be very complicated when written
-on one line.
-The \fB-f\fP option splits the string into lines with the parts indented.
-.PP
-Binary operations are in postfix form with the operands in the usual order.
-That is, to get x-5 one would use "%gx%{5}%-".
-%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.
-Also, some implementations rely on sgr being given if sgr0 is,
-Not all terminfo entries necessarily have an sgr string, however.
-Many terminfo entries are derived from termcap entries
-which have no sgr string.
-The only drawback to adding an sgr string is that termcap also
-assumes that sgr0 does not exit alternate character set mode.
-.PP
-Terminals with the ``magic cookie'' glitch
-.RB ( xmc )
-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:
-.RS
-.TP
-run the program
-.BR iprog
-.TP
-output
-.BR is1
-.BR is2
-.TP
-set the margins using
-.BR mgc ,
-.BR smgl
-and
-.BR smgr
-.TP
-set tabs using
-.B tbc
-and
-.BR hts
-.TP
-print the file
-.BR if
-.TP
-and finally
-output
-.BR is3 .
-.RE
-.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 .
-.PP
-A set of sequences that does a harder reset from a totally unknown state
-can be given as
-.BR rs1 ,
-.BR rs2 ,
-.BR rf
-and
-.BR rs3 ,
-analogous to
-.B is1 ,
-.B is2 ,
-.B if
-and
-.BR is3
-respectively.
-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
-The
-.IR reset
-program writes strings
-including
-.BR iprog ,
-etc., in the same order as the
-.IR init
-program, using
-.BR rs1 ,
-etc., instead of
-.BR is1 ,
-etc.
-If any of
-.BR rs1 ,
-.BR rs2 ,
-.BR rs3 ,
-or
-.BR rf
-reset capability strings are missing, the
-.IR reset
-program falls back upon the corresponding initialization capability string.
-.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 do not support either XON/XOFF or DTR
-handshaking, including hard copy terminals and some very archaic CRTs
-(including, for example, DEC VT100s).
-These may require padding characters
-after 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 do not have a speed limit.
-Padding information should still be included so that routines can
-make better decisions about relative costs, but actual pad characters will
-not be transmitted.
-.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 of \fBsetaf\fR/\fBsetab\fR 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
-The argument values of \fBsetf\fR/\fBsetb\fR historically correspond to
-a different mapping, i.e.,
-.TS H
-center;
-l c c c
-l l n l.
-\fBColor #define Value RGB\fR
-black \fBCOLOR_BLACK\fR 0 0, 0, 0
-blue \fBCOLOR_BLUE\fR 1 0,0,max
-green \fBCOLOR_GREEN\fR 2 0,max,0
-cyan \fBCOLOR_CYAN\fR 3 0,max,max
-red \fBCOLOR_RED\ \fR 4 max,0,0
-magenta \fBCOLOR_MAGENTA\fR 5 max,0,max
-yellow \fBCOLOR_YELLOW\fR 6 max,max,0
-white \fBCOLOR_WHITE\fR 7 max,max,max
-.TE
-It is important to not confuse the two sets of color capabilities;
-otherwise red/blue will be interchanged on the display.
-.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 4096-byte string-table maximum.
-Unfortunately, the termcap
-translations are much more strictly limited (to 1023 bytes), thus termcap translations
-of long terminfo entries can cause problems.
-.PP
-The man pages for 4.3BSD and older versions of \fBtgetent()\fP instruct the user to
-allocate a 1024-byte buffer for the termcap entry.
-The entry gets null-terminated by
-the termcap library, so that makes the maximum safe length for a termcap entry
-1k-1 (1023) bytes.
-Depending on what the application and the termcap library
-being used does, and where in the termcap file the terminal type that \fBtgetent()\fP
-is searching for is, several bad things can happen.
-.PP
-Some termcap libraries print a warning message or exit if they find an
-entry that's longer than 1023 bytes; others do not; others truncate the
-entries to 1023 bytes.
-Some application programs allocate more than
-the recommended 1K for the termcap entry; others do not.
-.PP
-Each termcap entry has two important sizes associated with it: before
-"tc" expansion, and after "tc" expansion.
-"tc" is the capability that
-tacks on another termcap entry to the end of the current one, to add
-on its capabilities.
-If a termcap entry does not use the "tc"
-capability, then of course the two lengths are the same.
-.PP
-The "before tc expansion" length is the most important one, because it
-affects more than just users of that particular terminal.
-This is the
-length of the entry as it exists in /etc/termcap, minus the
-backslash-newline pairs, which \fBtgetent()\fP 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 is the entry it wants,
-.TP 5
-*
-and \fBtgetent()\fP is searching for a terminal type that either is the
-long entry, appears in the termcap file after the long entry, or
-does not appear in the file at all (so that \fBtgetent()\fP has to search
-the whole termcap file).
-.PP
-Then \fBtgetent()\fP will overwrite memory, perhaps its stack, and probably core dump
-the program.
-Programs like telnet are particularly vulnerable; modern telnets
-pass along values like the terminal type automatically.
-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 \fBtgetent()\fP only does "tc" expansion once it is 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 is 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
-\fB@TIC@\fR(1M) 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, do not
-interpret the %A and %O operators in parameter strings.
-.PP
-SVr4/XPG4 do not specify whether \fBmsgr\fR licenses movement while in
-an alternate-character-set mode (such modes may, among other things, map
-CR and NL to characters that do not 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
-\fB@TIC@\fR(1M),
-\fB@INFOCMP@\fR(1M),
-\fBcurses\fR(3X),
-\fBprintf\fR(3),
-\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/contrib/ncurses/man/tic.1m b/contrib/ncurses/man/tic.1m
deleted file mode 100644
index 343ec323140d..000000000000
--- a/contrib/ncurses/man/tic.1m
+++ /dev/null
@@ -1,331 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.44 2006/12/24 17:59:11 tom Exp $
-.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\
-U\
-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.
-If the source is termcap, accept the 2-character names required by version 6.
-Otherwise these are ignored.
-.TP
-\fB-C\fR
-Force source translation to termcap format. Note: this differs from the \fB-C\fR
-option of \fB@INFOCMP@\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 \fB-I\fR or \fB-C\fR.)
-.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 5
-\fB-U\fR
-tells \fBtic\fP to not post-process the data after parsing the source file.
-Normally, it infers data which is commonly missing in older terminfo data,
-or in termcaps.
-.TP
-\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 parameter \fIn\fR is a number from 1 to 10, inclusive,
-indicating the desired level of detail of information.
-If \fIn\fR is omitted, the default level is 1.
-If \fIn\fR is specified and greater than 1, the level of
-detail is increased.
-.TP
-\fB-w\fR\fIn\fR
-specifies the width of the output.
-The parameter is optional.
-If it is omitted, it defaults to 60.
-.TP
-\fB-x\fR
-Treat unknown capabilities as user-defined.
-That is, if you supply a capability name which \fBtic\fP does not recognize,
-it will infer its type (boolean, number or string) from the syntax and
-make an extended table entry for that.
-User-defined capability strings
-whose name begins with ``k'' are treated as function keys.
-.TP
-\fIfile\fR
-contains one or more \fBterminfo\fR terminal descriptions in source
-format [see \fBterminfo\fR(\*n)]. Each description in the file
-describes the capabilities of a particular terminal.
-.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.
-.PP
-When a \fBuse\fR=\fIentry\fR-\fIname\fR field is discovered in a
-terminal entry currently being compiled, \fBtic\fR reads in the binary
-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.
-.PP
-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.
-.PP
-If the environment variable \fBTERMINFO\fR is set, the compiled
-results are placed there instead of \fB\*d\fR.
-.PP
-Total compiled entries cannot exceed 4096 bytes. The name field cannot
-exceed 512 bytes. 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.
-.PP
-The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR
-capabilities.
-This implementation of \fBtic\fR will find \fBuse\fR targets anywhere
-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.
-.PP
-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.
-.PP
-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 \fB-c\fR mode does not report bad use links.
-.PP
-System V does not compile entries to or read entries from your
-\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
-.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).
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/toe.1m b/contrib/ncurses/man/toe.1m
deleted file mode 100644
index 15303541dddc..000000000000
--- a/contrib/ncurses/man/toe.1m
+++ /dev/null
@@ -1,107 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.21 2008/01/05 20:57:16 tom Exp $
-.TH @TOE@ 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtoe\fR - table of (terminfo) entries
-.SH SYNOPSIS
-\fBtoe\fR [\fB-v\fR[\fIn\fR]] [\fB-ahuUV\fR] \fIfile...\fR
-.br
-.SH DESCRIPTION
-.PP
-With no options,
-\fBtoe\fR lists all available terminal types by primary name
-with descriptions.
-File arguments specify the directories to be scanned; if no
-such arguments are given,
-your default terminfo directory is scanned.
-If you also specify the \fB-h\fR option,
-a directory header will be issued as each
-directory is entered.
-.PP
-There are other options intended for use by terminfo file maintainers:
-.TP
-\fB-a\fR
-report on all of the terminal databases which ncurses would search,
-rather than only the first one that it finds.
-.TP
-\fB-u\fR \fIfile\fR
-says to write a report to the standard output,
-listing dependencies in the given terminfo/termcap source file.
-The 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 write a report to the standard output,
-listing reverse dependencies in the given terminfo/termcap source file.
-The 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,
-showing \fBtoe\fR's progress.
-The optional parameter \fIn\fR is a number from 1 to 10,
-interpreted as for \fB@TIC@\fR(1M).
-.TP
-\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).
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/tput.1 b/contrib/ncurses/man/tput.1
deleted file mode 100644
index bada0b1595ed..000000000000
--- a/contrib/ncurses/man/tput.1
+++ /dev/null
@@ -1,325 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.27 2006/12/24 18:11:31 tom Exp $
-.TH @TPUT@ 1 ""
-.ds d @TERMINFO@
-.ds n 1
-.SH NAME
-\fB@TPUT@\fR, \fBreset\fR - initialize a terminal or query terminfo database
-.SH SYNOPSIS
-\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
-.br
-\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBinit\fR
-.br
-\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBreset\fR
-.br
-\fB@TPUT@\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
-.br
-\fB@TPUT@ -S\fR \fB<<\fR
-.br
-\fB@TPUT@ -V\fR
-.br
-.SH DESCRIPTION
-The \fB@TPUT@\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.
-The result depends upon the capability's type:
-.RS
-.TP 5
-string
-\fB@TPUT@\fR writes the string to the standard output.
-No trailing newline is supplied.
-.TP
-integer
-\fB@TPUT@\fR writes the decimal value to the standard output,
-with a trailing newline.
-.TP
-boolean
-\fB@TPUT@\fR simply sets the exit code
-(\fB0\fR for TRUE if the terminal has the capability,
-\fB1\fR for FALSE if it does not),
-and writes nothing to the standard output.
-.RE
-.PP
-Before using a value returned on the standard output,
-the application should test the exit code
-(e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
-(See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
-For a complete list of capabilities
-and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
-.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 capability from the \fBterminfo\fR database. When
-\fBtermcap\fR support is compiled in, the \fBtermcap\fR name for
-the capability is also accepted.
-.TP
-\fIparms\fR
-If the capability is a string that takes parameters, the arguments
-\fIparms\fR will be instantiated into the string.
-.IP
-Most parameters are numbers.
-Only a few terminfo capabilities require string parameters;
-\fB@TPUT@\fR uses a table to decide which to pass as strings.
-Normally \fB@TPUT@\fR uses \fBtparm\fR (3X) to perform the substitution.
-If no parameters are given for the capability,
-\fB@TPUT@\fR writes the string without performing the substitution.
-.TP
-\fB-S\fR
-allows more than one capability per invocation of \fB@TPUT@\fR. The
-capabilities must be passed to \fB@TPUT@\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, \fB@TPUT@\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:
-.RS
-.TP
-(1)
-if present, the terminal's initialization strings will be
-output as detailed in the \fBterminfo\fR(5) section on
-.IR "Tabs and Initialization" ,
-.TP
-(2)
-any delays (e.g., newline) specified in the entry will
-be set in the tty driver,
-.TP
-(3)
-tabs expansion will be turned on or off according to
-the specification in the entry, and
-.TP
-(4)
-if tabs are not expanded,
-standard tabs will be set (every 8 spaces).
-.RE
-.IP
-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 \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
-same effect as \fB@TPUT@ reset\fR.
-See \fBtset\fR for comparison, which has similar behavior.
-.SH EXAMPLES
-.TP 5
-\fB@TPUT@ 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
-\fB@TPUT@ -T5620 reset\fR
-Reset an AT&T 5620 terminal, overriding the type of
-terminal in the environmental variable \fBTERM\fR.
-.TP 5
-\fB@TPUT@ 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
-\fB@TPUT@ clear\fR
-Echo the clear-screen sequence for the current terminal.
-.TP 5
-\fB@TPUT@ cols\fR
-Print the number of columns for the current terminal.
-.TP 5
-\fB@TPUT@ -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
-\fB@TPUT@ hc\fR
-Set exit code to indicate if the current terminal is a hard copy terminal.
-.TP 5
-\fB@TPUT@ cup 23 4\fR
-Send the sequence to move the cursor to row 23, column 4.
-.TP 5
-\fB@TPUT@ cup\fR
-Send the terminfo string for cursor-movement, with no parameters substituted.
-.TP 5
-\fB@TPUT@ 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
-\fB@TPUT@ -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 \fB@TPUT@\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@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,
-\fB@TPUT@\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(5) database for this terminal type, e.g.
-\fB@TPUT@ -T450 lines\fR and \fB@TPUT@ -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
-.PP
-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.
-.PP
-X/Open documents only the operands for \fBclear\fP, \fBinit\fP and \fBreset\fP.
-In this implementation, \fBclear\fP is part of the \fIcapname\fR support.
-Other implementations of \fBtput\fP on
-SVr4-based systems such as Solaris, IRIX64 and HPUX
-as well as others such as AIX and Tru64
-provide support for \fIcapname\fR operands.
-A few platforms such as FreeBSD and NetBSD recognize termcap names rather
-than terminfo capability names in their respective \fBtput\fP commands.
-.SH SEE ALSO
-\fB@CLEAR@\fR(1),
-\fBstty\fR(1),
-\fBtabs\fR(\*n),
-\fBterminfo\fR(5).
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/tset.1 b/contrib/ncurses/man/tset.1
deleted file mode 100644
index e023064c08b7..000000000000
--- a/contrib/ncurses/man/tset.1
+++ /dev/null
@@ -1,288 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders 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.19 2006/12/24 15:00:30 tom Exp $
-.TH tset 1 ""
-.SH NAME
-\fBtset\fR, \fBreset\fR - terminal initialization
-.SH SYNOPSIS
-\fBtset\fR [\fB-IQVcqrsw\fR] [\fB-\fR] [\fB-e\fR \fIch\fR] [\fB-i\fR \fIch\fR] [\fB-k\fR \fIch\fR] [\fB-m\fR \fImapping\fR] [\fIterminal\fR]
-.br
-\fBreset\fR [\fB-IQVcqrsw\fR] [\fB-\fR] [\fB-e\fR \fIch\fR] [\fB-i\fR \fIch\fR] [\fB-k\fR \fIch\fR] [\fB-m\fR \fImapping\fR] [\fIterminal\fR]
-.SH DESCRIPTION
-\&\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 \fB-m\fR
-option mappings are then applied (see the section
-.B TERMINAL TYPE MAPPING
-for more information).
-Then, if the terminal type begins with a question mark (``?''), the
-user is prompted for confirmation of the terminal type. An empty
-response confirms the type, or, another type can be entered to specify
-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.
-Use the \fB-c\fP or \fB-w\fP option to select only the window sizing
-versus the other initialization.
-If neither option is given, both are assumed.
-.PP
-When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes,
-turns off cbreak and raw modes, turns on newline translation and
-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
-.sp
- \fB<LF>reset<LF>\fR
-.sp
-(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
-.B -c
-Set control characters and modes.
-.B -e
-Set the erase character to \fIch\fR.
-.TP
-.B -I
-Do not send the terminal or tab initialization strings to the terminal.
-.TP
-.B -i
-Set the interrupt character to \fIch\fR.
-.TP
-.B -k
-Set the line kill character to \fIch\fR.
-.TP
-.B -m
-Specify a mapping from a port type to a terminal.
-See the section
-.B TERMINAL TYPE MAPPING
-for more information.
-.TP
-.B -Q
-Do not display any values for the erase, interrupt and line kill characters.
-Normally \fBtset\fR displays the values for control characters which
-differ from the system's default values.
-.TP
-.B -q
-The terminal type is displayed to the standard output, and the terminal is
-not initialized in any way. The option `-' by itself is equivalent but
-archaic.
-.TP
-.B -r
-Print the terminal type to the standard error output.
-.TP
-.B -s
-Print the sequence of shell commands to initialize the environment variable
-\fBTERM\fR to the standard output.
-See the section
-.B SETTING THE ENVIRONMENT
-for details.
-.TP
-.B -V
-reports the version of ncurses which was used in this program, and exits.
-.TP
-.B -w
-Resize the window to match the size deduced via \fBsetupterm\fP.
-Normally this has no effect,
-unless \fBsetupterm\fP is not able to detect the window size.
-.PP
-The arguments for the \fB-e\fR, \fB-i\fR, and \fB-k\fR
-options may either be entered as actual characters or by using the `hat'
-notation, i.e. control-h may be specified as ``^H'' or ``^h''.
-.
-.SH SETTING THE ENVIRONMENT
-It is often desirable to enter the terminal type and information about
-the terminal's capabilities into the shell's environment.
-This is done using the \fB-s\fR option.
-.PP
-When the \fB-s\fR option is specified, the commands to enter the information
-into the shell's environment are written to the standard output. If
-the \fBSHELL\fR environmental variable ends in ``csh'', the commands
-are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
-Note, the \fBcsh\fR commands set and unset the shell variable
-\fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR
-or \fB.profile\fR files will initialize the environment correctly:
-.sp
- eval \`tset -s options ... \`
-.
-.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 \fB-m\fR option is to map
-from some set of conditions to a terminal type, that is, to
-tell \fBtset\fR
-``If I'm on this port at a particular speed, guess that I'm on that
-kind of terminal''.
-.PP
-The argument to the \fB-m\fR option consists of an optional port type, an
-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 \fB-m\fR
-mappings are applied to the terminal type. If the port type and baud
-rate match the mapping, the terminal type specified in the mapping
-replaces the current type. If more than one mapping is specified, the
-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 \fB-m\fR option argument.
-Also, to avoid problems with meta-characters, it is suggested that the
-entire \fB-m\fR option argument be placed within single quote characters,
-and that \fBcsh\fR users insert a backslash character (``\e'') before
-any exclamation marks (``!'').
-.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 \fB-S\fR option of BSD tset no longer works; it prints an error message to stderr
-and dies. The \fB-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
-changes are because the \fBTERMCAP\fR variable is no longer supported under
-terminfo-based \fBncurses\fR, which makes \fBtset -S\fR useless (we made it die
-noisily rather than silently induce lossage).
-.PP
-There was an undocumented 4.4BSD feature that invoking tset via a link named
-`TSET` (or via any other name beginning with an upper-case letter) set the
-terminal to use upper-case only. This feature has been omitted.
-.PP
-The \fB-A\fR, \fB-E\fR, \fB-h\fR, \fB-u\fR and \fB-v\fR
-options were deleted from the \fBtset\fR
-utility in 4.4BSD.
-None of them were documented in 4.3BSD and all are
-of limited utility at best.
-The \fB-a\fR, \fB-d\fR, and \fB-p\fR options are similarly
-not documented or useful, but were retained as they appear to be in
-widespread use. It is strongly recommended that any usage of these
-three options be changed to use the \fB-m\fR option instead. The
--n option remains, but has no effect. The \fB-adnp\fR options are therefore
-omitted from the usage summary above.
-.PP
-It is still permissible to specify the \fB-e\fR, \fB-i\fR, and \fB-k\fR options without
-arguments, although it is strongly recommended that such usage be fixed to
-explicitly specify the character.
-.PP
-As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB-Q\fR
-option. Also, the interaction between the - option and the \fIterminal\fR
-argument in some historic implementations of \fBtset\fR has been removed.
-.SH ENVIRONMENT
-The \fBtset\fR command uses these environment variables:
-.TP 5
-SHELL
-tells \fBtset\fP whether to initialize \fBTERM\fP using \fBsh\fP or
-\fBcsh\fP syntax.
-.TP 5
-TERM
-Denotes your terminal type.
-Each terminal type is distinct, though many are similar.
-.TP 5
-TERMCAP
-may denote the location of a termcap database.
-If it is not an absolute pathname, e.g., begins with a `/',
-\fBtset\fP removes the variable from the environment before looking
-for the terminal description.
-.SH FILES
-.TP 5
-/etc/ttys
-system port name to terminal type mapping database (BSD versions only).
-.TP
-@TERMINFO@
-terminal capability database
-.SH SEE ALSO
-csh(1),
-sh(1),
-stty(1),
-curs_terminfo(3X),
-tty(4),
-terminfo(5),
-ttys(5),
-environ(7)
-.PP
-This describes \fBncurses\fR
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/contrib/ncurses/man/wresize.3x b/contrib/ncurses/man/wresize.3x
deleted file mode 100644
index 4d05d3ee7069..000000000000
--- a/contrib/ncurses/man/wresize.3x
+++ /dev/null
@@ -1,64 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be 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
-.\"
-.\" $Id: wresize.3x,v 1.9 2006/02/25 21:47:06 tom Exp $
-.TH wresize 3X ""
-.SH NAME
-\fBwresize\fR - resize a curses window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.sp
-\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/contrib/ncurses/menu/Makefile.in b/contrib/ncurses/menu/Makefile.in
deleted file mode 100644
index fc33dc7d64e8..000000000000
--- a/contrib/ncurses/menu/Makefile.in
+++ /dev/null
@@ -1,167 +0,0 @@
-# $Id: Makefile.in,v 1.48 2007/04/28 14:56:11 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-# 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
-
-x = @EXEEXT@
-o = .@OBJEXT@
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-LIBTOOL_CLEAN = @LIB_CLEAN@
-LIBTOOL_COMPILE = @LIB_COMPILE@
-LIBTOOL_LINK = @LIB_LINK@
-LIBTOOL_INSTALL = @LIB_INSTALL@
-LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROGRAM@
-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 = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @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@)
-
-LINK = $(LIBTOOL_LINK)
-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 = @LIB_PREP@
-
-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)/../mkdirs.sh $@
-
-# 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/contrib/ncurses/menu/READ.ME b/contrib/ncurses/menu/READ.ME
deleted file mode 100644
index 10ff5b0114fb..000000000000
--- a/contrib/ncurses/menu/READ.ME
+++ /dev/null
@@ -1,42 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: READ.ME,v 1.9 2006/04/22 23:13:05 tom Exp $
--------------------------------------------------------------------------------
-
-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
diff --git a/contrib/ncurses/menu/eti.h b/contrib/ncurses/menu/eti.h
deleted file mode 100644
index baa6190d8f84..000000000000
--- a/contrib/ncurses/menu/eti.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/* $Id: eti.h,v 1.8 2003/10/25 15:24:29 tom Exp $ */
-
-#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/contrib/ncurses/menu/headers b/contrib/ncurses/menu/headers
deleted file mode 100644
index 18c20af24fb1..000000000000
--- a/contrib/ncurses/menu/headers
+++ /dev/null
@@ -1,33 +0,0 @@
-##############################################################################
-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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
-# vile:makemode
diff --git a/contrib/ncurses/menu/llib-lmenu b/contrib/ncurses/menu/llib-lmenu
deleted file mode 100644
index fc17cc364d42..000000000000
--- a/contrib/ncurses/menu/llib-lmenu
+++ /dev/null
@@ -1,545 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2002,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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,2005 *
- ****************************************************************************/
-/* 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_Text_Width
-int _nc_Calculate_Text_Width(
- const TEXT *item)
- { return(*(int *)0); }
-
-#undef _nc_Calculate_Item_Length_and_Width
-void _nc_Calculate_Item_Length_and_Width(
- MENU *menu)
- { /* 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_trace.c */
-
-#undef _nc_retrace_item
-ITEM *_nc_retrace_item(
- ITEM *code)
- { return(*(ITEM **)0); }
-
-#undef _nc_retrace_item_ptr
-ITEM **_nc_retrace_item_ptr(
- ITEM **code)
- { return(*(ITEM ***)0); }
-
-#undef _nc_retrace_item_opts
-Item_Options _nc_retrace_item_opts(
- Item_Options code)
- { return(*(Item_Options *)0); }
-
-#undef _nc_retrace_menu
-MENU *_nc_retrace_menu(
- MENU *code)
- { return(*(MENU **)0); }
-
-#undef _nc_retrace_menu_hook
-Menu_Hook _nc_retrace_menu_hook(
- Menu_Hook code)
- { return(*(Menu_Hook *)0); }
-
-#undef _nc_retrace_menu_opts
-Menu_Options _nc_retrace_menu_opts(
- Menu_Options code)
- { return(*(Menu_Options *)0); }
-
-/* ./m_userptr.c */
-
-#undef set_menu_userptr
-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/contrib/ncurses/menu/llib-lmenuw b/contrib/ncurses/menu/llib-lmenuw
deleted file mode 100644
index d21fb9488499..000000000000
--- a/contrib/ncurses/menu/llib-lmenuw
+++ /dev/null
@@ -1,547 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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,2005 *
- ****************************************************************************/
-/* 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_Text_Width
-int _nc_Calculate_Text_Width(
- const TEXT *item)
- { return(*(int *)0); }
-
-#undef _nc_Calculate_Item_Length_and_Width
-void _nc_Calculate_Item_Length_and_Width(
- MENU *menu)
- { /* 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 */
-
-#include <wctype.h>
-
-#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_trace.c */
-
-#undef _nc_retrace_item
-ITEM *_nc_retrace_item(
- ITEM *code)
- { return(*(ITEM **)0); }
-
-#undef _nc_retrace_item_ptr
-ITEM **_nc_retrace_item_ptr(
- ITEM **code)
- { return(*(ITEM ***)0); }
-
-#undef _nc_retrace_item_opts
-Item_Options _nc_retrace_item_opts(
- Item_Options code)
- { return(*(Item_Options *)0); }
-
-#undef _nc_retrace_menu
-MENU *_nc_retrace_menu(
- MENU *code)
- { return(*(MENU **)0); }
-
-#undef _nc_retrace_menu_hook
-Menu_Hook _nc_retrace_menu_hook(
- Menu_Hook code)
- { return(*(Menu_Hook *)0); }
-
-#undef _nc_retrace_menu_opts
-Menu_Options _nc_retrace_menu_opts(
- Menu_Options code)
- { return(*(Menu_Options *)0); }
-
-/* ./m_userptr.c */
-
-#undef set_menu_userptr
-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/contrib/ncurses/menu/m_attribs.c b/contrib/ncurses/menu/m_attribs.c
deleted file mode 100644
index 1126ffb84f5a..000000000000
--- a/contrib/ncurses/menu/m_attribs.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_attribs *
-* Control menus display attributes *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_attribs.c,v 1.14 2004/12/11 23:29:12 tom Exp $")
-
-/* Macro to redraw menu if it is posted and changed */
-#define Refresh_Menu(menu) \
- 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)\
-{\
- T((T_CALLED("set_menu_" #name "(%p,%s)"), menu, _traceattr(attr)));\
- if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
- RETURN(E_BAD_ARGUMENT);\
- if (menu && ( menu -> name != attr))\
- {\
- (menu -> name) = attr;\
- Refresh_Menu(menu);\
- }\
- Normalize_Menu( menu ) -> name = attr;\
- RETURN(E_OK);\
-}
-
-/* "Template" macro to generate a function to get a menu's attribute */
-#define GEN_MENU_ATTR_GET_FCT( name ) \
-NCURSES_IMPEXP chtype NCURSES_API menu_ ## name (const MENU * menu)\
-{\
- T((T_CALLED("menu_" #name "(%p)"), menu));\
- returnAttr(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 this 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/contrib/ncurses/menu/m_cursor.c b/contrib/ncurses/menu/m_cursor.c
deleted file mode 100644
index 0293f9073c32..000000000000
--- a/contrib/ncurses/menu/m_cursor.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_cursor *
-* Correctly position a menu's cursor *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_cursor.c,v 1.20 2005/10/22 23:03:32 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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 = 0, y = 0;
- int err = _nc_menu_cursor_pos(menu, (ITEM *) 0, &y, &x);
-
- T((T_CALLED("pos_menu_cursor(%p)"), menu));
-
- if (E_OK == err)
- {
- win = menu->userwin ? menu->userwin : stdscr;
- sub = menu->usersub ? menu->usersub : win;
- assert(win && sub);
-
- if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0))
- x += (menu->pindex + menu->marklen - 1);
-
- wmove(sub, y, x);
-
- if (win != sub)
- {
- wcursyncup(sub);
- wsyncup(sub);
- untouchwin(sub);
- }
- }
- RETURN(err);
-}
-
-/* m_cursor.c ends here */
diff --git a/contrib/ncurses/menu/m_driver.c b/contrib/ncurses/menu/m_driver.c
deleted file mode 100644
index d29c6024a7e3..000000000000
--- a/contrib/ncurses/menu/m_driver.c
+++ /dev/null
@@ -1,555 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_driver *
-* Central dispatching routine *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_driver.c,v 1.25 2005/11/26 20:46:59 tom Exp $")
-
-/* 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;
-
- T((T_CALLED("_nc_Match_Next_Character(%p,%d,%p)"), menu, ch, item));
-
- 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((bool)((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;
-
- T((T_CALLED("menu_driver(%p,%d)"), menu, c));
-
- 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(UChar(c)))
- result = _nc_Match_Next_Character_In_Item_Name(menu, c, &item);
-#ifdef NCURSES_MOUSE_VERSION
- else if (KEY_MOUSE == c)
- {
- MEVENT event;
- WINDOW *uwin = Get_Menu_UserWin(menu);
-
- getmouse(&event);
- if ((event.bstate & (BUTTON1_CLICKED |
- BUTTON1_DOUBLE_CLICKED |
- BUTTON1_TRIPLE_CLICKED))
- && wenclose(uwin, event.y, event.x))
- { /* we react only if the click was in the userwin, that means
- * inside the menu display area or at the decoration window.
- */
- WINDOW *sub = Get_Menu_Window(menu);
- int ry = event.y, rx = event.x; /* screen coordinates */
-
- 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/contrib/ncurses/menu/m_format.c b/contrib/ncurses/menu/m_format.c
deleted file mode 100644
index 773cb27e774f..000000000000
--- a/contrib/ncurses/menu/m_format.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_format *
-* Set and get maximum numbers of rows and columns in menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_format.c,v 1.15 2004/12/11 23:11:21 tom Exp $")
-
-#define minimum(a,b) ((a)<(b) ? (a): (b))
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| 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;
-
- T((T_CALLED("set_menu_format(%p,%d,%d)"), menu, rows, cols));
-
- if (rows < 0 || cols < 0)
- RETURN(E_BAD_ARGUMENT);
-
- if (menu)
- {
- if (menu->status & _POSTED)
- 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->opt & O_ROWMAJOR) ?
- minimum(menu->nitems, cols) :
- (menu->nitems - 1) / total_rows + 1;
-
- menu->rows = total_rows;
- menu->cols = total_cols;
- menu->arows = minimum(total_rows, rows);
- menu->toprow = 0;
- menu->curitem = *(menu->items);
- assert(menu->curitem);
- menu->status |= _LINK_NEEDED;
- _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/contrib/ncurses/menu/m_global.c b/contrib/ncurses/menu/m_global.c
deleted file mode 100644
index 28e836dd644e..000000000000
--- a/contrib/ncurses/menu/m_global.c
+++ /dev/null
@@ -1,596 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_global *
-* Globally used internal routines and the default menu and item structures *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_global.c,v 1.23 2005/12/31 21:51:52 tom Exp $")
-
-static char mark[] = "-";
-/* *INDENT-OFF* */
-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 */
- };
-/* *INDENT-ON* */
-
-/*---------------------------------------------------------------------------
-| 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 : -
-+--------------------------------------------------------------------------*/
-NCURSES_INLINE static void
-ComputeMaximum_NameDesc_Lengths(MENU * menu)
-{
- unsigned MaximumNameLength = 0;
- unsigned MaximumDescriptionLength = 0;
- ITEM **items;
- unsigned check;
-
- assert(menu && menu->items);
- for (items = menu->items; *items; items++)
- {
- check = _nc_Calculate_Text_Width(&((*items)->name));
- if (check > MaximumNameLength)
- MaximumNameLength = check;
-
- check = _nc_Calculate_Text_Width(&((*items)->description));
- if (check > MaximumDescriptionLength)
- MaximumDescriptionLength = check;
- }
-
- menu->namelen = MaximumNameLength;
- menu->desclen = MaximumDescriptionLength;
- T(("ComputeMaximum_NameDesc_Lengths %d,%d", menu->namelen, menu->desclen));
-}
-
-/*---------------------------------------------------------------------------
-| 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 : -
-+--------------------------------------------------------------------------*/
-NCURSES_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 - successful 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 = typeMalloc(char, (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 : int _nc_Calculate_Text_Width(const TEXT * item)
-|
-| Description : Calculate the number of columns for a TEXT.
-|
-| Return Values : the width
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Calculate_Text_Width(const TEXT * item /*FIXME: limit length */ )
-{
-#if USE_WIDEC_SUPPORT
- int result = item->length;
-
- T((T_CALLED("_nc_menu_text_width(%p)"), item));
- if (result != 0 && item->str != 0)
- {
- int count = mbstowcs(0, item->str, 0);
- wchar_t *temp = 0;
-
- if (count > 0
- && (temp = typeMalloc(wchar_t, 2 + count)) != 0)
- {
- int n;
-
- result = 0;
- mbstowcs(temp, item->str, (unsigned)count);
- for (n = 0; n < count; ++n)
- {
- int test = wcwidth(temp[n]);
-
- if (test <= 0)
- test = 1;
- result += test;
- }
- free(temp);
- }
- }
- returnCode(result);
-#else
- return item->length;
-#endif
-}
-
-/*
- * Calculate the actual width of a menu entry for wide-characters.
- */
-#if USE_WIDEC_SUPPORT
-static int
-calculate_actual_width(MENU * menu, bool name)
-{
- int width = 0;
- int check = 0;
- ITEM **items;
-
- assert(menu && menu->items);
-
- if (menu->items != 0)
- {
- for (items = menu->items; *items; items++)
- {
- if (name)
- {
- check = _nc_Calculate_Text_Width(&((*items)->name));
- }
- else
- {
- check = _nc_Calculate_Text_Width(&((*items)->description));
- }
- if (check > width)
- width = check;
- }
- }
- else
- {
- width = (name ? menu->namelen : menu->desclen);
- }
-
- T(("calculate_actual_width %s = %d/%d",
- name ? "name" : "desc",
- width,
- name ? menu->namelen : menu->desclen));
- return width;
-}
-#else
-#define calculate_actual_width(menu, name) (name ? menu->namelen : menu->desclen)
-#endif
-
-/*---------------------------------------------------------------------------
-| 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 = calculate_actual_width(menu, TRUE);
- l += menu->marklen;
-
- if ((menu->opt & O_SHOWDESC) && (menu->desclen > 0))
- {
- l += calculate_actual_width(menu, FALSE);
- l += menu->spc_desc;
- }
-
- menu->itemlen = l;
- l *= menu->cols;
- l += (menu->cols - 1) * menu->spc_cols; /* for the padding between the columns */
- menu->width = l;
-
- T(("_nc_CalculateItem_Length_and_Width columns %d, item %d, width %d",
- menu->cols,
- menu->itemlen,
- menu->width));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Link_Item(MENU *menu)
-|
-| Description : Statically calculate for every item its four neighbors.
-| This depends on the orientation of the menu. This
-| static approach 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/contrib/ncurses/menu/m_hook.c b/contrib/ncurses/menu/m_hook.c
deleted file mode 100644
index 8d768a303ffc..000000000000
--- a/contrib/ncurses/menu/m_hook.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_hook *
-* Assign application specific routines for automatic invocation by menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_hook.c,v 1.14 2004/12/25 21:39:52 tom Exp $")
-
-/* "Template" macro to generate function to set application specific hook */
-#define GEN_HOOK_SET_FUNCTION( typ, name ) \
-NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\
-{\
- T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), menu, func));\
- (Normalize_Menu(menu) -> typ ## name = func );\
- RETURN(E_OK);\
-}
-
-/* "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 )\
-{\
- T((T_CALLED(#typ "_" #name "(%p)"), menu));\
- returnMenuHook(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/contrib/ncurses/menu/m_item_cur.c b/contrib/ncurses/menu/m_item_cur.c
deleted file mode 100644
index dac12ed91c5e..000000000000
--- a/contrib/ncurses/menu/m_item_cur.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_cur *
-* Set and get current menus item *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_item_cur.c,v 1.17 2004/12/25 21:57:38 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_current_item(%p,%p)"), menu, 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)
-{
- T((T_CALLED("current_item(%p)"), menu));
- returnItem((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)
-{
- T((T_CALLED("item_index(%p)"), item));
- returnCode((item && item->imenu) ? item->index : ERR);
-}
-
-/* m_item_cur.c ends here */
diff --git a/contrib/ncurses/menu/m_item_nam.c b/contrib/ncurses/menu/m_item_nam.c
deleted file mode 100644
index 05a169340b45..000000000000
--- a/contrib/ncurses/menu/m_item_nam.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_nam *
-* Get menus item name and description *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_item_nam.c,v 1.14 2004/12/25 21:41:54 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("item_name(%p)"), item));
- returnCPtr((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)
-{
- T((T_CALLED("item_description(%p)"), item));
- returnCPtr((item) ? item->description.str : (char *)0);
-}
-
-/* m_item_nam.c ends here */
diff --git a/contrib/ncurses/menu/m_item_new.c b/contrib/ncurses/menu/m_item_new.c
deleted file mode 100644
index d7fe1f8542c2..000000000000
--- a/contrib/ncurses/menu/m_item_new.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_new *
-* Create and destroy menu items *
-* Set and get marker string for menu *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-#if USE_WIDEC_SUPPORT
-#if HAVE_WCTYPE_H
-#include <wctype.h>
-#endif
-#endif
-
-MODULE_ID("$Id: m_item_new.c,v 1.27 2006/12/17 19:47:09 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- int result = TRUE;
-
-#if USE_WIDEC_SUPPORT
- int count = mbstowcs(0, s, 0);
- wchar_t *temp = 0;
-
- assert(s);
-
- if (count > 0
- && (temp = typeCalloc(wchar_t, (2 + (unsigned)count))) != 0)
- {
- int n;
-
- mbstowcs(temp, s, (unsigned)count);
- for (n = 0; n < count; ++n)
- if (!iswprint((wint_t) temp[n]))
- {
- result = FALSE;
- break;
- }
- free(temp);
- }
-#else
- assert(s);
- while (*s)
- {
- if (!isprint(UChar(*s)))
- {
- result = FALSE;
- break;
- }
- s++;
- }
-#endif
- return result;
-}
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("new_item(\"%s\", \"%s\")"),
- name ? name : "",
- description ? description : ""));
-
- if (!name || (*name == '\0') || !Is_Printable_String(name))
- {
- item = (ITEM *) 0;
- SET_ERROR(E_BAD_ARGUMENT);
- }
- 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);
- }
- returnItem(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)
-{
- T((T_CALLED("free_item(%p)"), 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)
-{
- unsigned l;
-
- T((T_CALLED("set_menu_mark(%p,%s)"), menu, _nc_visbuf(mark)));
-
- 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 != (int)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
- {
- returnCode(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)
-{
- T((T_CALLED("menu_mark(%p)"), menu));
- returnPtr(Normalize_Menu(menu)->mark);
-}
-
-/* m_item_new.c */
diff --git a/contrib/ncurses/menu/m_item_opt.c b/contrib/ncurses/menu/m_item_opt.c
deleted file mode 100644
index cfe7b75db392..000000000000
--- a/contrib/ncurses/menu/m_item_opt.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_opt *
-* Menus item option routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_item_opt.c,v 1.17 2004/12/25 21:32:54 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_menu_opts(%p,%d)"), item, opts));
-
- opts &= ALL_ITEM_OPTS;
-
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
-
- if (item)
- {
- if (item->opt != opts)
- {
- MENU *menu = item->imenu;
-
- item->opt = opts;
-
- if ((!(opts & O_SELECTABLE)) && item->value)
- item->value = FALSE;
-
- if (menu && (menu->status & _POSTED))
- {
- Move_And_Post_Item(menu, item);
- _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 behavior */
-
- T((T_CALLED("item_opts_off(%p,%d)"), item, opts));
-
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Item(citem);
- opts = citem->opt & ~(opts & ALL_ITEM_OPTS);
- returnCode(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 behavior */
-
- T((T_CALLED("item_opts_on(%p,%d)"), item, opts));
-
- opts &= ALL_ITEM_OPTS;
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Item(citem);
- opts = citem->opt | opts;
- returnCode(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)
-{
- T((T_CALLED("item_opts(%p)"), item));
- returnItemOpts(ALL_ITEM_OPTS & Normalize_Item(item)->opt);
-}
-
-/* m_item_opt.c ends here */
diff --git a/contrib/ncurses/menu/m_item_top.c b/contrib/ncurses/menu/m_item_top.c
deleted file mode 100644
index 7268a0e49f15..000000000000
--- a/contrib/ncurses/menu/m_item_top.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_top *
-* Set and get top menus item *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_item_top.c,v 1.10 2004/12/11 23:29:34 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_top_row(MENU *menu, int row)
-|
-| Description : Makes the specified 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;
-
- T((T_CALLED("set_top_row(%p,%d)"), menu, row));
-
- 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)
-{
- T((T_CALLED("top_row(%p)"), menu));
- if (menu && menu->items && *(menu->items))
- {
- assert((menu->toprow >= 0) && (menu->toprow < menu->rows));
- returnCode(menu->toprow);
- }
- else
- returnCode(ERR);
-}
-
-/* m_item_top.c ends here */
diff --git a/contrib/ncurses/menu/m_item_use.c b/contrib/ncurses/menu/m_item_use.c
deleted file mode 100644
index 06a5baf984e8..000000000000
--- a/contrib/ncurses/menu/m_item_use.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_use *
-* Associate application data with menu items *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_item_use.c,v 1.16 2004/12/25 21:33:31 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_item_userptr(%p,%p)"), item, 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)
-{
- T((T_CALLED("item_userptr(%p)"), item));
- returnVoidPtr(Normalize_Item(item)->userptr);
-}
-
-/* m_item_use.c */
diff --git a/contrib/ncurses/menu/m_item_val.c b/contrib/ncurses/menu/m_item_val.c
deleted file mode 100644
index cebf693fbd34..000000000000
--- a/contrib/ncurses/menu/m_item_val.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_val *
-* Set and get menus item values *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_item_val.c,v 1.14 2004/12/11 23:29:34 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_value(ITEM *item, int value)
-|
-| Description : Programmatically set the item's 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;
-
- T((T_CALLED("set_item_value(%p,%d)"), item, value));
- if (item)
- {
- menu = item->imenu;
-
- if ((!(item->opt & O_SELECTABLE)) ||
- (menu && (menu->opt & O_ONEVALUE)))
- 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)
-{
- T((T_CALLED("item_value(%p)"), item));
- returnBool((Normalize_Item(item)->value) ? TRUE : FALSE);
-}
-
-/* m_item_val.c ends here */
diff --git a/contrib/ncurses/menu/m_item_vis.c b/contrib/ncurses/menu/m_item_vis.c
deleted file mode 100644
index f8fb97f028cb..000000000000
--- a/contrib/ncurses/menu/m_item_vis.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_vis *
-* Tell if menu item is visible *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_item_vis.c,v 1.15 2004/12/25 21:40:09 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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;
-
- T((T_CALLED("item_visible(%p)"), item));
- if (item &&
- (menu = item->imenu) &&
- (menu->status & _POSTED) &&
- ((menu->toprow + menu->arows) > (item->y)) &&
- (item->y >= menu->toprow))
- returnBool(TRUE);
- else
- returnBool(FALSE);
-}
-
-/* m_item_vis.c ends here */
diff --git a/contrib/ncurses/menu/m_items.c b/contrib/ncurses/menu/m_items.c
deleted file mode 100644
index 3e8f70b0fa7d..000000000000
--- a/contrib/ncurses/menu/m_items.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_items *
-* Connect and disconnect items to and from menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_items.c,v 1.16 2005/01/16 01:02:23 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_menu_items(%p,%p)"), menu, 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 array of the menu
-|
-| Return Values : NULL on error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(ITEM **)
-menu_items(const MENU * menu)
-{
- T((T_CALLED("menu_items(%p)"), menu));
- returnItemPtr(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)
-{
- T((T_CALLED("item_count(%p)"), menu));
- returnCode(menu ? menu->nitems : -1);
-}
-
-/* m_items.c ends here */
diff --git a/contrib/ncurses/menu/m_new.c b/contrib/ncurses/menu/m_new.c
deleted file mode 100644
index c20c66517790..000000000000
--- a/contrib/ncurses/menu/m_new.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_new *
-* Creation and destruction of new menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_new.c,v 1.18 2006/11/04 19:04:06 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- int err = E_SYSTEM_ERROR;
- MENU *menu = (MENU *) calloc(1, sizeof(MENU));
-
- T((T_CALLED("new_menu(%p)"), items));
- 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))
- {
- err = E_NOT_CONNECTED;
- free(menu);
- menu = (MENU *) 0;
- }
- }
- }
-
- if (!menu)
- SET_ERROR(err);
-
- returnMenu(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)
-{
- T((T_CALLED("free_menu(%p)"), 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/contrib/ncurses/menu/m_opts.c b/contrib/ncurses/menu/m_opts.c
deleted file mode 100644
index a7370b06f8e5..000000000000
--- a/contrib/ncurses/menu/m_opts.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_opts *
-* Menus option routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_opts.c,v 1.19 2004/12/25 21:36:12 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_menu_opts(%p,%d)"), menu, 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 behavior */
-
- T((T_CALLED("menu_opts_off(%p,%d)"), menu, opts));
-
- opts &= ALL_MENU_OPTS;
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Menu(cmenu);
- opts = cmenu->opt & ~opts;
- returnCode(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 behavior */
-
- T((T_CALLED("menu_opts_on(%p,%d)"), menu, opts));
-
- opts &= ALL_MENU_OPTS;
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Menu(cmenu);
- opts = cmenu->opt | opts;
- returnCode(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)
-{
- T((T_CALLED("menu_opts(%p)"), menu));
- returnMenuOpts(ALL_MENU_OPTS & Normalize_Menu(menu)->opt);
-}
-
-/* m_opts.c ends here */
diff --git a/contrib/ncurses/menu/m_pad.c b/contrib/ncurses/menu/m_pad.c
deleted file mode 100644
index 76083ba36d34..000000000000
--- a/contrib/ncurses/menu/m_pad.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_pad *
-* Control menus padding character *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_pad.c,v 1.10 2004/12/25 21:40:58 tom Exp $")
-
-/* Macro to redraw menu if it is posted and changed */
-#define Refresh_Menu(menu) \
- 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);
-
- T((T_CALLED("set_menu_pad(%p,%d)"), menu, pad));
-
- if (!isprint(UChar(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)
-{
- T((T_CALLED("menu_pad(%p)"), menu));
- returnCode(Normalize_Menu(menu)->pad);
-}
-
-/* m_pad.c ends here */
diff --git a/contrib/ncurses/menu/m_pattern.c b/contrib/ncurses/menu/m_pattern.c
deleted file mode 100644
index 1171390e214c..000000000000
--- a/contrib/ncurses/menu/m_pattern.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_pattern *
-* Pattern matching handling *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_pattern.c,v 1.15 2006/11/04 18:46:39 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- static char empty[] = "";
-
- T((T_CALLED("menu_pattern(%p)"), menu));
- returnPtr(menu ? (menu->pattern ? menu->pattern : empty) : 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_BAD_STATE - menu in user hook routine
-| E_NOT_CONNECTED - no items connected to menu
-| E_NO_MATCH - no item matches pattern
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_pattern(MENU * menu, const char *p)
-{
- ITEM *matchitem;
- int matchpos;
-
- T((T_CALLED("set_menu_pattern(%p,%s)"), menu, _nc_visbuf(p)));
-
- if (!menu || !p)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(menu->items))
- RETURN(E_NOT_CONNECTED);
-
- if (menu->status & _IN_DRIVER)
- 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(UChar(*p)) ||
- (_nc_Match_Next_Character_In_Item_Name(menu, *p, &matchitem) != E_OK))
- {
- Reset_Pattern(menu);
- pos_menu_cursor(menu);
- RETURN(E_NO_MATCH);
- }
- p++;
- }
-
- /* This is reached if there was a match. So we position to the new item */
- Adjust_Current_Item(menu, matchpos, matchitem);
- RETURN(E_OK);
-}
-
-/* m_pattern.c ends here */
diff --git a/contrib/ncurses/menu/m_post.c b/contrib/ncurses/menu/m_post.c
deleted file mode 100644
index 657d0f18420b..000000000000
--- a/contrib/ncurses/menu/m_post.c
+++ /dev/null
@@ -1,377 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_post *
-* Write or erase menus from associated subwindows *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_post.c,v 1.26 2004/12/25 23:57:04 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Post_Item(MENU *menu, ITEM *item)
-|
-| 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;
- int name_len;
- int desc_len;
-
- 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);
- name_len = _nc_Calculate_Text_Width(&(item->name));
- for (ch = ' ', i = menu->namelen - name_len; 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);
- desc_len = _nc_Calculate_Text_Width(&(item->description));
- for (ch = ' ', i = menu->desclen - desc_len; 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_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)
-{
- T((T_CALLED("post_menu(%p)"), 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);
-
- 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;
-
- T((T_CALLED("unpost_menu(%p)"), menu));
-
- 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/contrib/ncurses/menu/m_req_name.c b/contrib/ncurses/menu/m_req_name.c
deleted file mode 100644
index 01fe79e3be84..000000000000
--- a/contrib/ncurses/menu/m_req_name.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_request_name *
-* Routines to handle external names of menu requests *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_req_name.c,v 1.19 2005/04/16 16:59:52 tom Exp $")
-
-static const char *request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1] =
-{
- "LEFT_ITEM",
- "RIGHT_ITEM",
- "UP_ITEM",
- "DOWN_ITEM",
- "SCR_ULINE",
- "SCR_DLINE",
- "SCR_DPAGE",
- "SCR_UPAGE",
- "FIRST_ITEM",
- "LAST_ITEM",
- "NEXT_ITEM",
- "PREV_ITEM",
- "TOGGLE_ITEM",
- "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)
-{
- T((T_CALLED("menu_request_name(%d)"), request));
- if ((request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND))
- {
- SET_ERROR(E_BAD_ARGUMENT);
- returnCPtr((const char *)0);
- }
- else
- returnCPtr(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];
-
- T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str)));
-
- if (str)
- {
- strncpy(buf, str, sizeof(buf));
- while ((i < sizeof(buf)) && (buf[i] != '\0'))
- {
- buf[i] = toupper(buf[i]);
- i++;
- }
-
- for (i = 0; i < A_SIZE; i++)
- {
- if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
- returnCode(MIN_MENU_COMMAND + (int)i);
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/* m_req_name.c ends here */
diff --git a/contrib/ncurses/menu/m_scale.c b/contrib/ncurses/menu/m_scale.c
deleted file mode 100644
index 96c2d84eb3af..000000000000
--- a/contrib/ncurses/menu/m_scale.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_scale *
-* Menu scaling routine *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_scale.c,v 1.9 2004/12/11 23:29:34 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("scale_menu(%p,%p,%p)"), menu, rows, 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/contrib/ncurses/menu/m_spacing.c b/contrib/ncurses/menu/m_spacing.c
deleted file mode 100644
index 039bbe4d59b1..000000000000
--- a/contrib/ncurses/menu/m_spacing.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_spacing *
-* Routines to handle spacing between entries *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_spacing.c,v 1.17 2004/12/11 23:29:34 tom Exp $")
-
-#define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
-#define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
-#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 entries
-|
-| 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 */
-
- T((T_CALLED("set_menu_spacing(%p,%d,%d,%d)"), menu, s_desc, s_row, s_col));
-
- 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 */
-
- T((T_CALLED("menu_spacing(%p,%p,%p,%p)"), menu, s_desc, s_row, s_col));
-
- m = Normalize_Menu(menu);
-
- assert(m);
- if (s_desc)
- *s_desc = m->spc_desc;
- if (s_row)
- *s_row = m->spc_rows;
- if (s_col)
- *s_col = m->spc_cols;
-
- RETURN(E_OK);
-}
-
-/* m_spacing.c ends here */
diff --git a/contrib/ncurses/menu/m_sub.c b/contrib/ncurses/menu/m_sub.c
deleted file mode 100644
index 82649c57b130..000000000000
--- a/contrib/ncurses/menu/m_sub.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_sub *
-* Menus subwindow association routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_sub.c,v 1.10 2004/12/25 21:38:31 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_menu_sub(%p,%p)"), menu, 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);
-
- T((T_CALLED("menu_sub(%p)"), menu));
- returnWin(Get_Menu_Window(m));
-}
-
-/* m_sub.c ends here */
diff --git a/contrib/ncurses/menu/m_trace.c b/contrib/ncurses/menu/m_trace.c
deleted file mode 100644
index 0f9f90273a6a..000000000000
--- a/contrib/ncurses/menu/m_trace.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_trace.c,v 1.3 2005/01/16 01:06:11 tom Exp $")
-
-NCURSES_EXPORT(ITEM *)
-_nc_retrace_item(ITEM * code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(ITEM **)
-_nc_retrace_item_ptr(ITEM ** code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(Item_Options)
-_nc_retrace_item_opts(Item_Options code)
-{
- T((T_RETURN("%d"), code));
- return code;
-}
-
-NCURSES_EXPORT(MENU *)
-_nc_retrace_menu(MENU * code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(Menu_Hook)
-_nc_retrace_menu_hook(Menu_Hook code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-NCURSES_EXPORT(Menu_Options)
-_nc_retrace_menu_opts(Menu_Options code)
-{
- T((T_RETURN("%d"), code));
- return code;
-}
diff --git a/contrib/ncurses/menu/m_userptr.c b/contrib/ncurses/menu/m_userptr.c
deleted file mode 100644
index 7b178b25a175..000000000000
--- a/contrib/ncurses/menu/m_userptr.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_userptr *
-* Associate application data with menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_userptr.c,v 1.16 2004/12/25 21:38:55 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_menu_userptr(%p,%p)"), menu, 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)
-{
- T((T_CALLED("menu_userptr(%p)"), menu));
- returnVoidPtr(Normalize_Menu(menu)->userptr);
-}
-
-/* m_userptr.c ends here */
diff --git a/contrib/ncurses/menu/m_win.c b/contrib/ncurses/menu/m_win.c
deleted file mode 100644
index c3f857f71688..000000000000
--- a/contrib/ncurses/menu/m_win.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_win *
-* Menus window association routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id: m_win.c,v 1.15 2004/12/25 21:39:20 tom Exp $")
-
-/*---------------------------------------------------------------------------
-| 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)
-{
- T((T_CALLED("set_menu_win(%p,%p)"), menu, 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);
-
- T((T_CALLED("menu_win(%p)"), menu));
- returnWin(m->userwin ? m->userwin : stdscr);
-}
-
-/* m_win.c ends here */
diff --git a/contrib/ncurses/menu/menu.h b/contrib/ncurses/menu/menu.h
deleted file mode 100644
index 84352eb5d2f6..000000000000
--- a/contrib/ncurses/menu/menu.h
+++ /dev/null
@@ -1,256 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/* $Id: menu.h,v 1.19 2007/02/24 17:32:13 tom Exp $ */
-
-#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; /* neighbor 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 *, Menu_Hook);
-extern NCURSES_EXPORT(int) set_item_opts (ITEM *,Item_Options);
-extern NCURSES_EXPORT(int) set_item_term (MENU *, Menu_Hook);
-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 *, Menu_Hook);
-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 *, Menu_Hook);
-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/contrib/ncurses/menu/menu.priv.h b/contrib/ncurses/menu/menu.priv.h
deleted file mode 100644
index 10d3537594da..000000000000
--- a/contrib/ncurses/menu/menu.priv.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/* $Id: menu.priv.h,v 1.22 2005/01/16 01:02:23 tom Exp $ */
-
-/***************************************************************************
-* 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 "curses.priv.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'; }
-
-#define UChar(c) ((unsigned char)(c))
-
-/* Internal functions. */
-extern NCURSES_EXPORT(void) _nc_Draw_Menu (const MENU *);
-extern NCURSES_EXPORT(void) _nc_Show_Menu (const MENU *);
-extern NCURSES_EXPORT(void) _nc_Calculate_Item_Length_and_Width (MENU *);
-extern NCURSES_EXPORT(int) _nc_Calculate_Text_Width(const TEXT *);
-extern NCURSES_EXPORT(void) _nc_Post_Item (const MENU *, const ITEM *);
-extern NCURSES_EXPORT(bool) _nc_Connect_Items (MENU *, ITEM **);
-extern NCURSES_EXPORT(void) _nc_Disconnect_Items (MENU *);
-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);
-
-#ifdef TRACE
-
-#define returnItem(code) TRACE_RETURN(code,item)
-#define returnItemPtr(code) TRACE_RETURN(code,item_ptr)
-#define returnItemOpts(code) TRACE_RETURN(code,item_opts)
-#define returnMenu(code) TRACE_RETURN(code,menu)
-#define returnMenuHook(code) TRACE_RETURN(code,menu_hook)
-#define returnMenuOpts(code) TRACE_RETURN(code,menu_opts)
-
-extern NCURSES_EXPORT(ITEM *) _nc_retrace_item (ITEM *);
-extern NCURSES_EXPORT(ITEM **) _nc_retrace_item_ptr (ITEM **);
-extern NCURSES_EXPORT(Item_Options) _nc_retrace_item_opts (Item_Options);
-extern NCURSES_EXPORT(MENU *) _nc_retrace_menu (MENU *);
-extern NCURSES_EXPORT(Menu_Hook) _nc_retrace_menu_hook (Menu_Hook);
-extern NCURSES_EXPORT(Menu_Options) _nc_retrace_menu_opts (Menu_Options);
-
-#else /* !TRACE */
-
-#define returnItem(code) return code
-#define returnItemPtr(code) return code
-#define returnItemOpts(code) return code
-#define returnMenu(code) return code
-#define returnMenuHook(code) return code
-#define returnMenuOpts(code) return code
-
-#endif /* TRACE/!TRACE */
-
-#endif /* MENU_PRIV_H_incl */
diff --git a/contrib/ncurses/menu/mf_common.h b/contrib/ncurses/menu/mf_common.h
deleted file mode 100644
index 681672dc3424..000000000000
--- a/contrib/ncurses/menu/mf_common.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- ****************************************************************************/
-
-/* $Id: mf_common.h,v 0.22 2005/11/26 15:26:52 tom Exp $ */
-
-/* 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)
-
-#ifdef TRACE
-#define RETURN(code) returnCode( SET_ERROR(code) )
-#else
-#define RETURN(code) return( SET_ERROR(code) )
-#endif
-
-/* The few common values in the status fields for menus and forms */
-#define _POSTED (0x01U) /* menu or form is posted */
-#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */
-
-/* Call object hook */
-#define Call_Hook( object, handler ) \
- if ( (object) != 0 && ((object)->handler) != (void *) 0 )\
- {\
- (object)->status |= _IN_DRIVER;\
- (object)->handler(object);\
- (object)->status &= ~_IN_DRIVER;\
- }
-
-#endif /* MF_COMMON_H_incl */
diff --git a/contrib/ncurses/menu/modules b/contrib/ncurses/menu/modules
deleted file mode 100644
index abc4cf0afa49..000000000000
--- a/contrib/ncurses/menu/modules
+++ /dev/null
@@ -1,63 +0,0 @@
-# $Id: modules,v 1.17 2006/12/24 00:52:39 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-
-@ 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_trace lib $(srcdir) $(MENU_PRIV_H)
-m_userptr lib $(srcdir) $(MENU_PRIV_H)
-m_win lib $(srcdir) $(MENU_PRIV_H)
-
-# vile:makemode
diff --git a/contrib/ncurses/misc/Makefile.in b/contrib/ncurses/misc/Makefile.in
deleted file mode 100644
index 4cb39b0c79db..000000000000
--- a/contrib/ncurses/misc/Makefile.in
+++ /dev/null
@@ -1,152 +0,0 @@
-# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-# 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@
-ticfile = $(ticdir).db
-source = @TERMINFO_SRC@
-
-INSTALL = @INSTALL@
-INSTALL_PROG = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-################################################################################
-all : terminfo.tmp
-
-depend :
-
-sources :
-
-install : install.data install.libs
-
-install.data : terminfo.tmp \
- $(DESTDIR)$(libdir) \
- $(DESTDIR)$(datadir) \
- $(DESTDIR)$(tabsetdir)
- DESTDIR=${DESTDIR} \
- prefix=${prefix} \
- exec_prefix=${exec_prefix} \
- bindir=${bindir} \
- top_srcdir=${top_srcdir} \
- srcdir=${srcdir} \
- datadir=${datadir} \
- ticdir=${ticdir} \
- source=terminfo.tmp \
- THIS_CC="$(CC)" \
- THAT_CC="$(HOSTCC)" \
- $(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'
-
-NCURSES_CONFIG = ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
-
-install.libs : $(DESTDIR)$(bindir) ncurses-config
- $(INSTALL_PROG) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
-
-terminfo.tmp : run_tic.sed $(source)
- echo '** adjusting tabset paths'
- sed -f run_tic.sed $(source) >terminfo.tmp
-
-run_tic.sed :
- WHICH_XTERM=@WHICH_XTERM@ \
- ticdir=${ticdir} \
- $(SHELL) $(srcdir)/gen_edit.sh >$@
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(libdir) \
-$(DESTDIR)$(datadir) \
-$(DESTDIR)$(tabsetdir) :
- $(SHELL) $(top_srcdir)/mkdirs.sh $@
-
-uninstall : uninstall.data uninstall.libs
-
-uninstall.data :
- -test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
- -test -d $(DESTDIR)$(ticdir) && rm -rf $(DESTDIR)$(ticdir)
- -test -f $(DESTDIR)$(ticfile) && rm -f $(DESTDIR)$(ticfile)
-
-uninstall.libs :
- -rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
-
-tags :
-
-@MAKE_UPPER_TAGS@TAGS :
-
-mostlyclean :
- -rm -f terminfo.tmp
- -rm -f run_tic.sed
- -rm -f core tags TAGS *~ *.bak *.ln *.atac trace
-
-clean :: mostlyclean
-
-distclean : clean
- -rm -f Makefile run_tic.sh ncurses-config
-
-realclean : distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/contrib/ncurses/misc/chkdef.cmd b/contrib/ncurses/misc/chkdef.cmd
deleted file mode 100644
index fa91dce54c22..000000000000
--- a/contrib/ncurses/misc/chkdef.cmd
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * $Id: chkdef.cmd,v 1.3 2006/04/22 23:14:50 tom Exp $
- *
- * 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/contrib/ncurses/misc/cleantic.cmd b/contrib/ncurses/misc/cleantic.cmd
deleted file mode 100644
index 6859de3053de..000000000000
--- a/contrib/ncurses/misc/cleantic.cmd
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * $Id: cleantic.cmd,v 1.4 2006/04/22 23:14:50 tom Exp $
- *
- * 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/contrib/ncurses/misc/cmpdef.cmd b/contrib/ncurses/misc/cmpdef.cmd
deleted file mode 100644
index 5bb8f6c4ce1c..000000000000
--- a/contrib/ncurses/misc/cmpdef.cmd
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * $Id: cmpdef.cmd,v 1.3 2006/04/22 23:14:50 tom Exp $
- *
- * 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/contrib/ncurses/misc/csort b/contrib/ncurses/misc/csort
deleted file mode 100755
index 42faaf3a1976..000000000000
--- a/contrib/ncurses/misc/csort
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# $Id: csort,v 1.2 2002/10/19 21:42:09 tom Exp $
-##############################################################################
-# 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. #
-##############################################################################
-#
-# override anything that might cause 'sort' to do the wrong thing...
-LANG=C; export LANG
-LANGUAGE=C; export LANGUAGE
-LC_ALL=C; export LC_ALL
-LC_CTYPE=C; export LC_CTYPE
-sort $*
diff --git a/contrib/ncurses/misc/emx.src b/contrib/ncurses/misc/emx.src
deleted file mode 100644
index 47200661b261..000000000000
--- a/contrib/ncurses/misc/emx.src
+++ /dev/null
@@ -1,885 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: emx.src,v 1.9 2006/04/22 21:46:17 tom Exp $
-# 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,
- 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,
- 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,
- use=klone+acs,
-
-# 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,
-
-# 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,
-
-#### 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,
- bce,
- bw,
- it#8,
- 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-emx|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,
- cub=\E[%p1%dD,
- cub1=\E[D,
- cud=\E[%p1%dB,
- cud1=\E[B,
- cuf=\E[%p1%dC,
- cuf1=\E[C,
- cuu=\E[%p1%dA,
- cuu1=\E[A,
- rc=\E[u,
- sc=\E[s,
- use=ansi-emx,
- 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-emx|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-emx,
-# nice colors for Emacs (white on black, mode line black on cyan)
-ansi-color-3-emx|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-emx,
-
-#### 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-r6|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~,
- 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=\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,
- 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,
-
-# 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,
- 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,
-###############################################################################
-# Aliases which conflict with terminfo.src
-ansi|ANSI.SYS color,
- use=ansi-emx,
-ansi-color-2|ANSI.SYS color 2,
- use=ansi-color-2-emx,
-ansi-color-3|ANSI.SYS color 3,
- use=ansi-color-3-emx,
-xterm|vs100|xterm terminal emulator (X11R6 Window System),
- use=xterm-r6,
diff --git a/contrib/ncurses/misc/form.def b/contrib/ncurses/misc/form.def
deleted file mode 100644
index ea43b5953d99..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/form.ref b/contrib/ncurses/misc/form.ref
deleted file mode 100644
index 18e65a680192..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/gen_edit.sh b/contrib/ncurses/misc/gen_edit.sh
deleted file mode 100755
index f0aa72ac9ad2..000000000000
--- a/contrib/ncurses/misc/gen_edit.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2004 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey
-#
-# $Id: gen_edit.sh,v 1.1 2004/07/11 15:01:29 tom Exp $
-# Generate a sed-script for converting the terminfo.src to the form which will
-# be installed.
-#
-# Assumes:
-# The leaf directory names (lib, tabset, terminfo)
-#
-
-: ${ticdir=@TERMINFO@}
-: ${xterm_new=@WHICH_XTERM@}
-
-# If we're not installing into /usr/share/, we'll have to adjust the location
-# of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'`
-if test "x$TABSET" != "x/usr/share/tabset" ; then
-cat <<EOF
-s%/usr/share/tabset%$TABSET%g
-EOF
-fi
-
-if test "$xterm_new" != "xterm-new" ; then
-cat <<EOF
-/^# This is xterm for ncurses/,/^$/{
- s/use=xterm-new,/use=$WHICH_XTERM,/
-}
-EOF
-fi
diff --git a/contrib/ncurses/misc/jpf-indent b/contrib/ncurses/misc/jpf-indent
deleted file mode 100755
index cdd825c61d37..000000000000
--- a/contrib/ncurses/misc/jpf-indent
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/sh
-#****************************************************************************
-#* Copyright (c) 2004-2005,2006 Thomas E. Dickey *
-#* *
-#* Permission is hereby granted, free of charge, to any person obtaining a *
-#* copy of this software and associated documentation files (the *
-#* "Software"), to deal in the Software without restriction, including *
-#* without limitation the rights to use, copy, modify, merge, publish, *
-#* distribute, distribute with modifications, sublicense, and/or sell *
-#* copies of the Software, and to permit persons to whom the Software is *
-#* furnished to do so, subject to the following conditions: *
-#* *
-#* The above copyright notice and this permission notice shall be included *
-#* in all copies or substantial portions of the Software. *
-#* *
-#* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-#* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-#* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-#* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-#* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-#* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-#* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-#* *
-#* Except as contained in this notice, the name(s) of the above copyright *
-#* holders shall not be used in advertising or otherwise to promote the *
-#* sale, use or other dealings in this Software without prior written *
-#* authorization. *
-#****************************************************************************/
-# $Id: jpf-indent,v 1.6 2006/02/18 17:07:15 tom Exp $
-# indent ncurses source written by Juergen Pfeifer
-NOOP=no
-OPTS='
--npro
---blank-lines-after-declarations
---blank-lines-after-procedures
---brace-indent2
---braces-after-if-line
---continue-at-parentheses
---indent-level2
---line-length80
---no-space-after-casts
---no-space-after-function-call-names
---parameter-indentation4
---swallow-optional-blank-lines
---tab-size8
-
--T FIELD
--T FIELDTYPE
--T FIELD_CELL
--T FORM
--T NCURSES_INLINE
--T RegExp_Arg
--T TypeArgument
--T WINDOW
--T attr_t
--T bool
--T cchar_t
--T chtype
--T enumARG
--T va_list
--T wchar_t
-'
-for name in $*
-do
- case $name in
- -v|-n)
- NOOP=yes
- OPTS="$OPTS -v"
- ;;
- -*)
- OPTS="$OPTS $name"
- ;;
- *.[ch])
- save="${name}".a$$
- test="${name}".b$$
- rm -f "$save" "$test"
- mv "$name" "$save"
- sed \
- -e '/MODULE_ID(/s/)$/);/' \
- -e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
- -e 's,\<GCC_PRINTFLIKE(,;//GCC_PRINTFLIKE(,' \
- -e 's,\<GCC_SCANFLIKE(,;//GCC_SCANFLIKE(,' \
- -e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
- "$save" >"$test"
- cp "$test" "$name"
- chmod u+w "$name"
- # ${INDENT_PROG-indent} --version
- ${INDENT_PROG-indent} -npro $OPTS "$name"
- sed \
- -e '/MODULE_ID(/s/);$/)/' \
- -e 's,;[ ]*//GCC_NORETURN;, GCC_NORETURN;,' \
- -e 's,;[ ]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \
- -e 's,;[ ]*//GCC_SCANFLIKE(, GCC_SCANFLIKE(,' \
- -e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
- "$name" >"$test"
- mv "$test" "$name"
- rm -f "${name}~"
- if test $NOOP = yes ; then
- if (cmp -s "$name" "$save" ) then
- echo "** no change: $name"
- else
- diff -u "$save" "$name"
- fi
- rm -f "$name"
- mv "$save" "$name"
- elif ( cmp -s "$name" "$save" ) ; then
- echo "** unchanged $name"
- rm -f "${name}"
- mv "$save" "$name"
- else
- echo "** updated $name"
- rm -f "$save"
- fi
- ;;
- *)
- echo "** ignored: $name"
- ;;
- esac
-done
diff --git a/contrib/ncurses/misc/makedef.cmd b/contrib/ncurses/misc/makedef.cmd
deleted file mode 100644
index 68a35692cd43..000000000000
--- a/contrib/ncurses/misc/makedef.cmd
+++ /dev/null
@@ -1,179 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * $Id: makedef.cmd,v 1.5 2006/04/22 23:14:50 tom Exp $
- *
- * 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/contrib/ncurses/misc/makellib b/contrib/ncurses/misc/makellib
deleted file mode 100755
index 046040734bca..000000000000
--- a/contrib/ncurses/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: makellib,v 1.8 2000/10/28 21:37:10 tom Exp $
-# System-dependent wrapper for 'lint' that creates a lint-library via the
-# following method (XXX is the name of the library):
-# a. If the file llib-lXXX doesn't exist, create it using the make-rule
-# 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/contrib/ncurses/misc/menu.def b/contrib/ncurses/misc/menu.def
deleted file mode 100644
index 01f973c286ca..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/menu.ref b/contrib/ncurses/misc/menu.ref
deleted file mode 100644
index cee964f7df1b..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/ncu-indent b/contrib/ncurses/misc/ncu-indent
deleted file mode 100755
index 1e1c7fffaeb2..000000000000
--- a/contrib/ncurses/misc/ncu-indent
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/bin/sh
-#****************************************************************************
-#* Copyright (c) 2001-2005,2006 Thomas E. Dickey *
-#* *
-#* Permission is hereby granted, free of charge, to any person obtaining a *
-#* copy of this software and associated documentation files (the *
-#* "Software"), to deal in the Software without restriction, including *
-#* without limitation the rights to use, copy, modify, merge, publish, *
-#* distribute, distribute with modifications, sublicense, and/or sell *
-#* copies of the Software, and to permit persons to whom the Software is *
-#* furnished to do so, subject to the following conditions: *
-#* *
-#* The above copyright notice and this permission notice shall be included *
-#* in all copies or substantial portions of the Software. *
-#* *
-#* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-#* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-#* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-#* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-#* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-#* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-#* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-#* *
-#* Except as contained in this notice, the name(s) of the above copyright *
-#* holders shall not be used in advertising or otherwise to promote the *
-#* sale, use or other dealings in this Software without prior written *
-#* authorization. *
-#****************************************************************************/
-# $Id: ncu-indent,v 1.16 2006/02/18 17:02:22 tom Exp $
-NOOP=no
-OPTS='
---blank-lines-after-procedures
---braces-on-if-line
---continuation-indentation0
---continue-at-parentheses
---cuddle-else
---indent-level4
---leave-preprocessor-space
---no-blank-lines-after-commas
---no-blank-lines-after-declarations
---no-space-after-function-call-names
---procnames-start-lines
---space-special-semicolon
---swallow-optional-blank-lines
---tab-size8
-
--T NCURSES_EXPORT_VAR
--T NCURSES_INLINE
--T SCREEN
--T TERMTYPE
--T attr_t
--T cchar_t
--T chtype
--T inline
--T wchar_t
--T wint_t
-
--T BUFFER
--T CHARTYPE
--T FILE
--T GCC_NORETURN
--T LINE
--T MARK
--T RETSIGTYPE
--T TBUFF
--T WINDOW
--T size_t
--T va_list
-
--T Cardinal
--T Widget
--T XtPointer
-'
-for name in $*
-do
- case $name in
- -v|-n)
- NOOP=yes
- OPTS="$OPTS -v"
- ;;
- -*)
- OPTS="$OPTS $name"
- ;;
- *.[ch]|*.cc|*.cpp)
- save="${name}".a$$
- test="${name}".b$$
- rm -f "$save" "$test"
- mv "$name" "$save"
- sed \
- -e '/MODULE_ID(/s/)$/);/' \
- -e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
- -e 's,\<GCC_PRINTFLIKE(,;//GCC_PRINTFLIKE(,' \
- -e 's,\<GCC_SCANFLIKE(,;//GCC_SCANFLIKE(,' \
- -e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
- "$save" >"$test"
- cp "$test" "$name"
- chmod u+w "$name"
- # ${INDENT_PROG-indent} --version
- ${INDENT_PROG-indent} -npro $OPTS "$name"
- sed \
- -e '/MODULE_ID(/s/);$/)/' \
- -e 's,;[ ]*//GCC_NORETURN;, GCC_NORETURN;,' \
- -e 's,;[ ]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \
- -e 's,;[ ]*//GCC_SCANFLIKE(, GCC_SCANFLIKE(,' \
- -e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
- "$name" >"$test"
- mv "$test" "$name"
- rm -f "${name}~"
- if test $NOOP = yes ; then
- if (cmp -s "$name" "$save" ) then
- echo "** no change: $name"
- else
- diff -u "$save" "$name"
- fi
- rm -f "$name"
- mv "$save" "$name"
- elif ( cmp -s "$name" "$save" ) ; then
- echo "** unchanged $name"
- rm -f "${name}"
- mv "$save" "$name"
- else
- echo "** updated $name"
- rm -f "$save"
- fi
- ;;
- *)
- echo "** ignored: $name"
- ;;
- esac
-done
diff --git a/contrib/ncurses/misc/ncurses-config.in b/contrib/ncurses/misc/ncurses-config.in
deleted file mode 100644
index a349250ab88c..000000000000
--- a/contrib/ncurses/misc/ncurses-config.in
+++ /dev/null
@@ -1,161 +0,0 @@
-#!@SHELL@
-# $Id: ncurses-config.in,v 1.12 2007/03/17 20:02:19 tom Exp $
-##############################################################################
-# Copyright (c) 2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey, 2006
-
-prefix="@prefix@"
-exec_prefix="@exec_prefix@"
-
-bindir="@bindir@"
-libdir="@libdir@"
-datadir="@datadir@"
-mandir="@mandir@"
-
-THIS="ncurses@DFT_ARG_SUFFIX@"
-
-LANG=C; export LANG
-LANGUAGE=C; export LANGUAGE
-LC_ALL=C; export LC_ALL
-LC_CTYPE=C; export LC_CTYPE
-
-test $# = 0 && exec @SHELL@ $0 --error
-
-while test $# -gt 0; do
- case "$1" in
- -*=*)
- ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
- ;;
- *)
- ARG=
- ;;
- esac
-
- case "$1" in
- # basic configuration
- --prefix=*)
- prefix="$ARG"
- test -z "$exec_prefix" && exec_prefix="$ARG"
- ;;
- --prefix)
- echo "$prefix"
- ;;
- --exec-prefix=*)
- exec_prefix="$ARG"
- ;;
- --exec-prefix)
- echo "$exec_prefix"
- ;;
- # compile/link
- --cflags)
- INCS=
- if test "${prefix}/include" != /usr/include ; then
- INCS="-I${prefix}/include"
- fi
- if test "@WITH_OVERWRITE@" != no ; then
- INCS="$INCS -I${prefix}/include/${THIS}"
- fi
- sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
- $INCS
-ENDECHO
- ;;
- --libs)
- sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
- -L${exec_prefix}/lib @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
-ENDECHO
- ;;
- # identification
- --version)
- echo "@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@"
- ;;
- --abi-version)
- echo "@cf_cv_abi_version@"
- ;;
- --mouse-version)
- echo "@NCURSES_MOUSE_VERSION@"
- ;;
- # locations
- --bindir)
- echo "${bindir}"
- ;;
- --datadir)
- echo "${datadir}"
- ;;
- --libdir)
- echo "${libdir}"
- ;;
- --mandir)
- echo "${mandir}"
- ;;
- --terminfo)
- echo "@TERMINFO@"
- ;;
- --terminfo-dirs)
- echo "@TERMINFO_DIRS@"
- ;;
- --termpath)
- echo "@TERMPATH@"
- ;;
- # general info
- --help)
- cat <<ENDHELP
-Usage: ${THIS}-config [options]
-
-Options:
- --prefix echos the package-prefix of ${THIS}
- --prefix=ARG sets the package-prefix of ${THIS}
- --exec-prefix echos the executable-prefix of ${THIS}
- --exec-prefix=ARG sets the executable-prefix of ${THIS}
-
- --cflags echos the C compiler flags needed to compile with ${THIS}
- --libs echos the libraries needed to link with ${THIS}
-
- --version echos the release+patchdate version of ${THIS}
- --abi-version echos the ABI version of ${THIS}
- --mouse-version echos the mouse-interface version of ${THIS}
-
- --bindir echos the directory containing ${THIS} programs
- --datadir echos the directory containing ${THIS} data
- --libdir echos the directory containing ${THIS} libraries
- --mandir echos the directory containing ${THIS} manpages
- --terminfo echos the \$TERMINFO terminfo database path
- --terminfo-dirs echos the \$TERMINFO_DIRS directory list
- --termpath echos the \$TERMPATH termcap list
-
- --help prints this message
-ENDHELP
- ;;
- --error|*)
- @SHELL@ $0 --help 1>&2
- exit 1
- ;;
- esac
- shift
-done
-# vile:shmode
diff --git a/contrib/ncurses/misc/ncurses.def b/contrib/ncurses/misc/ncurses.def
deleted file mode 100644
index fa50456f5cd0..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/ncurses.ref b/contrib/ncurses/misc/ncurses.ref
deleted file mode 100644
index cf4de7d59243..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/panel.def b/contrib/ncurses/misc/panel.def
deleted file mode 100644
index 30ce1d65ac80..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/panel.ref b/contrib/ncurses/misc/panel.ref
deleted file mode 100644
index e84045a1047d..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/run_tic.in b/contrib/ncurses/misc/run_tic.in
deleted file mode 100644
index 2732403a393d..000000000000
--- a/contrib/ncurses/misc/run_tic.in
+++ /dev/null
@@ -1,174 +0,0 @@
-#!@SHELL@
-# $Id: run_tic.in,v 1.23 2006/10/28 19:43:30 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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
-#
-# 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}
-: ${ext_funcs=@NCURSES_EXT_FUNCS@}
-
-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:../lib:${DESTDIR}$bindir$PATH ;;
-*) PATH=../progs:../lib:${DESTDIR}$bindir:$PATH ;;
-esac
-export PATH
-SHLIB="sh $srcdir/shlib"
-else
-# Cross-compiling, so don't set PATH or run shlib.
-SHLIB=
-# reset $suffix, since it applies to the target, not the build platform.
-suffix=
-fi
-
-
-# set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
-# the PATH we just set.
-SHLIB_PATH=$PATH
-export SHLIB_PATH
-
-# set a variable to simplify environment update in shlib
-SHLIB_HOST=@host_os@
-export SHLIB_HOST
-
-# don't use user's TERMINFO variable
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( test -d "$TERMINFO" && cd $TERMINFO && rm -fr ? 2>/dev/null )
-
-if test "$ext_funcs" = 1 ; then
-cat <<EOF
-Running tic to install $TERMINFO ...
-
- You may see messages regarding extended capabilities, e.g., AX.
- These are extended terminal capabilities which are compiled
- using
- tic -x
- If you have ncurses 4.2 applications, you should read the INSTALL
- document, and install the terminfo without the -x option.
-
-EOF
-if ( $SHLIB tic$suffix -x -s -o $TERMINFO $source )
-then
- echo '** built new '$TERMINFO
-else
- echo '? tic could not build '$TERMINFO
- exit 1
-fi
-else
-cat <<EOF
-Running tic to install $TERMINFO ...
-
- You may see messages regarding unknown capabilities, e.g., AX.
- These are extended terminal capabilities which may be compiled
- using
- tic -x
- If you have ncurses 4.2 applications, you should read the INSTALL
- document, and install the terminfo without the -x option.
-
-EOF
-if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
-then
- echo '** built new '$TERMINFO
-else
- echo '? tic could not build '$TERMINFO
- exit 1
-fi
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
-# 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 '** sym-linked '$TICDIR' for compatibility'
- else
- echo '** could not sym-link '$TICDIR' for compatibility'
- fi
- fi
-fi
-# vile:shmode
diff --git a/contrib/ncurses/misc/shlib b/contrib/ncurses/misc/shlib
deleted file mode 100755
index a3ed8101d192..000000000000
--- a/contrib/ncurses/misc/shlib
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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: shlib,v 1.11 2007/01/13 17:09:52 tom Exp $
-# Use this script as a wrapper when running executables linked to shared
-# libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
-# the soname's path within the linked executable (such as IRIX), e.g,
-#
-# 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.
-# Cygwin uses $PATH
-# Mac OS X uses $DYLD_LIBRARY_PATH
-#
-# Other cases not handled by this script:
-#
-# AIX uses $LIBPATH
-# IRIX64 may use $LD_LIBRARY64_PATH or $LD_LIBRARYN32_PATH
-# Solaris may use $LD_LIBRARY_PATH_64
-#
-CDPATH=
-#
-# Make sure that we use the PATH that was set in run_tic.sh
-if test -n "$SHLIB_PATH" ; then
- PATH=$SHLIB_PATH
- export PATH
-fi
-
-# Find the lib-directory for this build tree
-q=""
-for p in lib ../lib ../../lib ../../../lib
-do
- if test -d $p; then
- q=`cd $p; pwd`
- break
- elif test -f configure && test ! -d ../$p ; then
- break
- fi
-done
-
-# Set the environment variable.
-if test -n "$q" ; then
- system=
- if test -n "$SHLIB_HOST" ; then
- system="$SHLIB_HOST"
- elif test -n "$PATHEXT" ; then
- system=cygwin
- elif test -n "$LIBRARY_PATH" ; then
- system=beos
- elif test -n "$DYLD_LIBRARY_PATH" ; then
- system=darwin
- elif test -n "$LD_LIBRARY_PATH"; then
- system=unix
- else
- for r in $q/*.*
- do
- if test -f "$r"
- then
- case $r in
- *.dll)
- system=cygwin
- ;;
- *.dylib)
- system=darwin
- ;;
- esac
- fi
- test -n "$system" && break
- done
- fi
-
- case .$system in
- .cygwin*)
- variable=PATH
- ;;
- .beos*)
- variable=LIBRARY_PATH
- ;;
- .darwin*)
- variable=DYLD_LIBRARY_PATH
- ;;
- *)
- variable=LD_LIBRARY_PATH
- ;;
- esac
-
- eval 'test -z "$'$variable'" && '$variable'=":"'
- eval $variable'="$q:$'$variable'"'
- eval 'export '$variable
-fi
-
-eval "$*"
diff --git a/contrib/ncurses/misc/tabset/std b/contrib/ncurses/misc/tabset/std
deleted file mode 100644
index e93f737f0e35..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/tabset/stdcrt b/contrib/ncurses/misc/tabset/stdcrt
deleted file mode 100644
index 66ba12f64da5..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/tabset/vt100 b/contrib/ncurses/misc/tabset/vt100
deleted file mode 100644
index 8828d19da748..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/tabset/vt300 b/contrib/ncurses/misc/tabset/vt300
deleted file mode 100644
index b1f9ce16d134..000000000000
--- a/contrib/ncurses/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/contrib/ncurses/misc/tdlint b/contrib/ncurses/misc/tdlint
deleted file mode 100755
index c0e652b6f44f..000000000000
--- a/contrib/ncurses/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: tdlint,v 1.5 2000/10/28 20:53:36 tom Exp $
-#
-# Lint-script that allows user's own lint libraries, in addition to the ones
-# installed in the system.
-#
-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/contrib/ncurses/misc/terminfo.src b/contrib/ncurses/misc/terminfo.src
deleted file mode 100644
index 8627cece61c9..000000000000
--- a/contrib/ncurses/misc/terminfo.src
+++ /dev/null
@@ -1,21691 +0,0 @@
-######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
-#
-# This version of terminfo.src is distributed with ncurses and is maintained
-# by Thomas E. Dickey (TD).
-#
-# Report bugs and new terminal descriptions to
-# bug-ncurses@gnu.org
-#
-# $Revision: 1.328 $
-# $Date: 2008/04/29 00:49:41 $
-#
-# The original header is preserved below for reference. It is noted that there
-# is a "newer" version which differs in some cosmetic details (but actually
-# stopped updates several years ago); we have decided to not change the header
-# unless there is also a change in content.
-#
-# To further muddy the waters, it is noted that changes to this file as part of
-# maintenance of ncurses (since 1996) are generally conceded to be copyright
-# under the ncurses MIT-style license. That was the effect of the agreement
-# which the principal authors of ncurses made in 1998. However, since much of
-# the file itself is of unknown authorship (and the disclaimer below makes it
-# obvious that Raymond cannot or will not convey rights over those parts),
-# there is no explicit copyright notice on the file itself.
-#
-# It would also be a nuisance to split the file into unknown/known authorship
-# and move pieces as they are maintained, since many of the maintenance changes
-# have been small corrections to Raymond's translations to/from termcap format,
-# correcting the data but not the accompanying annotations.
-#
-# In any case, note that almost half of this file is not data but annotations
-# which reflect creative effort. Furthermore, the structure of entries to
-# reuse common chunks also is creative (and subject to copyright). Finally,
-# some portions of the data are derivative work under a compatible MIT-style
-# license from xterm.
-#
-#------------------------------------------------------------------------------
-# Version 10.2.1
-# 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|dumb tty,
- OTbs,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-
-# This is almost the same as "dumb", but with no prespecified width.
-# DEL and ^C are hardcoded to act as kill characters.
-# ^D acts as a line break (just like newline).
-# It also interprets
-# \033];xxx\007
-# for compatibility with xterm -TD
-9term|Plan9 terminal emulator for X,
- am,
- OTnl=^J, bel=^G, cud1=^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,
- sgr=\E[0%?%p3%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
- sgr0=\E[0m,
-ansi+sgrso|ansi standout only,
- rmso=\E[m, smso=\E[7m,
-ansi+sgrul|ansi underline only,
- 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, 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%;%?%p9%t;11%;m,
- sgr0=\E[0;10m, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
- use=klone+acs,
-
-# Most Intel boxes do not treat "invis" (invisible) text.
-klone+sgr8|attribute control for ansi.sys displays,
- invis=\E[8m,
- 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,
- use=klone+sgr,
-
-# 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+sgr8,
-
-# 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+enq|ncurses extension for ANSI ENQ,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
- u9=\E[c,
-
-# 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,
- use=ansi+enq, use=ecma+color, use=klone+sgr8, 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
-# doesn'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+sgr8,
-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. *
-# * *
-# ***************************************************************************
-#
-# 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, rmam=\E[?7l,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr,
- use=ecma+color,
-
-linux-m|Linux console no color,
- colors@, pairs@,
- setab@, setaf@, setb@, setf@, use=linux,
-
-# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
-# and it matters, turn off <ccc>. The %02x escape used to implement this is
-# not supposedly back-portable to older SV curses (although it has worked fine
-# on Solaris for several years) and not supported in ncurses versions before
-# 1.9.9.
-linux-c-nc|linux console with color-change,
- ccc,
- initc=\E]P%p1%x%p2%{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,
-
-# This uses graphics from VT codeset instead of from cp437.
-# reason: cp437 (aka "straight to font") is not functional under luit.
-# from: Andrey V Lukyanov <land@long.yar.ru>.
-linux-vt|linux console using VT codes for graphics,
- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
- rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0,
- smpch@, use=linux,
-
-# This is based on the Linux console (relies on the console to perform some
-# of the functionality), but does not recognize as many control sequences.
-# The program comes bundled with an old (circa 1998) copy of the Linux
-# console terminfo. It recognizes some non-ANSI/VT100 sequences such as
-# \E* move cursor to home, as as \E[H
-# \E,X same as \E(X
-# \EE move cursor to beginning of row
-# \E[y,xf same as \E[y,xH
-#
-# Note: The status-line support is buggy (dsl does not work).
-kon|kon2|jfbterm|Kanji ON Linux console,
- ccc@, hs,
- civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@,
- initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
- use=linux,
-
-#### 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,
-
-# From: Marcus Brinkmann
-# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
-#
-# Comments in the original are summarized here:
-#
-# hurd uses 8-bit characters (km).
-#
-# Although it doesn't do XON/XOFF, we don't want padding characters (xon).
-#
-# Regarding compatibility to vt100: hurd doesn't specify <xenl>, as we don't
-# have the eat_newline_glitch. It doesn't support setting or removing tab
-# stops (hts/tbc).
-#
-# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is
-# one byte instead three.
-#
-# <ich1> is not included because hurd has insert mode.
-#
-# hurd doesn't use ^J for scrolling, because this could put things into the
-# scrollback buffer.
-#
-# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
-# This is a GNU extension.
-#
-# The original has commented-out ncv, but is restored here.
-#
-# Reading the source, RIS resets cnorm, but not xmous.
-hurd|The GNU Hurd console server,
- am, bce, bw, eo, km, mir, msgr, xon,
- colors#8, it#8, ncv#18, pairs#64,
- acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
- invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
- kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T,
- rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h,
- smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l,
- gsbom=\E[>1h,
-
-#### OSF Unix
-#
-
-# 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, use=vt100+enq, 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+sgr8,
-
-#### 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|DNARD OpenFirmware console,
- bw,
- cols#80, lines#30,
- bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
- dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K,
- flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL,
- il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D,
- kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P,
- kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W,
- kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
- kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
- rmso=\2330m, rmul=\2330m,
- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
- sgr0=\2330m,
-
-# NetBSD "wscons" emulator in vt220 mode.
-# This entry is based on the NetBSD termcap entry, correcting the ncv value.
-# The emulator renders underlined text in red. Colors are otherwise usable.
-#
-# Testing the emulator and reading the source code (NetBSD 2.0), it appears
-# that "vt220" is inaccurate. There are a few vt220-features, but most of the
-# vt220 screens in vttest do not work with this emulator. For instance, it
-# identifies itself (primary DA response) as a vt220 with selective erase. But
-# the selective erase feature does not work. The secondary response is copied
-# from Kermit's emulation of vt220, does not correspond to actual vt220. At
-# the level of detail in a termcap, it is a passable emulator, since ECH does
-# work. Don't use it on a VMS system -TD
-wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
- bce, msgr,
- colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
- is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, khome=\E[7~, op=\E[m, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, use=vt220,
-
-wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
- km, use=wsvt25,
-
-# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
-# DECstation/pmax.
-rcons|BSD rasterconsole,
- use=sun-il,
-# Color version of above. Color currently only provided by NetBSD.
-rcons-color|BSD rasterconsole with ANSI color,
- bce,
- colors#8, pairs#64,
- op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons,
-
-# mgterm -- MGL/MGL2, MobileGear Graphic Library
-# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
-# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
-# -- compare with cons25w
-mgterm,
- OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
- colors#8, cols#80, it#8, lines#18, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, 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, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
- kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
- kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h,
- kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m,
- kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q,
- kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
- kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z,
- kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^,
- kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R,
- kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
- knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
- sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
-cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
- acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
- use=cons25w,
-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
- colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
- smul=\E[4m, use=cons25,
-cons30|ansi80x30|freebsd console (30-line ansi mode),
- lines#30, use=cons25,
-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
- lines#30, use=cons25-m,
-cons43|ansi80x43|freebsd console (43-line ansi mode),
- lines#43, use=cons25,
-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
- lines#43, use=cons25-m,
-cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
- lines#50, use=cons25,
-cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
- lines#50, use=cons25-m,
-cons60|ansi80x60|freebsd console (60-line ansi mode),
- lines#60, use=cons25,
-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
- lines#60, use=cons25-m,
-cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
- acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225,
- use=cons25w,
-cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
- colors@, pairs@,
- op@, rmul=\E[m, setab@, setaf@,
- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
- smul=\E[4m, use=cons25r,
-cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
- lines#50, use=cons25r,
-cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
- lines#50, use=cons25r-m,
-cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
- lines#60, use=cons25r,
-cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
- lines#60, use=cons25r-m,
-# ISO 8859-1 FreeBSD console
-cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
- acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237,
- use=cons25w,
-cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
- colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
- smul=\E[4m, use=cons25l1,
-cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
- lines#50, use=cons25l1,
-cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
- lines#50, use=cons25l1-m,
-cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
- lines#60, use=cons25l1,
-cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
- lines#60, use=cons25l1-m,
-
-#### 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+sgr8,
-
-# 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)
-#
-# Actually (TD pointed this out at the time the acsc string was added):
-# vt52 shouldn't define full acsc since most of the cells don't match.
-# see vt100 manual page A-31. This is the list that does match:
-# f degree
-# g plus/minus
-# h right-arrow
-# k down-arrow
-# m scan-1
-# o scan-3
-# q scan-5
-# s scan-7
-# The line-drawing happens to work in several terminal emulators, but should
-# not be used as a guide to the capabilities of the vt52. Note in particular
-# that vt52 does not support line-drawing characters (the scan-X values refer
-# to a crude plotting feature) -TD
-vt52|dec vt52,
- OTbs,
- cols#80, it#8, lines#24,
- acsc=ffgghhompoqqss.k, bel=^G, clear=\EH\EJ, cr=^M,
- cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-#### 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_|
-#
-# Note however, that the arrangement of the 5-key ka1-kc3 do not follow the
-# terminfo guidelines. That is a compromise used to assign the remaining
-# keys on the keypad to kf5-kf0, used on older systems with legacy termcap
-# support:
-vt100+keypad|dec vt100 numeric keypad no fkeys,
- ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn,
-vt100+pfkeys|dec vt100 numeric keypad,
- kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- use=vt100+keypad,
-vt100+fnkeys|dec vt100 numeric keypad,
- kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl,
- kf9=\EOw, use=vt100+pfkeys,
-#
-# A better adaptation to modern keyboards such as the PC's, which have a dozen
-# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to
-# use the 5-key arrangement to model the arrow keys as suggested in the
-# terminfo guidelines:
-# _______________________________________
-# | PF1 | PF2 | PF3 | PF4 |
-# | $OP | $OQ | $OR | $OS |
-# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
-# | 7 8 9 - |
-# | $Ow | $Ox | $Oy | $Om |
-# |_ka1__K1_|_________|_ka3__K3_|_________|
-# | 4 | 5 | 6 | , |
-# | $Ot | $Ou | $Ov | $Ol |
-# |_________|_kb2__K2_|_________|_________|
-# | 1 | 2 | 3 | |
-# | $Oq | $Or | $Os | enter |
-# |_kc1__K4_|_________|_kc3__K5_| $OM |
-# | 0 | . | |
-# | $Op | $On | |
-# |___________________|_________|_kent_@8_|
-#
-vt220+keypad|dec vt220 numeric keypad,
- ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt,
- kb3=\EOv, kc2=\EOr,
-#
-vt100+enq|ncurses extension for vt100-style ENQ,
- u8=\E[?1;2c, use=ansi+enq,
-vt102+enq|ncurses extension for vt102-style ENQ,
- u8=\E[?6c, use=ansi+enq,
-#
-# And here, for those of you with orphaned VT100s lacking documentation, is
-# a description of the soft switches invoked when you do `Set Up'.
-#
-# Scroll 0-Jump Shifted 3 0-#
-# | 1-Smooth | 1-British pound sign
-# | Autorepeat 0-Off | Wrap Around 0-Off
-# | | 1-On | | 1-On
-# | | Screen 0-Dark Bkg | | New Line 0-Off
-# | | | 1-Light Bkg | | | 1-On
-# | | | Cursor 0-Underline | | | Interlace 0-Off
-# | | | | 1-Block | | | | 1-On
-# | | | | | | | |
-# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings
-# | | | | | | | |
-# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz
-# | | | 1-On | | | 1-50 Hz
-# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits
-# | | 1-ANSI | | 1-8 Bits
-# | Keyclick 0-Off | Parity 0-Off
-# | 1-On | 1-On
-# Margin Bell 0-Off Parity Sense 0-Odd
-# 1-On 1-Even
-#
-# The following SET-UP modes are assumed for normal operation:
-# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS
-# WRAP_AROUND_ON JUMP_SCROLL_OFF
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements; I recommend
-# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_#
-# Unless you have a graphics add-on such as Digital Engineering's VT640
-# (and even then, whenever it can be arranged!) you should set
-# INTERLACE_OFF
-#
-# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
-vt100|vt100-am|dec vt100 (w/advanced video),
- OTbs, am, mc5i, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
- use=vt100+fnkeys,
-vt100nam|vt100-nam|vt100 no automargins,
- am@, xenl@, use=vt100-am,
-vt100-vb|dec vt100 (w/advanced video) & no beep,
- bel@, flash=\E[?5h\E[?5l, use=vt100,
-
-# 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,
- dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
- use=vt100,
-vt102-w|dec vt102 in wide mode,
- cols#132,
- rs3=\E[?3h, use=vt102,
-
-# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
-# fail to interpret the ^O and ^N escapes properly. Symptom: the <sgr0>
-# string in the canonical vt100 entry above leaves the screen littered
-# with little snowflake or star characters (IBM PC ROM character \017 = ^O)
-# after highlight turnoffs. This entry should fix that, and even leave
-# ACS support working, at the cost of making multiple-highlight changes
-# slightly more expensive.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
-vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
- sgr@, sgr0=\E[m, use=vt102,
-
-# VT125 Graphics CRT. Clear screen also erases graphics
-# Some vt125's came configured with vt102 support.
-vt125|vt125 graphics terminal,
- mir,
- clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
-
-# This isn't a DEC entry, it came from University of Wisconsin.
-# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
-vt131|dec vt131,
- OTbs, am, xenl,
- cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
- rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
- rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-
-# vt132 - like vt100 but slower and has ins/del line and such.
-# I'm told that <smir>/<rmir> are backwards in the terminal from the
-# manual and from the ANSI standard, this describes the actual
-# terminal. I've never actually used a vt132 myself, so this
-# is untested.
-#
-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~,
- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
- mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-vt220-w|vt200-w|DEC vt220 in wide mode,
- cols#132,
- rs3=\E[?3h, use=vt220,
-vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
- OTbs, am, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0,
- flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
- ich=\233%p1%d@, if=/usr/share/tabset/vt100,
- il=\233%p1%dL, il1=\233L, ind=\ED,
- is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
- kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
- kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
- kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
- kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
- knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
- nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B,
- rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m,
- rs1=\233?3l, sc=\E7,
- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
- smso=\2337m, smul=\2334m, tbc=\2333g,
-
-# 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[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I,
- kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i,
- mc5=\E[?5i, nel=\EE, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[1$}\E[H\E[K, use=vt220+keypad,
-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
- am@,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- use=vt320,
-# We have to init 132-col mode, not 80-col mode.
-vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
- cols#132, wsl#132,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- use=vt320,
-vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
- am@,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- use=vt320-w,
-
-# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
-# which are pretty much a superset of the VT320. They have the
-# host writable status line, yet another different DRCS matrix size,
-# and such, but they add the DEC Technical character set, Multiple text
-# pages, selectable length pages, and the like. The difference between
-# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
-# monitor, the former has 4 planes and a color monitor. These terminals
-# support VT131 and ANSI block mode, but as with much of these things,
-# termcap/terminfo doesn't deal with these features.
-#
-# Note that this entry is are set up in what was the standard way for GNU
-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
-# keys were switched into application mode at the same time the numeric pad
-# is switched into application mode. This changes the definitions of the
-# arrow keys. Emacs v19 is smarter and mines its keys directly out of
-# your termcap or terminfo entry,
-#
-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
-# (vt340: string capability "sb=\E[M" corrected to "sr";
-# also, added <rmam>/<smam> based on the init string -- esr)
-vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$},
- ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\ED,
- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
-# (originally written with vt420 as its primary name, and usable for it).
-#
-# 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,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
- el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
-# a missing <sc> -- esr)
-vt420|DEC VT420,
- am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m,
-
-# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
-# takes two parameters, the key and the string. Translating the key is
-# straightforward (keys 1-5 are not defined on real terminals, though some
-# emulators define these):
-#
-# 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, use=vt100+enq, use=vt220, use=ecma+color,
-
-# PuTTY 0.55 (released 3 August 2004)
-# http://www.chiark.greenend.org.uk/~sgtatham/putty/
-#
-# Comparing with 0.51, vttest is much better (only a few problems with the
-# cursor position reports and wrapping).
-#
-# PuTTY 0.51 (released 14 December 2000)
-#
-# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as
-# well as SCO and Atari, color palettes from Linux console). Reading the code,
-# it is intended to be VT102 plus selected features. By default, it sets $TERM
-# to xterm, which is incorrect, since several features are misimplemented:
-#
-# Alt+key always sends ESC+key, so 'km' capability is removed.
-#
-# Control responses, wrapping and tabs are buggy, failing a couple of
-# screens in vttest.
-#
-# xterm mouse support is not implemented (unrelease version may).
-#
-# Several features such as backspace/delete are optional; this entry documents
-# the default behavior -TD
-
-putty|PuTTY terminal emulator,
- am, bce, bw, ccc, hs, mir, msgr, xenl, xon,
- colors#8, it#8, ncv#22, pairs#64,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- dch=\E[%p1%dP, dch1=\E[P,
- dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
- dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
- indn=\E[%p1%dS,
- initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
- kb2=\E[G, kbs=\177, kcan=^C, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
- kend=\E[4~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
- ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
- rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
- s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq,
-vt100-putty|Reset PuTTY to pure vt100,
- rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
- use=vt100,
-# palette is hardcoded...
-putty-256color|PuTTY 0.58 with xterm 256-colors,
- initc@, use=xterm+256color, use=putty,
-
-# One of the keyboard selections is "VT100+".
-# pterm (the X11 port) uses shifted F1-F10 as F11-F20
-putty-vt100|VT100+ keyboard layout,
- kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, use=putty,
-
-# This entry 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[0m\017, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq,
- 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@, use=vt102+enq, 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|vtnt|windows 2000 ansi (sic),
- bce,
- dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
- use=ms-vt100,
-
-# Based on comments from Federico Bianchi:
-#
-# vt100+ is basically a VT102-noSGR with ANSI.SYS colors and a different
-# scheme for PF keys.
-#
-# and PuTTY wishlist:
-#
-# The modifiers are represented as the codes listed above, prefixed to
-# the normal sequences. If the modifier is pressed alone, its sequence
-# is transmitted twice in succession. If multiple modifiers apply,
-# they're transmitted in the order shift, control, alt.
-#
-# Shift \E^S
-# Alt \E^A,
-# Ctrl \E^C,
-ms-vt100+|vt100+|windows XP vt100+ (sic),
- kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@,
- kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3,
- kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6,
- kf19=\E\023\E7, kf2=\E2, kf20=\E\023\E8, kf21=\E\023\E9,
- kf22=\E\023\E0, kf23=\E\023\E!, kf24=\E\023\E@,
- kf25=\E\003\E1, kf26=\E\003\E2, kf27=\E\003\E3,
- kf28=\E\003\E4, kf29=\E\003\E5, kf3=\E3, kf30=\E\003\E6,
- kf31=\E\003\E7, kf32=\E\003\E8, kf33=\E\003\E9,
- kf34=\E\003\E0, kf35=\E\003\E!, kf36=\E\003\E@,
- kf37=\E\001\E1, kf38=\E\001\E2, kf39=\E\001\E3, kf4=\E4,
- kf40=\E\001\E4, kf41=\E\001\E5, kf42=\E\001\E6,
- kf43=\E\001\E7, kf44=\E\001\E8, kf45=\E\001\E9,
- kf46=\E\001\E0, kf47=\E\001\E!, kf48=\E\001\E@, kf5=\E5,
- kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+,
- knp=\E/, kpp=\E?, use=ms-vt100-color,
-
-ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
- use=ms-vt100+,
-
-# a minimal subset of a vt100 (compare with "news-unk).
-tt|tkterm|Don Libes' tk text widget terminal emulator,
- clear=\E[H\E[J, cr=^M, cuf1=\E[C, cup=\E[%p1%d;%p2%dH,
- cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, rmso=\E[m,
- smso=\E[7m,
-
-#### 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, use=vt100+enq,
-# Compatible with the R6 xterm
-# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
-# added khome/kend, hts based on the R6 xterm code - TD
-# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
-# for compatibility with other emulators).
-xterm-r6|xterm-old|xterm X11R6 version,
- OTbs, am, km, mir, msgr, xenl,
- cols#80, it#8, lines#24,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=^J,
- is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7,
- sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- use=vt100+enq,
-# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
-# The name has been changed and some aliases have been removed.
-xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
- OTbs, am, bce, km, mir, msgr, xenl,
- cols#80, it#8, lines#24, ncv@,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J,
- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
- kbeg=\EOE, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kdch1=\177, kend=\EOF, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El,
- memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=^O,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
- use=ecma+color, use=vt220+keypad,
-
-# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
-# codes for F1-F4 except while in VT220 mode.
-xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System),
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32,
-
-# This version was released in XFree86 3.3.3 (November 1998).
-# Besides providing printer support, it exploits a new feature that allows
-# xterm to use terminfo-based descriptions with the titeInhibit resource.
-# -- the distribution contained incorrect khome/kend values -TD
-xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
- mc5i,
- blink=\E[5m, ich1@, invis=\E[8m,
- is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
-
-# This version was released in XFree86 4.0.
-xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
- npc,
- kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
- kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
- ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
- kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
- kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
- kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
- kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
- kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
- kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- smcup=\E[?1049h, use=xterm-xf86-v333,
-
-# This version was released in XFree86 4.3.
-xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System),
- kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
- kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
- kbeg@,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- use=xterm-xf86-v40,
-
-# This version was released in XFree86 4.4.
-xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
- cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
- rin=\E[%p1%dT, use=xterm-xf86-v43,
-
-xterm-xfree86|xterm terminal emulator (XFree86),
- use=xterm-xf86-v44,
-
-# This version reflects the current xterm features.
-xterm-new|modern xterm terminal emulator,
- npc,
- indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
- kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
- knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
- use=xterm-basic,
-#
-# This fragment describes as much of XFree86 xterm's "pc-style" function
-# keys as will fit into terminfo's 60 function keys.
-# From ctlseqs.ms:
-# Code Modifiers
-# ---------------------------------
-# 2 Shift
-# 3 Alt
-# 4 Shift + Alt
-# 5 Control
-# 6 Shift + Control
-# 7 Alt + Control
-# 8 Shift + Alt + Control
-# ---------------------------------
-# The meta key may also be used as a modifier in this scheme, adding another
-# bit to the parameter.
-xterm+pcfkeys|fragment for PC-style fkeys,
- use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
- use=xterm+pce2,
-#
-xterm+noapp|fragment with cursor keys in normal mode,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
- khome=\E[H,
-
-xterm+app|fragment with cursor keys in application mode,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
- khome=\EOH,
-#
-# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
-# and revised in patch #167 (2002/8/24). Some other terminal emulators copied
-# the earlier scheme, as noted in the "use=" clauses in this file.
-#
-# The original assignments from patch #94 for cursor-keys had some technical
-# issues:
-#
-# A parameter for a function-key to represent a modifier is just more
-# bits. But for a cursor-key it may change the behavior of the
-# application. For instance, emacs decodes the first parameter of a
-# cursor-key as a repeat count.
-#
-# A parameterized string should (really) not begin with SS3 (\EO).
-# Rather, CSI (\E[) should be used.
-#
-# For these reasons, the original assignments were deprecated. For
-# compatibility reasons, they are still available as a setting of xterm's
-# modifyCursorKeys resource. These fragments list the modified cursor-keys
-# that might apply to xterm+pcfkeys with different values of that resource.
-xterm+pcc3|fragment with modifyCursorKeys:3,
- kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
- kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B,
- kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
- kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D,
- kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C,
- kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C,
- kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A,
- kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
- kUP7=\E[>1;7A,
-
-xterm+pcc2|fragment with modifyCursorKeys:2,
- kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
- kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
- kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
- kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
- kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C,
- kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A,
- kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,
-
-xterm+pcc1|fragment with modifyCursorKeys:1,
- kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
- kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B,
- kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D,
- kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C,
- kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A,
- kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,
-
-xterm+pcc0|fragment with modifyCursorKeys:0,
- kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
- kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B,
- kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D,
- kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C,
- kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A,
- kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,
-
-#
-# Here are corresponding fragments from xterm patch #216:
-#
-xterm+pcf0|fragment with modifyFunctionKeys:0,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR,
- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
- kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
- kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
- kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
- kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
- kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
- kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
- kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-#
-xterm+pcf2|fragment with modifyFunctionKeys:2,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
- kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
- kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
- kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
- kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
- kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
- kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
- kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
- kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~,
-#
-# Chunks from xterm #230:
-xterm+pce2|fragment with modifyCursorKeys:2,
- kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
- kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
- kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
- kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
- kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
- kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
- kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
- kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
- kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
- kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
- use=xterm+edit,
-
-xterm+edit|fragment for 6-key editing-keypad,
- kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- use=xterm+pc+edit,
-
-xterm+pc+edit|fragment for pc-style editing keypad,
- kend=\E[4~, khome=\E[1~,
-
-xterm+vt+edit|fragment for vt220-style editing keypad,
- kfnd=\E[1~, kslt=\E[4~,
-
-#
-# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
-# Alternatively, the same scheme with old-style function keys as in xterm-r6
-# is shown here (because that is used in mrxvt and mlterm):
-xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
- kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
- kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
- kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
- kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
- kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
- kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
- kf63=\E[13;4~, use=xterm+pcf2,
-#
-# This chunk is used for building the VT220/Sun/PC keyboard variants.
-xterm-basic|modern xterm terminal emulator - common,
- OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
- kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
- memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
- sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
- smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
-
-# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
-# In retrospect, something like xterm-r6 was intended here -TD
-xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
- rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
-
-# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
-xterm-16color|xterm with 16 colors like aixterm,
- use=ibm+16color, use=xterm-new,
-
-# This is a compile-time feature of XFree86 xterm beginning with
-# patch #111 (1999/7/10) -TD
-xterm+256color|xterm 256-color feature,
- ccc,
- colors#256, pairs#32767,
- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
- setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
- setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
- setb@, setf@,
-
-# This is a compile-time feature of XFree86 xterm beginning with
-# patch #115 (1999/9/18) -TD
-#
-# Note that the escape sequences used are the same as for 256-colors - xterm
-# has a different table of default color resource values. If built for
-# 256-colors, it can still handle an 88-color palette by using the initc
-# capability.
-#
-# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
-# which support the xterm+256color feature support the associated initc
-# capability. So it is cancelled in the entries which use this and/or the
-# xterm+256color block.
-xterm+88color|xterm 88-color feature,
- colors#88, pairs#7744, use=xterm+256color,
-
-# These variants of XFree86 3.9.16 xterm are built as a configure option.
-xterm-256color|xterm with 256 colors,
- use=xterm+256color, use=xterm-new,
-xterm-88color|xterm with 88 colors,
- use=xterm+88color, use=xterm-256color,
-
-# These two are used to demonstrate the any-event mouse support, i.e., by
-# using an extended name "XM" which tells ncurses to put the terminal into
-# a special mode when initializing the xterm mouse.
-xterm-1002|testing xterm-mouse,
- XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new,
-xterm-1003|testing xterm-mouse,
- XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new,
-
-# This is another variant, for XFree86 4.0 xterm (T.Dickey)
-# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
-# To use it, your decTerminalID resource must be set to 200 or above.
-#
-# HTS \E H \210
-# RI \E M \215
-# SS3 \E O \217
-# CSI \E [ \233
-#
-xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
- OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
- civis=\233?25l, clear=\233H\2332J,
- cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr,
- cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J,
- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
- cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h,
- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
- flash=\233?5h$<100/>\233?5l, home=\233H,
- hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
- il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
- is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
- ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
- kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
- kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
- kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
- kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~,
- kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
- kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
- knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
- meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
- ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l,
- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
- rs1=\Ec,
- rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
- sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
- setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
- smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
- smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
- u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
-
-xterm-hp|xterm with hpterm function keys,
- kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
- kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
- knp=\ES, kpp=\ET, use=xterm-basic,
-
-xterm-sco|xterm with SCO function keys,
- kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
- kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
- kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
- kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
- kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
- kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
- kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
- kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
- kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
- kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I,
- use=xterm-basic,
-
-# The xterm-new description has all of the features, but is not completely
-# compatible with vt220. If you are using a Sun or PC keyboard, set the
-# sunKeyboard resource to true:
-# + maps the editing keypad
-# + interprets control-function-key as a second array of keys, so a
-# 12-fkey keyboard can support vt220's 20-fkeys.
-# + maps numeric keypad "+" to ",".
-# + uses DEC-style control sequences for the application keypad.
-#
-xterm-vt220|xterm emulating vt220,
- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- use=xterm+app, use=xterm+edit, use=xterm-basic,
- use=vt220+keypad,
-
-xterm-vt52|xterm emulating dec vt52,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
- home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-xterm-noapp|xterm with cursor keys in normal mode,
- rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
- use=xterm,
-
-xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
- lines#24, use=xterm-old,
-
-# This is xterm for ncurses.
-xterm|xterm terminal emulator (X Window System),
- use=xterm-new,
-
-# 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-old,
-# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
-# (kterm should not invoke DEC Graphics as the alternate character set
-# -- Kenji Rikitake)
-# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics
-# -- MATSUMOTO Shoji)
-# kterm implements acsc via built-in table of X Drawable's
-kterm|kterm kanji terminal emulator (X window system),
- eslok, hs,
- ncv@,
- acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
- csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
- kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h,
- tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
-kterm-color|kterm-co|kterm with ANSI colors,
- ncv@, use=kterm, use=ecma+color,
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
- ich@, ich1@, use=xterm,
-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
-xterm1|xterm terminal emulator ignoring the alternate screen buffer,
- rmcup@, smcup@, use=xterm,
-
-# This describes the capabilities of color_xterm, an xterm variant from
-# before ECMA-64 color support was folded into the main-line xterm release.
-# This entry is straight from color_xterm's maintainer.
-# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
-# The README's with the distribution also say that it supports SGR 21, 24, 25
-# and 27, but they are not present in the terminfo or termcap.
-color_xterm|cx|cx100|color_xterm color terminal emulator for X,
- OTbs, am, km, mir, msgr, xenl,
- cols#80, it#8, lines#65, ncv@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[0m\017, smacs=^N, smam=\E[?7h,
- smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, use=ecma+color, use=vt220+keypad,
-
-# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
-# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
-# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This
-# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
-# that each of those implements the home, end, delete keys differently.
-#
-# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
-# colors; note that this is not compatible with the 5.2 version.
-# csw (2002-05-15): make xterm-color primary instead of nxterm, to
-# match XFree86's xterm.terminfo usage and prevent circular links
-xterm-color|nxterm|generic color xterm,
- ncv@,
- op=\E[m, use=xterm-r6, use=klone+color,
-
-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome-rh62|Gnome terminal,
- bce,
- kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- use=xterm-color,
-
-# GNOME Terminal 1.4.0.4 (Redhat 7.2)
-#
-# This implements a subset of vt102 with a random selection of features from
-# other terminals such as color and function-keys.
-#
-# shift-f1 to shift-f10 are f11 to f20
-#
-# NumLock changes the application keypad to approximate vt100 keypad, except
-# that there is no escape sequence matching comma (,).
-#
-# Other defects observed:
-# vt100 LNM mode is not implemented.
-# vt100 80/132 column mode is not implemented.
-# vt100 DECALN is not implemented.
-# vt100 DECSCNM mode is not implemented, so flash does not work.
-# vt100 TBC (tab reset) is not implemented.
-# xterm alternate screen controls do not restore cursor position properly
-# it hangs in tack after running function-keys test.
-gnome-rh72|GNOME Terminal,
- bce, km@,
- civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
- sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color,
-
-# GNOME Terminal 2.0.1 (Redhat 8.0)
-#
-# Documentation now claims it implements vt220 (which is demonstrably false).
-# However, it does implement ECH, which is a vt220 feature. And there are
-# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display
-# more of its bugs using vttest.
-#
-# However, note that bce and msgr are broken in this release. Tabs (tbc and
-# hts) are broken as well. Sometimes flash (as in xterm-new) works.
-#
-# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu
-# operations. Shift-tab generates a distinct sequence so it can be argued
-# that it implements kcbt.
-gnome-rh80|GNOME Terminal,
- bce@, msgr@,
- ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177,
- kcbt=\E^I, op=\E[39;49m, use=gnome-rh72,
-
-# GNOME Terminal 2.2.1 (Redhat 9.0)
-#
-# bce and msgr are repaired.
-gnome-rh90|GNOME Terminal,
- bce, msgr,
- hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
- kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
- use=gnome-rh80,
-
-# GNOME Terminal 2.14.2 (Fedora Core 5)
-# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002.
-gnome-fc5|GNOME Terminal,
- rs1=\Ec,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
- use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
-
-# GNOME Terminal 2.18.1 (2007 snapshot)
-#
-# For any "recent" version of gnome-terminal, it is futile to attempt to
-# support modifiers on cursor- and keypad keys because the program usually
-# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
-# of the keys (which more/less correspond to the termcap values), and will
-# interpret those according to the $TERM value, but others not in the
-# terminfo according to some constantly changing set of hacker guidelines -TD
-gnome-2007|GNOME Terminal snapshot 2.18.1,
- use=xterm+pcc2, use=gnome-fc5,
-
-gnome|GNOME Terminal,
- use=gnome-2007,
-
-# palette is hardcoded...
-gnome-256color|GNOME Terminal with xterm 256-colors,
- initc@, use=xterm+256color, use=gnome,
-
-# XFCE Terminal 0.2.5.4beta2
-#
-# This is based on some of the same source code, e.g., the VTE library, as
-# gnome-terminal, but has fewer features, fails more screens in vttest.
-# Since most of the terminfo-related behavior is due to the VTE library,
-# the terminfo is the same as gnome-terminal.
-xfce|Xfce Terminal,
- use=gnome,
-
-# Multi-Gnome-Terminal 1.6.2
-#
-# This does not use VTE, and does have different behavior (compare xfce and
-# gnome).
-mgt|Multi GNOME Terminal,
- indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333,
-
-# 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.
-#
-# Update for konsole 1.3.2:
-# The 1049 private mode works (but see the other xterm screens in vttest).
-# Primary Device Attributes now returns the code for a vt100 with advanced
-# video option. Perhaps that's intended to be a "mildly-broken vt102".
-#
-# Updated for konsole 1.6.4:
-# add konsole-solaris
-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, indn=\E[%p1%dS, kbs=\177, kdch1@,
- kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
- kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
- kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
- use=ecma+color, use=xterm-r6,
-konsole-linux|KDE console window with linux keyboard,
- kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
- kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- use=konsole-base,
-konsole-solaris|KDE console window with Solaris keyboard,
- kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100,
-# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
-# than testing the code.
-konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
- kend=\E[4~, khome=\E[1~, use=konsole-vt100,
-# The value for kbs reflects local customization rather than the settings used
-# for XFree86 xterm.
-konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
- kend=\EOF, kf1=\EOP, kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R,
- kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
- kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf3=\EOR, kf4=\EOS,
- khome=\EOH, use=konsole-vt100,
-# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
-# it is still useful for deriving the other entries.
-konsole-vt100|KDE console window with vt100 (sic) keyboard,
- kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@,
- kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, use=konsole-base,
-konsole-vt420pc|KDE console window with vt420 pc keyboard,
- kbs=^H, kdch1=\177, use=konsole-vt100,
-konsole-16color|klone of xterm-16color,
- ncv#32, use=ibm+16color, use=konsole,
-# make a default entry for konsole
-konsole|KDE console window,
- use=konsole-xf4x,
-
-# palette is hardcoded...
-konsole-256color|KDE console window with xterm 256-colors,
- initc@, use=xterm+256color, use=konsole,
-
-# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
-#
-# It is nominally a vt102 emulator, with features borrowed from rxvt and
-# xterm.
-#
-# The function keys are numbered based on shift/control/alt modifiers, except
-# that the control-modifier itself is used to spawn a new copy of mlterm (the
-# "-P" option). So control/F1 to control/F12 may not be usable, depending on
-# how it is configured.
-#
-# kf1 to kf12 \E[11~ to \E[24~
-# shift kf1 to kf12 \E[11;2~ to \E[24;2~
-# alt kf1 to kf12 \E[11;3~ to \E[24;3~
-# shift/alt kf1 to kf12 \E[11;4~ to \E[24;4~
-# control kf1 to kf12 \E[11;5~ to \E[24;5~ (maybe)
-# control/shift kf1 to kf12 \E[11;6~ to \E[24;6~
-# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~
-# control/shit/alt kf1 to kf12 \E[11;8~ to \E[24;8~
-#
-mlterm|multi lingual terminal emulator,
- am, eslok, km, mc5i, mir, msgr, npc, xenl,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
- kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~, khome=\EOH,
- kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~,
- mc0=\E[i, nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
-
-# The insert/delete/home/end keys do not respond to modifiers because mlterm
-# looks in its termcap to decide which string to send. If it used terminfo
-# (when available), it could use the extended names introduced for xterm.
-mlterm+pcfkeys|fragment for PC-style fkeys,
- kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
- kDN=\EO1;2B, kDN5=\EO1;5B, kDN6=\EO1;6B, kIC5=\E[2;5~,
- kIC6=\E[2;6~, kLFT5=\EO1;5D, kLFT6=\EO1;6D,
- kNXT5=\E[6;5~, kNXT6=\E[6;6~, kPRV5=\E[5;5~,
- kPRV6=\E[5;6~, kRIT5=\EO1;5C, kRIT6=\EO1;6C, kUP=\EO1;2A,
- kUP5=\EO1;5A, kUP6=\EO1;6A,
-
-# 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" or "rxvt-color".
-#
-# removed dch/dch1 because they are inconsistent with bce/ech -TD
-# remove km as per tack test -TD
-rxvt-basic|rxvt terminal base (X Window System),
- OTbs, am, bce, eo, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
- ind=^J, is1=\E[?47l\E=\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
- kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
- rmul=\E[24m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
- s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
- use=rxvt+pcfkeys, use=vt220+keypad,
-# Key Codes from rxvt reference:
-#
-# Note: Shift + F1-F10 generates F11-F20
-#
-# For the keypad, use Shift to temporarily override Application-Keypad
-# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock
-# is off, escape sequences toggle Application-Keypad setting.
-# Also note that values of Home, End, Delete may have been compiled
-# differently on your system.
-#
-# Normal Shift Control Ctrl+Shift
-# Tab ^I ESC [ Z ^I ESC [ Z
-# BackSpace ^H ^? ^? ^?
-# Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
-# Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @
-# Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
-# Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
-# Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
-# Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
-# Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
-# End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
-# Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
-# F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
-# F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
-# F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
-# F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
-# F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
-# F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
-# F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
-# F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
-# F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
-# F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
-# F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
-# F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
-# F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
-# F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
-# F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
-# F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
-# F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
-# F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
-# F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
-# F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
-#
-# Application
-# Up ESC [ A ESC [ a ESC O a ESC O A
-# Down ESC [ B ESC [ b ESC O b ESC O B
-# Right ESC [ C ESC [ c ESC O c ESC O C
-# Left ESC [ D ESC [ d ESC O d ESC O D
-# KP_Enter ^M ESC O M
-# KP_F1 ESC O P ESC O P
-# KP_F2 ESC O Q ESC O Q
-# KP_F3 ESC O R ESC O R
-# KP_F4 ESC O S ESC O S
-# XK_KP_Multiply * ESC O j
-# XK_KP_Add + ESC O k
-# XK_KP_Separator , ESC O l
-# XK_KP_Subtract - ESC O m
-# XK_KP_Decimal . ESC O n
-# XK_KP_Divide / ESC O o
-# XK_KP_0 0 ESC O p
-# XK_KP_1 1 ESC O q
-# XK_KP_2 2 ESC O r
-# XK_KP_3 3 ESC O s
-# XK_KP_4 4 ESC O t
-# XK_KP_5 5 ESC O u
-# XK_KP_6 6 ESC O v
-# XK_KP_7 7 ESC O w
-# XK_KP_8 8 ESC O x
-# XK_KP_9 9 ESC O y
-#
-# The source-code for rxvt actually defines mappings for F21-F35, using
-# "ESC [ 35 ~" to "ESC [ 49 ~". Keyboards with more than 12 function keys
-# are rare, so this entry uses the shift- and control-modifiers as in
-# xterm+pcfkeys to define keys past F12.
-#
-# kIC is normally not used, since rxvt performs a paste for that (shifted
-# insert), unless private mode 35 is set.
-#
-# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
-# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
-rxvt+pcfkeys|fragment for PC-style fkeys,
- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
- kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
- kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf21=\E[23$, kf22=\E[24$,
- kf23=\E[11\^, kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^,
- kf27=\E[15\^, kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~,
- kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^,
- kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^,
- kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^,
- kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
- kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
- kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
- kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
- kUP=\E[a, kUP5=\EOa,
-
-rxvt|rxvt terminal emulator (X Window System),
- ncv@,
- hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
- vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color,
-rxvt-color|rxvt terminal emulator (X Window System),
- use=rxvt,
-rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
- use=xterm+256color, use=rxvt,
-rxvt-xpm|rxvt terminal emulator (X Window System),
- use=rxvt,
-rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
- acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- use=rxvt,
-rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
- acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
- use=rxvt-cygwin,
-
-# This variant is supposed to work with rxvt 2.7.7 when compiled with
-# NO_BRIGHTCOLOR defined. rxvt needs more work...
-rxvt-16color|xterm with 16 colors like aixterm,
- ncv#32, use=ibm+16color, use=rxvt,
-
-# mrxvt 0.5.3
-#
-# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
-# makes its function-keys different from other flavors of rxvt -TD
-mrxvt|multitabbed rxvt,
- use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
-
-# From: Michael Jennings <mej@valinux.com>
-#
-# Eterm 0.9.3
-#
-# removed kf0 which conflicts with kf10 -TD
-# remove cvvis which conflicts with cnorm -TD
-# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT
-# but does otherwise follow the rxvt+pcfkeys model -TD
-# remove nonworking flash -TD
-# remove km as per tack test -TD
-Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
- am, bce, bw, eo, mc5i, mir, msgr, xenl, xon,
- btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\E[?47l\E>\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@,
- kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H,
- kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
- rmso=\E[27m, rmul=\E[24m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys,
- use=ecma+color,
-
-# xiterm 0.5-5.2
-# This is not based on xterm's source...
-# vttest shows several problems with keyboard, cursor-movements.
-# see also http://invisible-island.net/xterm/xterm.faq.html#bug_xiterm
-xiterm|internationalized terminal emulator for X,
- km@,
- kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6,
-
-# 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, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
- knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
- rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
- smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
-
-xtermc|xterm terminal emulator (color),
- colors#8, ncv#7, pairs#64,
- op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- use=xtermm,
-
-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-# Here's a termcap entry I've been using for xterm_color, which comes
-# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
-# color stuff, I also have a status line defined as the window manager
-# title bar. [I have translated it to terminfo -- ESR]
-xterm-pcolor|xterm with color used for highlights and status line,
- bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
- smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
-
-# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
-# from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS
-# chars look like --esr)
-hpterm|X-hpterm|hp X11 terminal emulator,
- am, da, db, mir, xhp,
- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
- acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M,
- cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
- cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
- hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H,
- kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
- memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@,
- rmul=\E&d@,
- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-# HPUX 11 provides a color version.
-hpterm-color|HP X11 terminal emulator with color,
- ccc,
- colors#64, pairs#8,
- home=\E&a0y0C,
- initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
- op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
-
-# This entry describes an xterm with Sun-style function keys enabled
-# via the X resource setting "xterm*sunFunctionKeys:true"
-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>.
-# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
-# with their Sun keyboard labels instead.
-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-xterm-sun|xterm with sunFunctionKeys true,
- kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
- kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
- kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
- kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
- kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
- kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
- kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
- kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
- kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
- kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
- kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
- use=xterm-basic,
-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
- cols#80, lines#24, use=xterm-sun,
-
-# This is for the extensible terminal emulator on the X11R6 contrib tape.
-# It corresponds to emu's internal emulation:
-# emu -term emu
-# emu's default sets TERM to "xterm", but that doesn't work well -TD
-# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD
-# fixes: add civis, cnorm, sgr -TD
-emu|emu native mode,
- am, bce, mir, msgr, xon,
- colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
- acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
- bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
- cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
- cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\ED,
- cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
- dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
- ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
- hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG,
- is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED,
- kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01,
- kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14,
- kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19,
- kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05,
- kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind,
- kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel,
- op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES,
- rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
- setaf=\Er%i%p1%d;,
- sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;,
- sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej,
-
-# vt220 Terminfo entry for the Emu emulation, corresponds to
-# emu -term vt220
-# with NumLock set (to make the keypad transmit kf0-kf9).
-# fixes: add am, xenl, corrected sgr0 -TD
-emu-220|Emu-220 (vt200-7bit mode),
- am, xenl, xon,
- cols#80, it#8, lines#24, vt#200,
- acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l,
- clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
- dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M,
- ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
- hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL,
- il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h,
- kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq,
- kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ,
- kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~,
- kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~,
- kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~,
- kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw,
- kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m,
- ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
- smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
-# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
-# print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings
-# indicate that it emulates more than one terminal, but incompletely.
-#
-# This is adapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net>
-# It is based on vt102's entry, with some subtle differences, but also
-# has status line
-# supports ANSI colors (except for 'op' string)
-# apparently implements alternate screen like xterm
-# does not use padding, of course.
-mvterm|vv100|SwitchTerm aka mvTERM,
- am, eslok, hs, km, mir, msgr, xenl,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0,
- fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy,
- kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw,
- op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m,
- rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H,
- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
-
-### MTERM
-#
-# This application is available by email from <mouse@Rodents.Montreal.QC.CA>.
-#
-# "mterm -type ansi" sets $TERM to "ansi"
-mterm-ansi|ANSI emulation,
- am, bw, mir, msgr,
- it#8,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=,
- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
- invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m,
- rmul=\E[24m,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- vpa=\E[%i%p1%dd,
-# mterm normally sets $TERM to "mterm"
-mterm|mouse-sun|Der Mouse term,
- am, bw, mir,
- it#8,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^N, cuf1=^S,
- cup=\006%p1%d.%p2%d., cuu1=^X, dch1=^Y, dl1=^K, ed=^B, el=^C,
- home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W,
- rmir=^O, rmso=^T, smir=^Q, smso=^V,
-# "mterm -type decansi" sets $TERM to "decansi"
-#
-# note: kdch1, kfnd, kslt are in the source code, but do not work -TD
-decansi|ANSI emulation with DEC compatibility hacks,
- am, mir, msgr, xenl,
- colors#8, it#8, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL,
- il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m,
- is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
- u7=\E[6n, vpa=\E[%i%p1%dd,
-
-#### 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,
- rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
- rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B,
- S0=\E(%p1%c, use=ecma+color,
-# The bce and status-line entries are from screen 3.9.13 (and require some
-# changes to .screenrc).
-screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
- bce, use=screen,
-screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
- dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
-
-# ======================================================================
-# Entries for GNU Screen with 16 colors.
-# Those variations permit to benefit from 16 colors palette, and from
-# bold font and blink attribute separated from bright colors. But they
-# are less portable than the generic "screen" 8 color entries: Their
-# usage makes real sense only if the terminals you attach and reattach
-# do all support 16 color palette.
-
-screen-16color|GNU Screen with 16 colors,
- use=ibm+16color, use=screen,
-
-screen-16color-s|GNU Screen with 16 colors and status line,
- use=ibm+16color, use=screen-s,
-
-screen-16color-bce|GNU Screen with 16 colors and BCE,
- use=ibm+16color, use=screen-bce,
-
-screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line,
- bce, use=ibm+16color, use=screen-s,
-
-# ======================================================================
-# Entries for GNU Screen 4.02 with --enable-colors256.
-
-screen-256color|GNU Screen with 256 colors,
- ccc@,
- initc@, use=xterm+256color, use=screen,
-
-screen-256color-s|GNU Screen with 256 colors and status line,
- ccc@,
- initc@, use=xterm+256color, use=screen-s,
-
-screen-256color-bce|GNU Screen with 256 colors and BCE,
- ccc@,
- initc@, use=xterm+256color, use=screen-bce,
-
-screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line,
- bce, ccc@,
- initc@, use=xterm+256color, use=screen-s,
-
-# ======================================================================
-
-# Read the fine manpage:
-# When screen tries to figure out a terminal name for
-# itself, it first looks for an entry named "screen.<term>",
-# where <term> is the contents of your $TERM variable. If
-# no such entry exists, screen tries "screen" (or "screen-w"
-# if the terminal is wide (132 cols or more)). If even this
-# entry cannot be found, "vt100" is used as a substitute.
-#
-# Notwithstanding the manpage, screen uses its own notion of the termcap
-# and some keys from "screen.<term>" are ignored. Here is an entry which
-# covers those (tested with screen 4.00.02) -TD
-screen+fkeys|function-keys according to screen,
- kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@,
- khome=\E[1~, kslt@,
-#
-# 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 (screen+fkeys).
-# (d) screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
-# which is NOT the same as the terminfo screen.<term>.
-# (e) when screen finds one of these customized entries, it sets $TERM to
-# match. Hence, no "screen.xterm" entry is provided, since that would
-# create heartburn for people running remote xterm's.
-#
-# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
-# since the default translations override the built-in keycode
-# translation. They are suppressed here to show what is tested by tack.
-screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
- bce@, bw,
- invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
- use=screen+fkeys, use=xterm-new,
-# xterm-r6 does not really support khome/kend unless it is propped up by
-# the translations resource.
-screen.xterm-r6|screen customized for X11R6 xterm,
- bw, use=screen+fkeys, use=xterm-r6,
-# Color applications running in screen and TeraTerm do not play well together
-# on Solaris because Sun's curses implementation gets confused.
-screen.teraterm|disable ncv in teraterm,
- ncv#127,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- use=screen+fkeys, use=screen,
-# Other terminals
-screen.rxvt|screen in rxvt,
- bw,
- cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
- use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
-# fix the backspace key
-screen.linux|screen in linux console,
- bw,
- kbs=\177, kcbt@, use=screen+fkeys, 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=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
- smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
- u8=\E[?62;1;6c, use=ansi+enq,
-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
- use=ncsa-m, use=klone+color,
-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
- hs@,
- dsl@, fsl@, tsl@, use=ncsa,
-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
- hs@,
- dsl@, fsl@, tsl@, use=ncsa-m,
-# alternate -TD:
-# The documented function-key mapping refers to the Apple Extended Keyboard
-# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style
-# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
-# some keyboards and many applications require these as F1-F4.
-#
-ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, use=ncsa,
-
-#### Pilot Pro Palm-Top
-#
-# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
-# http://www.ai/~iang/TGssh/
-pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
- OTbs, am, xenl,
- cols#39, lines#16,
- bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J,
- cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I,
- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s,
- rmso=\EB, smso=\Eb,
-
-# From: Federico Bianchi <bianchi@www.arte.unipi.it>
-# These entries are for the Embeddable Linux Kernel System (ELKS)
-# project - an heavily stripped down Linux to be run on 16 bit
-# boxes or, eventually, to be used in embedded systems - and have been
-# adapted from the stock ELKS termcap. The project itself looks stalled,
-# and the latest improvements I know of date back to March 2000.
-#
-# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
-# as an added bonus, this deals with all the capabilities common to
-# both VT52 and ANSI (or, eventually, "special") modes.
-
-elks-glasstty|ELKS glass-TTY capabilities,
- OTbs, am,
- cols#80, it#8, lines#25,
- bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J,
-
-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, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z,
- kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
- kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
- kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
- knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
- kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
- sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m,
- u8=\E[1t, u9=\E[11t,
-# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
-# flake out on the last line. Unfortunately, without them the terminal has no
-# way to scroll.
-sun-cgsix|sun-ss5|Sun SparcStation 5 console,
- il@, il1@, use=sun-il,
-# If you are using an SS5, change the sun definition to use sun-ss5.
-sun|sun1|sun2|Sun Microsystems Inc. workstation console,
- use=sun-il,
-
-# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
-sun-s|Sun Microsystems Workstation window with status line,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
-sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
-sun-48|Sun 48-line window,
- cols#80, lines#48, use=sun,
-sun-34|Sun 34-line window,
- cols#80, lines#34, use=sun,
-sun-24|Sun 24-line window,
- cols#80, lines#24, use=sun,
-sun-17|Sun 17-line window,
- cols#80, lines#17, use=sun,
-sun-12|Sun 12-line window,
- cols#80, lines#12, use=sun,
-sun-1|Sun 1-line window for sysline,
- eslok, hs,
- cols#80, lines#1,
- dsl=^L, fsl=\E[K, tsl=^M, use=sun,
-sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character,
- ich1@, rmir@, smir@, use=sun,
-sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history,
- lines#35,
- rmcup=\E[>4h, smcup=\E[>4l, use=sun,
-sun-type4|Sun Workstation console with type 4 keyboard,
- kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z,
- kcuu1=\E[215z, use=sun-il,
-
-# Most of the current references to sun-color are from users wondering why this
-# is the default on install. Details from reading the wscons manpage, adding
-# cub, etc., here (rather than in the base sun-il entry) since it is not clear
-# when those were added -TD
-sun-color|Sun Microsystems Workstation console with color support (IA systems),
- colors#8, pairs#64,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, home=\E[H, op=\E[m\E[p, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- use=sun,
-
-#### Iris consoles
-#
-
-# (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
-#
-
-### 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,
- bce, bw,
- it#8, 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,
-
-# 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, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
- kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J,
- rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m,
- rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m,
- smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c,
- u9=\E[c, use=emx-base,
-# nice colors for Emacs (white on blue, mode line white on cyan)
-ansi-color-2-emx|ANSI.SYS color 2,
- clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m,
- rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec,
- setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m,
- smul=\E[1;36;44m, use=ansi-emx,
-# nice colors for Emacs (white on black, mode line black on cyan)
-ansi-color-3-emx|ANSI.SYS color 3,
- clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m,
- rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec,
- setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m,
- smul=\E[0;36;40m, use=ansi-emx,
-mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
- am,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
- kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
- kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
- kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
- sgr0=\E[0m,
-
-# Use this for cygwin32 (tested with beta 19.1)
-# underline is colored bright magenta
-# shifted kf1-kf12 are kf11-kf22
-cygwinB19|ansi emulation for cygwin32,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@,
- use=ansi.sys,
-
-# Use this for cygwin (tested with version 1.1.0).
-# I've combined pcansi and linux. Some values of course were different and
-# I've indicated which of these were and which I used.
-# Cheers, earnie_boyd@yahoo.com
-# several changes based on running with tack and comparing with older entry -TD
-# more changes from csw:
-# add cbt [backtab]
-# remove eo [erase overstrike with blank]
-# change clear was \E[H\E[J now \E[2J (faster?)
-# remove cols
-# remove lines
-# remove ncv#3 [colors collide with highlights, bitmask] not applicable
-# to MSDOS box?
-# add cub [cursor back param]
-# add cuf [cursor forward param]
-# add cuu [cursor up param]
-# add cud [cursor down param]
-# add hs [has status line]
-# add fsl [return from status line]
-# add tsl [go to status line]
-# add smacs [Start alt charset] (not sure if this works)
-# add rmacs [End alt charset] (ditto)
-# add smcup [enter_ca_mode] (save console; thanks Corinna)
-# add rmcup [exit_ca_mode] (restore console; thanks Corinna)
-# add kb2 [center of keypad]
-# add u8 [user string 8] \E[?6c
-# add el [clear to end of line] \E[K
-# Notes:
-# cnorm [make cursor normal] not implemented
-# flash [flash] not implemented
-# blink [blink] not implemented very usefully in cygwin? \E[5m
-# dim [dim] not implemented very usefully in cygwin? \E[2m
-# cub1 [cursor back 1] typically \E[D, but ^H is faster?
-# kNXT [shifted next key] not implemented
-# kPRV [shifted prev key] not implemented
-# khome [home key] really is \E[1~ NOT \E[H
-# tbc [clear tab stops] not implemented
-# xenl [newline ignnored after 80 cols] messes up last line? Ehud Karni
-# smpch [Start PC charset] is \E[11m, same as smacs
-# rmpch [End PC charset] is \E[10m, same as rmacs
-# mir [move in insert mode] fails in tack?
-# bce [back color erase] causes problems with change background color?
-# cvvis [make cursor very visible] causes a stackdump when testing with
-# testcurs using the output option? \E[?25h\E[?8c
-# civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c
-# ech [erase characters param] broken \E[%p1%dX
-# kcbt [back-tab key] not implemented in cygwin? \E[Z
-#
-# 2005/11/12 -TD
-# Remove cbt since it does not work in current cygwin
-# Add 'mir' and 'in' flags based on tack
-cygwin|ansi emulation for Cygwin,
- am, hs, mir, msgr, xon,
- colors#8, it#8, pairs#64,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
- nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
- rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R,
- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
- vpa=\E[%i%p1%dd, use=vt102+enq,
-
-# I've supplied this so that you can help test new values and add other
-# features. Cheers, earnie_boyd@yahoo.com.
-#
-# Some features are from pcansi. The op value is from linux. Function-keys
-# are from linux. These have been tested not to cause problems. xenl was in
-# this list, but DOES cause problems so it has been removed
-cygwinDBG|Debug Version for Cygwin,
- am, eo, mir, msgr, xon,
- colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$,
- kb2=\E[G, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
- knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m,
- rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l,
- rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
- sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[2g, vpa=\E[%i%p1%dd, use=vt102+enq,
-
-# Key definitions:
-# The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc. match the
-# encodings used by other x86 environments. All others are invented for DJGPP.
-# Oddly enough, while several combinations of modifiers are tabulated, there is
-# none for shifted cursor keys.
-#
-# F1 \E[[A
-# F2 \E[[B
-# F3 \E[[C
-# F4 \E[[D
-# F5 \E[[E
-# F6 \E[17~
-# F7 \E[18~
-# F8 \E[19~
-# F9 \E[20~
-# F10 \E[21~
-# F11 \E[23~
-# F12 \E[24~
-#
-# Delete \E[3~
-# Down Arrow \E[B
-# End \E[4~
-# Home \E[1~
-# Insert \E[2~
-# Left Arrow \E[D
-# Page Down \E[6~
-# Page Up \E[5~
-# Right Arrow \E[C
-# Up Arrow \E[A
-#
-# Shift-F1 \E[25~
-# Shift-F2 \E[26~
-# Shift-F3 \E[27~
-# Shift-F4 \E[28~
-# Shift-F5 \E[29~
-# Shift-F6 \E[30~
-# Shift-F7 \E[31~
-# Shift-F8 \E[32~
-# Shift-F9 \E[33~
-# Shift-F10 \E[34~
-# Shift-F11 \E[35~
-# Shift-F12 \E[36~
-#
-# Ctrl-F1 \E[47~
-# Ctrl-F2 \E[48~
-# Ctrl-F3 \E[49~
-# Ctrl-F4 \E[50~
-# Ctrl-F5 \E[51~
-# Ctrl-F6 \E[52~
-# Ctrl-F7 \E[53~
-# Ctrl-F8 \E[54~
-# Ctrl-F9 \E[55~
-# Ctrl-F10 \E[56~
-# Ctrl-F11 \E[57~
-# Ctrl-F12 \E[58~
-#
-# Ctrl-Delete \E[43~
-# Ctrl-Down Arrow \E[38~
-# Ctrl-End \E[44~
-# Ctrl-Home \E[41~
-# Ctrl-Insert \E[42~
-# Ctrl-Left Arrow \E[39~
-# Ctrl-Page Down \E[46~
-# Ctrl-Page Up \E[45~
-# Ctrl-Right Arrow \E[40~
-# Ctrl-Up Arrow \E[37~
-#
-# Alt-F1 \E[59~
-# Alt-F2 \E[60~
-# Alt-F3 \E[61~
-# Alt-F4 \E[62~
-# Alt-F5 \E[63~
-# Alt-F6 \E[64~
-# Alt-F7 \E[65~
-# Alt-F8 \E[66~
-# Alt-F9 \E[67~
-# Alt-F10 \E[68~
-# Alt-F11 \E[79~
-# Alt-F12 \E[80~
-#
-# Alt-Delete \E[65~
-# Alt-Down Arrow \E[60~
-# Alt-End \E[66~
-# Alt-Home \E[41~
-# Alt-Insert \E[64~
-# Alt-Left Arrow \E[61~
-# Alt-Page Down \E[68~
-# Alt-Page Up \E[67~
-# Alt-Right Arrow \E[62~
-# Alt-Up Arrow \E[59~
-#
-# Also:
-# Alt-A \E[82~
-# Alt-B \E[82~
-# Alt-C \E[83~
-# Alt-D \E[84~
-# Alt-E \E[85~
-# Alt-F \E[86~
-# Alt-G \E[87~
-# Alt-H \E[88~
-# Alt-I \E[89~
-# Alt-J \E[90~
-# Alt-K \E[91~
-# Alt-L \E[92~
-# Alt-M \E[93~
-# Alt-N \E[94~
-# Alt-O \E[95~
-# Alt-P \E[96~
-# Alt-Q \E[97~
-# Alt-R \E[98~
-# Alt-S \E[99~
-# Alt-T \E[100~
-# Alt-U \E[101~
-# Alt-V \E[102~
-# Alt-W \E[103~
-# Alt-X \E[104~
-# Alt-Y \E[105~
-# Alt-Z \E[106~
-djgpp|ansi emulation for DJGPP alpha,
- am, bce, msgr, xhp, xon, xt,
- colors#8, it#8, pairs#64,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
- clear=\E[H\E[J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
- kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=^M^J,
- op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?%p6%t;1%;%?%p7%t;8%;m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
-
-djgpp203|Entry for DJGPP 2.03,
- OTbs, am,
- cols#80, it#8, lines#25,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
- kcud1=^J, nel=^M^J,
-
-djgpp204|Entry for DJGPP 2.04,
- OTbs, am, AX,
- colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
- clear=\E[H\E[2J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, kf2=\E[[B,
- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
- kll=\E[4~, knp=\E[6~, kpp=\E[5~, nel=^M^J, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-# This is tested using U/Win's telnet. Scrolling is omitted because it is
-# buggy. Another odd bug appears when displaying "~" in alternate character
-# set (the emulator spits out error messages). Compare with att6386 -TD
-uwin|U/Win 3.2 console,
- am, eo, in, msgr, xenl, xon,
- colors#8, it#8, ncv#58, pairs#64,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
- ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf1=\EOP,
- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX,
- khome=\E[H, kich1=\E[@, nel=^M^J, op=\E[39;49m, rc=\E8,
- rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m,
- rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
- smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
-
-# 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/>,
-
-# From: Federico Bianchi
-# This is the entry for the OpenNT terminal.
-# The ntconsole name is for backward compatability.
-# This is for OpenNT 2.0 and later.
-# Later OpenNT was renamed to Interix.
-#
-# Presently it is distributed by Microsoft as Services For Unix (SFU).
-# The 3.5 beta contains ncurses 4.2 (that is header files and executables,
-# the documentation dates from 1.9.9e) -TD
-
-interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
- am, bw, msgr,
- colors#8, cols#80, lines#25, ncv#3, pairs#64,
- acsc=`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~q\304r\362s_t\303u\264v\301w\302x\263y\371z\372{\373|\374}\375~\376.\031-\030\,\021+^P0\333p\304r\304y\363z\362{\343|\330}\234,
- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[M, kend=\E[U, kf0=\EFA,
- kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC, kf13=\EFD,
- kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH, kf18=\EFI,
- kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL, kf22=\EFM,
- kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ, kf27=\EFR,
- kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU, kf31=\EFV,
- kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ, kf36=\EFa,
- kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4, kf40=\EFe,
- kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi, kf45=\EFj,
- kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo, kf5=\EF5,
- kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs, kf54=\EFt,
- kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx, kf59=\EFy,
- kf6=\EF6, kf60=\EFz, kf61=\EF+, kf62=\EF-,
- kf63=\EF\014 kf64=\EF$, kf7=\EF7, kf8=\EF8, kf9=\EF9,
- kich1=\E[L, kll=\E[U, knp=\E[T, kpp=\E[S, ll=\E[U, nel=^M^J,
- op=\E[m, rc=\E[u, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
- rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec,
- sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm,
- sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[1m, smul=\E[4m,
-
-opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
- lines#35, use=opennt,
-
-opennt-50|ntconsole-50|OpenNT-term50 compatible with color,
- lines#50, use=opennt,
-
-opennt-60|ntconsole-60|OpenNT-term60 compatible with color,
- lines#60, use=opennt,
-
-opennt-100|ntconsole-100|OpenNT-term100 compatible with color,
- lines#100, use=opennt,
-
-# OpenNT wide terminals
-opennt-w|opennt-25-w|ntconsole-w|ntconsole-25-w|OpenNT-term-w compat with color,
- cols#125, use=opennt,
-
-opennt-35-w|ntconsole-35-w|OpenNT-term35-w compatible with color,
- lines#35, use=opennt-w,
-
-opennt-50-w|ntconsole-50-w|OpenNT-term50-w compatible with color,
- lines#50, use=opennt-w,
-
-opennt-60-w|ntconsole-60-w|OpenNT-term60-w compatible with color,
- lines#60, use=opennt-w,
-
-opennt-w-vt|opennt-25-w-vt|ntconsole-w-vt|ntconsole-25-w-vt|OpenNT-term-w-vt compat with color,
- cols#132, use=opennt,
-
-# OpenNT terminals with no smcup/rmcup (names match termcap entries)
-interix-nti|opennt-nti|opennt-25-nti|ntconsole-25-nti|OpenNT-nti compatible with color,
- rmcup@, smcup@, use=opennt,
-
-opennt-35-nti|ntconsole-35-nti|OpenNT-term35-nti compatible with color,
- lines#35, use=opennt-nti,
-
-opennt-50-nti|ntconsole-50-nti|OpenNT-term50-nti compatible with color,
- lines#50, use=opennt-nti,
-
-opennt-60-nti|ntconsole-60-nti|OpenNT-term60-nti compatible with color,
- lines#60, use=opennt-nti,
-
-opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color,
- lines#100, use=opennt-nti,
-
-######## COMMON TERMINAL TYPES
-#
-# 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
-#
-#
-# These require incredible amounts of 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,
-# We got some new tvi912c terminals that act really weird on the regular
-# termcap, so one of our gurus worked this up. Seems that cursor
-# addressing is broken.
-tvi912cc|tvi912 at cowell college,
- cup@, use=tvi912c,
-
-# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C
-# From: Benjamin C. W. Sittler
-#
-# Someone has put a scanned copy of the manual online at:
-# http://vt100.net/televideo/912b-om/
-#
-# These terminals were produced ca. 1979, and had a 12" monochrome
-# screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit
-# ASCII, and were generally similar to adm3a but with attributes
-# (including some with magic cookies), fancy half-duplex mode, and
-# different bugs.
-#
-# Some operations reqire truly incredible amounts of padding. The
-# insert_line (<il1>) and delete_line (<dl1>) operations in particular
-# are so slow as to be nearly unusable.
-#
-# There may or may not have been a separate, earlier series of 912/920
-# terminals (without the "B" and "C" suffix); I have never seen one,
-# and the manual only describes the "B" and "C" series. The 912 and 920
-# are quite distinct from the 914 and 924, which were much nicer non-
-# magic-cookie terminals similar to the 950.
-#
-# This is a new description for the following TeleVideo terminals,
-# distinguished chiefly by their keyboards:
-#
-# TVI-912B - very odd layout, no function keys (84 keys)
-# TVI-920B - typewriter layout, no function keys (103 keys)
-# TVI-912C - very odd layout, function keys F1-F11 (82 keys)
-# TVI-920C - typewriter layout, function keys F1-F11 (101 keys)
-#
-# To choose a setting for the TERM variable, start with the model:
-#
-# Model || base name
-# ----------||-----------
-# TVI-912B || tvi912b
-# TVI-912C || tvi912c
-# TVI-920B || tvi920b
-# TVI-920C || tvi920c
-#
-# Then add a suffix from the following table describing installed options
-# and how you'd like to use the terminal:
-#
-# Use Video | Second | Visual | Magic | Page || feature
-# Attributes | Page | Bell | Cookies | Print || suffix
-# ------------|--------|--------|---------|-------||---------
-# No | No | N/A | N/A | No || -unk
-# No | No | N/A | N/A | Yes || -p
-# No | Yes | No | N/A | No || -2p-unk
-# No | Yes | No | N/A | Yes || -2p-p
-# No | Yes | Yes | N/A | No || -vb-unk
-# No | Yes | Yes | N/A | Yes || -vb-p
-# Yes | No | N/A | No | N/A ||
-# Yes | No | N/A | Yes | N/A || -mc
-# Yes | Yes | No | No | N/A || -2p
-# Yes | Yes | No | Yes | N/A || -2p-mc
-# Yes | Yes | Yes | No | N/A || -vb
-# Yes | Yes | Yes | Yes | N/A || -vb-mc
-#
-# So e.g. a model 920 C with second page memory option, visual bell
-# and no magic cookies would be tvi920c-vb; a model 912 B without the
-# second page memory option and using magic cookies would be
-# tvi912b-mc
-#
-# PADDING
-#
-# At 9600 baud, the terminal is prone to overflow its input buffer
-# during complex operations (insert/delete
-# character/line/screen/page), and it does not signal this over the
-# RS232 cable. The typical symptom of an overrun is that the terminal
-# starts beeping, and output becomes garbled.
-#
-# The padding delays in this terminfo were derived using tack(1)
-# running on a Linux box connected to a TVI-920C with a later-model
-# (A49C1-style) ROM running at 9600 baud, so your mileage may
-# vary. The numbers below seem to give the terminal enough time so
-# that it doesn't overflow its input buffer and start losing
-# characters.
-#
-# KEYS
-#
-# If you want to use the FUNCT key on a tvi912[bc], use the
-# corresponding tvi920[bc] terminfo with FUNCT + ... equivalents from
-# the following table (these also work on the 920 series):
-#
-# Unshifted Function Keys:
-#
-# Key | capname|| Equivalent
-# -----|--------||------------
-# F1 | <kf1> || FUNCT + @
-# F2 | <kf2> || FUNCT + A
-# F3 | <kf3> || FUNCT + B
-# F4 | <kf4> || FUNCT + C
-# F5 | <kf5> || FUNCT + D
-# F6 | <kf6> || FUNCT + E
-# F7 | <kf7> || FUNCT + F
-# F8 | <kf8> || FUNCT + G
-# F9 | <kf9> || FUNCT + H
-# F10 | <kf10> || FUNCT + I
-# F11 | <kf11> || FUNCT + J
-#
-# Shifted Function Keys:
-#
-# SHIFT + Key | capname|| Equivalent
-# -------------|--------||------------
-# SHIFT + F1 | <kf12> || FUNCT + `
-# SHIFT + F2 | <kf13> || FUNCT + a
-# SHIFT + F3 | <kf14> || FUNCT + b
-# SHIFT + F4 | <kf15> || FUNCT + c
-# SHIFT + F5 | <kf16> || FUNCT + d
-# SHIFT + F6 | <kf17> || FUNCT + e
-# SHIFT + F7 | <kf18> || FUNCT + f
-# SHIFT + F8 | <kf19> || FUNCT + g
-# SHIFT + F9 | <kf20> || FUNCT + h
-# SHIFT + F10 | <kf21> || FUNCT + i
-# SHIFT + F11 | <kf22> || FUNCT + j
-#
-# PORTS AND SWITCH SETTINGS
-#
-# Here are the switch settings for the TVI-912B/TVI-920B and
-# TVI-912C/TVI-920C:
-#
-# 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.
-#
-# NON-STANDARD CAPABILITIES
-#
-# Sending <u9> or <u7> returns a cursor position report in the format
-# YX\r, where Y and X are as in <cup>. This format is described in
-# <u8> and <u6>, but it's not clear how one should write an
-# appropriate scanf string, since we need to subtract %' ' from the
-# character after reading it. The <u9> capability is used by tack(1)
-# to synchronize during padding tests, and seems to work for that
-# purpose.
-#
-# This description also includes the obsolete termcap capabilities
-# has_hardware_tabs (<OTpt>) and backspaces_with_bs (<OTbs>).
-#
-# FEATURES NOT YET DESCRIBED IN THIS TERMINFO
-#
-# The FUNCT modifier actually works with every normal key by sending
-# ^AX\r, where X is the sequence normally sent by that key. This is a
-# sort of meta key not currently describable in terminfo.
-#
-# There are quite a few other keys (especially on the 920 models,) but
-# they are for the most part only useful in block mode.
-#
-# These terminals have lots of forms manipulation features, mainly
-# useful in block mode, including "clear X to nulls" (vs. "clear X to
-# spaces"; nulls are sentinels for "send X" operations); "send X"
-# operations for uploading all or part of the screen; and block-mode
-# editing keys (they don't send escape sequences, but manipulate video
-# memory directly). Block mode is used for local editing, and protect
-# mode (in conjunction with the "write protect" attribute,
-# a.k.a. half-intensity outside of protect mode) is used to control
-# which parts of the screen are edited/sent/printed (by <mc0>).
-#
-# There are at least two major families of ROM, "early" and
-# A49B1/A49C1; the major difference seems to be that the latter ROMs
-# support a few extra escape sequences for manipulating the off-screen
-# memory page, and for sending whole pages back to the host (mainly
-# useful in block mode.) The descriptions in this file don't use any
-# of those sequences: set cursor position including page (\E-PYX,
-# where P is \s for page 0 and ! for page 1 [actually only the LSB of
-# P is taken into account, so e.g. 0 and 1 work too,] and Y and X are
-# as in <cup>); read cursor position (\E/), which is analogous to <u9>
-# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX
-# are as in <cup>, and some "send page" features mainly useful for
-# forms manipulation.
-#
-# The keyboard enable (\E") and disable (\E#) sequences are unused,
-# except that a terminal reset (<is2>) enables the keyboard.
-#
-# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew)
-# enabled in <is2>, but auto-flip is very jarring so we don't use it.
-#
-# BUGS
-#
-# At least up to the A49B1 and A49C1 ROMs, there are no \Eb and \Ed
-# sequences (I infer that in some TeleVideo terminal they may invert
-# and uninvert the display) so the <flash> sequence given here is a
-# cheesy page-flip instead.
-#
-# The back_tab (<cbt>) sequence (\EI) doesn't work according to
-# tack(1), so it is not included in the descriptions below.
-#
-# It's not clear whether auto_left_margin (<bw>) flag should be set
-# for these terminals; tack says yes, so it is set here, but this
-# differs from other descriptions I've seen.
-#
-# Extension print mode (<mc5>) echoes all characters to the printer
-# port [in addition to displaying them] except for the page print mode
-# sequence (<mc4>); this is a slight violation of the terminfo
-# definition for <mc5> but I don't expect it to cause problems. We
-# reset to page print mode in <rs1> since it may have been enabled
-# accidentally.
-#
-# The descriptions with plus signs (+) are building blocks.
-
-tvi912b-unk|tvi912c-unk|TeleVideo TVI-912B or TVI-912C (no attributes),
- OTbs, OTpt, am, bw,
- cols#80, it#8, lines#24,
- bel=^G, clear=\032$<50>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K, dch1=\EW$<30>,
- dl1=\ER$<1*>$<100>, ed=\Ey$<2*>$<10>, el=\ET$<15>,
- home=^^, ht=^I, hts=\E1, ich1=\EQ$<30>,
- if=/usr/share/tabset/stdcrt, il1=\EE$<1*>$<100>,
- ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, kdch1=\177, kent=^M, khome=^^, mc4=\EA,
- mc5=\E@, rs1=\Ek\010\Em\010\Eq\032, tbc=\E3, u6=%c%c\r,
- u7=\E?, u8=%c%c\r, u9=\E?,
-
-# This isn't included in the basic capabilities because it is
-# typically unusable in combination with the full range of video
-# attributes, since the magic cookie attributes turn into ASCII
-# control characters, and the half-intensity ("protected") attribute
-# converts all affected characters to spaces.
-
-tvi912b+printer|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C page print support,
- mc0=\EP,
-
-# This uses half-intensity mode (<dim>) for standout (<smso>), and
-# exposes no other attributes (half-intensity is the only attribute
-# that does not generate a magic cookie.)
-
-tvi912b+dim|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C half-intensity attribute support,
- msgr,
- dim=\E), rmso=\E(, sgr=\E%?%p1%p5%|%t)%e(%;, sgr0=\E(,
- smso=\E),
-
-# Full magic-cookie attribute support, with half-intensity reverse
-# video for standout. Note that we add a space in the <dim> sequence
-# to give a consistent magic-cookie count. Also note that <sgr> uses
-# backspacing (in the TVI-supported order) to apply all requested
-# attributes with only a single magic cookie.
-
-tvi912b+mc|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C full magic-cookie attribute support,
- xmc#1,
- blink=\E\^, dim=\E)\s, invis=\E_, rev=\Ej, rmso=\E(\Ek,
- rmul=\Em,
- sgr=\E%?%p1%p5%|%t)%e(%; \010\E%?%p1%p3%|%tj%ek%;\010\E%?%p2%tl%em%;\010\E%?%p7%t_%e%?%p4%t\^%eq%;%;,
- sgr0=\E(\Ek\010\Em\010\Eq, smso=\E)\Ej, smul=\El,
-
-# This uses the second page memory option to save & restore screen
-# contents. If your terminal is missing the option, this description
-# should still work, but that has not been tested.
-
-tvi912b+2p|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option support,
- flash=\EK$<100>\EK, rmcup=\032$<50>\EK\E=7\s,
- smcup=\EK\032$<50>\E(\Ek\010\Em\010\Eq\032$<50>,
-
-# This simulates flashing by briefly toggling to the other page
-# (kludge!)
-
-tvi912b+vb|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option "visible bell" support,
- bel=\EK$<100>\EK, use=tvi912b+2p,
-
-# Function keys (<kf12> .. <kf22> are shifted <kf1> .. <kf11>)
-
-tvi920b+fn|TeleVideo TVI-920B and TVI-920C function key support,
- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^A`\r, kf13=^Aa\r,
- kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, kf17=^Ae\r, kf18=^Af\r,
- kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, kf21=^Ai\r, kf22=^Aj\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r,
-
-# Combinations of the basic building blocks
-
-tvi912b-2p-unk|tvi912c-2p-unk|tvi912b-unk-2p|tvi912c-unk-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes),
- use=tvi912b+2p, use=tvi912b-unk,
-
-tvi912b-vb-unk|tvi912c-vb-unk|tvi912b-unk-vb|tvi912c-unk-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes),
- use=tvi912b+vb, use=tvi912b-unk,
-
-tvi912b-p|tvi912c-p|TeleVideo TVI-912B or TVI-912C (no attributes; page print),
- use=tvi912b+printer, use=tvi912b-unk,
-
-tvi912b-2p-p|tvi912c-2p-p|tvi912b-p-2p|tvi912c-p-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes; page print),
- use=tvi912b+2p, use=tvi912b+printer, use=tvi912b-unk,
-
-tvi912b-vb-p|tvi912c-vb-p|tvi912b-p-vb|tvi912c-p-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes; page print),
- use=tvi912b+vb, use=tvi912b+printer, use=tvi912b-unk,
-
-tvi912b-2p|tvi912c-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; half-intensity attribute),
- use=tvi912b+2p, use=tvi912b+dim, use=tvi912b-unk,
-
-tvi912b-2p-mc|tvi912c-2p-mc|tvi912b-mc-2p|tvi912c-mc-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; magic cookies),
- use=tvi912b+2p, use=tvi912b+mc, use=tvi912b-unk,
-
-tvi912b-vb|tvi912c-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; half-intensity attribute),
- use=tvi912b+vb, use=tvi912b+dim, use=tvi912b-unk,
-
-tvi912b-vb-mc|tvi912c-vb-mc|tvi912b-mc-vb|tvi912c-mc-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; magic cookies),
- use=tvi912b+vb, use=tvi912b+mc, use=tvi912b-unk,
-
-tvi912b|tvi912c|TeleVideo TVI-912B or TVI-912C (half-intensity attribute),
- use=tvi912b+dim, use=tvi912b-unk,
-
-tvi912b-mc|tvi912c-mc|TeleVideo TVI-912B or TVI-912C (magic cookies),
- use=tvi912b+mc, use=tvi912b-unk,
-
-tvi920b-unk|tvi920c-unk|TeleVideo TVI-920B or TVI-920C (no attributes),
- use=tvi920b+fn, use=tvi912b-unk,
-
-tvi920b-2p-unk|tvi920c-2p-unk|tvi920b-unk-2p|tvi920c-unk-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes),
- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b-unk,
-
-tvi920b-vb-unk|tvi920c-vb-unk|tvi920b-unk-vb|tvi920c-unk-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes),
- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b-unk,
-
-tvi920b-p|tvi920c-p|TeleVideo TVI-920B or TVI-920C (no attributes; page print),
- use=tvi920b+fn, use=tvi912b+printer, use=tvi912b-unk,
-
-tvi920b-2p-p|tvi920c-2p-p|tvi920b-p-2p|tvi920c-p-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes; page print),
- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+printer,
- use=tvi912b-unk,
-
-tvi920b-vb-p|tvi920c-vb-p|tvi920b-p-vb|tvi920c-p-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes; page print),
- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+printer,
- use=tvi912b-unk,
-
-tvi920b-2p|tvi920c-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; half-intensity attribute),
- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+dim,
- use=tvi912b-unk,
-
-tvi920b-2p-mc|tvi920c-2p-mc|tvi920b-mc-2p|tvi920c-mc-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; magic cookies),
- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+mc,
- use=tvi912b-unk,
-
-tvi920b-vb|tvi920c-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; half-intensity attribute),
- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+dim,
- use=tvi912b-unk,
-
-tvi920b-vb-mc|tvi920c-vb-mc|tvi920b-mc-vb|tvi920c-mc-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; magic cookies),
- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+mc,
- use=tvi912b-unk,
-
-tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute),
- use=tvi920b+fn, use=tvi912b+dim, use=tvi912b-unk,
-
-tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies),
- use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk,
-
-# Televideo 921 and variants
-# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
-# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi921|televideo model 921 with sysline same as page & real vi function,
- OTbs, OTpt, am, hs, xenl, xhp,
- cols#80, lines#24, xmc#0,
- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
- el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
- if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@,
- is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H,
- kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>,
- ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%,
- rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr,
-# without the beeper
-# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
- am, hs, xenl, xhp,
- cols#80, lines#24, xmc#0,
- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
- el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I,
- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
- invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z,
- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE,
- nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr,
-# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
-tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
- dl1=\ER$<2*/>, il1=\EE$<2*/>,
- is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>,
- kil1=\EE$<2*/>, use=tvi92B,
-
-# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings
-# in from a BSD termcap file because it looks like they do something the
-# old ones skip -- esr)
-tvi924|televideo tvi924,
- am, bw, hs, in, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80, xmc#0,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
- cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c,
- cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1,
- dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et,
- flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
- invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0,
- kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r,
- kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r,
- kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r,
- kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^,
- kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4,
- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10,
- pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef,
- use=adm+sgr,
-
-# TVI925 DIP switches. In each of these, D = Down and U = Up,
-#
-# 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, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K,
- kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
- kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
- kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
- mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
- rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
- sc=\E7,
- sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
- tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad,
-#
-# This terminal description uses the non-hidden attribute mode
-# (with magic cookie).
-#
-wy75-mc|wyse75-mc|wyse 75 with magic cookies,
- msgr@,
- ma@, xmc#1,
- blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
- rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p,
- sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;,
- sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
- use=wy75,
-wy75-vb|wyse75-vb|wyse 75 with visible bell,
- pb@,
- bel@, use=wy75,
-wy75-w|wyse75-w|wyse 75 in 132 column mode,
- cols#132, wsl#130,
- rs2=\E[35h\E[?3h$<80>, use=wy75,
-wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
- pb@,
- bel@, use=wy75-w,
-#
-# Wyse 85 emulating a vt220 7 bit mode.
-# 24 line screen with status line.
-#
-# The vt220 mode permits more function keys but it wipes out
-# the escape key. I strongly recommend that <f11> be set to
-# escape (esc).
-# The terminal may have to be set for 8 data bits and 2 stop
-# bits for the arrow keys to work.
-# The Wyse 85 runs faster with XON/XOFF enabled. Also the
-# <dch> and <ich> work best when XON/XOFF is set. <ich> and
-# <dch> leave trash on the screen when used without XON/XOFF.
-#
-wy85|wyse85|wyse 85,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
- rs3=\E[?5l, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad,
-#
-# 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, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
- kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~,
- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3,
- lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
- rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
- use=vt220+keypad,
-#
-# 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,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
- use=wy370-nk, use=vt220+keypad,
-#
-# 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, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~,
- kel=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, khome=\E[26~,
- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1,
- lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l,
- rmcup=\E[ R, rmir=\E[4l, rmso=\E[m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
- smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
- vpa=\E[%i%p1%dd, use=vt220+keypad,
-#
-# 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,
- 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.)
-#
-# Update by TD - 2004: half of this was inconsistent. Found documentation
-# and repaired most of the damage. sgr0 is probably incorrect, but the
-# available documentation gives no clues for a workable string.
-avatar0|avatar terminal emulator level 0,
- am, bce, msgr,
- cols#80, it#8, lines#25,
- blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
- cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
- ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap,
- rmacs@, rs2=^L,
- sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;,
- sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A,
- use=klone+acs,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar0+|avatar terminal emulator level 0+,
- dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar|avatar1|avatar terminal emulator level 1,
- civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+,
- rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+,
-
-#### RBcomm
-#
-# RBComm is a lean and mean terminal emulator written by the Interrupt List
-# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
-# '90s), especially in the BBS world, and still has some loyal users due to
-# its very small memory footprint and to a cute macro language.
-rbcomm|IBM PC with RBcomm and EMACS keybindings,
- am, bw, mir, msgr, xenl,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^C, cuf1=^B,
- cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W,
- dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I,
- il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m,
- is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
- kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
- rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
- rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
- rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
- smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
-rbcomm-nam|IBM PC with RBcomm without autowrap,
- am@,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-rbcomm-w|IBM PC with RBcomm in 132 column mode,
- cols#132,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-
-######## 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, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
- use=vt100+fnkeys,
-
-#
-# 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(.
-#
-# Update by TD - 2004:
-# Adapted from
-# http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
-#
-# COMMANDS ASCII CODE
-#
-# Address, Absolute ESC,=,row,column
-# Beep BEL
-# Aux Port Enable ESC,@
-# Aux Port Disable ESC,A
-# Backspace BS
-# Cursor back BS
-# Cursor down LF
-# Cursor forward FF
-# Cursor home RS
-# Cursor up VT
-# Cursor supress ETB
-# Cursor enable CAN
-# Erase to end of line ESC,T
-# Erase to end of page ESC,Y
-# Erase screen SUB
-# Keyboard lock SI
-# Keyboard unlock SO
-# Read current cursor position ESC,?
-# Set Attribute ESC,0,x (see below for values of x)
-# Tag bit reset ESC,(
-# Tag bit set ESC,)
-# Transparent Print on ESC,3
-# Transparent Print off ESC,4
-#
-#
-# ATTRIBUTES
-#
-# Normal @ 0100
-# Half Intensity A 0101
-# Blinking B 0102
-# Half Intensity Blinking C 0103
-# Reverse Video P 0120
-# Reverse Video Half Intensity Q 0121
-# Reverse Video Blinking R 0122
-# Reverse Video Half Intensity
-# Blinking S 0123
-# Underlined ` 0140
-# Underlined Half Intensity a 0141
-# Underlined Blinking b 0142
-# Underlined Half Intensity
-# Blinking c 0143
-# Video suppress D 0104
-vp3a+|viewpoint3a+|adds viewpoint 3a+,
- am, bw,
- cols#80, it#8, lines#24,
- blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M,
- cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E),
- ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E),
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
- nel=^M^J, rev=\E0P\E), rmso=\E(,
- sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;,
- sgr0=\E(, smso=\E0Q\E), smul=\E0`\E),
-vp60|viewpoint60|addsvp60|adds viewpoint60,
- use=regent40,
-#
-# adds viewpoint 90 - from cornell
-# Note: emacs sends ei occasionally to insure the terminal is out of
-# insert mode. This unfortunately puts the viewpoint90 IN insert
-# mode. A hack to get around this is <ich1=\EF\s\EF^U>. (Also,
-# - :ei=:im=: must be present in the termcap translation.)
-# - <xhp> indicates glitch that attributes stick to location
-# - <msgr> means it's safe to move in standout mode
-# - <clear=\EG\Ek>: clears screen and visual attributes without affecting
-# the status line
-# Function key and label capabilities merged in from SCO.
-vp90|viewpoint90|adds viewpoint 90,
- OTbs, bw, msgr, xhp,
- cols#80, lines#24,
- 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,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
- use=vt100+fnkeys,
-ts100-ctxt|falco ts-100 saving context,
- rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
-
-#### 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,
- 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,
- 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,
-
-# This flavor is adapted from xterm, in turn from aixterm documentation -TD
-aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
- use=ibm+16color, use=aixterm,
-
-#### Infoton/General Terminal Corp.
-#
-
-# gt100 sounds like something DEC would come out with. Let's hope they don't.
-i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
- ind=^J, rmso=\Ea, smso=\Eb,
-i400|infoton 400,
- OTbs, am,
- cols#80, lines#25,
- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A,
- dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
- il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
-# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
-addrinfo,
- am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
- cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\,
-# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
-infoton,
- am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
- ed=^K, ind=^J, ll=^H^\,
-
-# The ICL6402 was actually the Kokusai Display System 6402.
-# The 6404 was the KDS7372 (color version of the 6402).
-#
-# 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%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
- sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
-
-# p9-w: Prism-9 in 132 column mode
-# --------------------------------
-#
-# '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>,
- dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>,
- el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1,
- il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
- is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
- kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
- kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r,
- kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
- kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
- kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r,
- kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r,
- kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r,
- kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
- kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ,
- kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
- nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
- smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
-ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- use=ncr260vppp,
-ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
- fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
- il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
- invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
- knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>,
- rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad,
-ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt100an,
-ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- smkx=\E=, use=ncr260vt100an,
-ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt100pp,
-ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf21=\E[31~, kf22=\E[32~,
- kf23=\E[33~, kf24=\E[34~, kf25=\E[35~, kf26=\E[1~,
- kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~,
- kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
- kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
- use=vt220+keypad,
-ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
- use=ncr260vt200an,
-ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
- use=ncr260vt200an,
-ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt200pp,
-ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~,
- kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~,
- kf28=\E[3~, kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~,
- kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- krdo=\E[29~, kslt=\E[4~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
- use=vt220+keypad,
-ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
- 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, pairs#16, xmc#1,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I,
- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
- mc0=\EP$<10>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- setb=\s,
- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
- sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
- tsl=\EF,
-ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- use=ncr260wy350pp,
-# This definition for Wyse 50+ supports several attributes. This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies. The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-# (ncr260wy50+pp: originally contained commented-out
-# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
-ncr260wy50+pp|NCR 2900_260 wyse 50+,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32, xmc#1,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
- cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>,
- ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
- mc0=\EP$<10>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
- smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
-ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- use=ncr260wy50+pp,
-ncr260wy60pp|NCR 2900_260 wyse 60,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
- cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>,
- ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
- kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r,
- kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r,
- kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r,
- kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
- tsl=\EF,
-ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- use=ncr260wy60pp,
-ncr160vppp|NCR 2900_160 viewpoint,
- use=ncr260vppp,
-ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
- use=ncr260vpwpp,
-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
- use=ncr260vt100an,
-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
- use=ncr260vt100pp,
-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
- use=ncr260vt100wan,
-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd,
- use=ncr260vt100wpp,
-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
- use=ncr260vt200an,
-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
- use=ncr260vt200pp,
-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
- use=ncr260vt200wan,
-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd,
- use=ncr260vt200wpp,
-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
- use=ncr260vt300an,
-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
- use=ncr260vt300pp,
-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
- use=ncr260vt300wan,
-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd,
- use=ncr260vt300wpp,
-ncr160wy50+pp|NCR 2900_160 wyse 50+,
- use=ncr260wy50+pp,
-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
- use=ncr260wy50+wpp,
-ncr160wy60pp|NCR 2900_160 wyse 60,
- use=ncr260wy60pp,
-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
- use=ncr260wy60wpp,
-ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
- am, hs, mc5i, mir, msgr, xon,
- cols#80, it#8, lines#24, nlab#32,
- acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
- bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
- clear=\E[2J\E[1;1H$<300>, cr=^M,
- csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
- cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
- cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
- cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
- dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
- ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
- enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
- ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
- ind=\ED,
- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
- kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
- rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
- rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
- rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>,
- sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
- smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
- tsl=\E[>+1$<70>,
-ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
- cols#132,
- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
- rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
- use=ncrvt100an,
-#
-# 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,
-
-# Newbury Data Recording Limited (Newbury Data)
-#
-# Have been manufacturing and reselling various peripherals for a long time
-# They don't make terminals anymore, but are still in business (in 2007).
-# Their e-mail address is at ndsales@newburydata.co.uk
-# and their post address is:
-#
-# Newbury Data Recording Ltd,
-# Premier Park, Road One,
-# Winsford, Cheshire, CW7 3PT
-#
-# Their technical support is still good, they sent me for free a printed copy
-# of the 9500 user manual and I got it just 1 week after I first contacted them
-# (in 2005)!
-
-# NDR 9500
-# Manufactured in the early/mid eighties, behaves almost the same as a
-# Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but
-# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
-# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC !
-# 2), here is the NDR 9500. Even the line-lock, albeit disabled, is
-# recognized: if you type in "ESC !", the next (third) character is not
-# echoed, showing that the terminal was actually waiting for a parameter!
-ndr9500|nd9500|Newbury Data 9500,
- am, bw, hs, mc5i, mir, msgr, ul, xon,
- cols#80, lines#24, wsl#79,
- acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
- clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
- flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
- kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
- ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
- kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
- kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
- pfloc=\E|%{48}%p1%+%c2%p2\031,
- pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
- rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
- sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
- sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
- tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
-
-ndr9500-nl|NDR 9500 with no status line,
- hs@,
- wsl@,
- dsl@, fsl@, tsl@, use=ndr9500,
-
-ndr9500-25|NDR 9500 with 25th line enabled,
- lines#25, use=ndr9500,
-
-ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
- lines#25, use=ndr9500-nl,
-
-ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
- msgr@,
- xmc#1,
- blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
- sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
- sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
-
-ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
- lines#25, use=ndr9500-mc,
-
-ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
- hs@,
- wsl@,
- dsl@, fsl@, tsl@, use=ndr9500-mc,
-
-ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
- lines#25, use=ndr9500-mc-nl,
-
-#### Perkin-Elmer (Owl)
-#
-# 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, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
- use=vt100+fnkeys,
-
-# Tektronix 4105 from BRL
-# The following setup modes are assumed for normal operation:
-# CODE ansi CRLF no DABUFFER 141
-# DAENABLE yes DALINES 30 DAMODE replace
-# DAVISIBILITY yes ECHO no EDITMARGINS 1 30
-# FLAGGING input INSERTREPLACE replace LFCR no
-# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B
-# SELECTCHARSET G1 0 TABS -2
-# Other setup modes may be set for operator convenience or communication
-# requirements; I recommend
-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1
-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
-# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132
-# XMTDELAY 0
-# and factory color maps. After setting these modes, save them with NVSAVE. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# "IC" cannot be used in combination with "im" & "ei".
-# "tek4105a" is just a guess:
-tek4105a|Tektronix 4105,
- OTbs, OTpt, msgr, xon,
- OTkn#8, cols#80, it#8, lines#30, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
- cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
- lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-#
-# 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,
- kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
- sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
-
-nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- enacs=\E(B\E)0, rmacs=^O,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;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,
-
-
-# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
-# and D P Schreber comparing to nsterm-c-s-acs.
-#
-# D P Schreber notes that $TERM can be set in Terminal.app, e.g.,
-# defaults write com.apple.Terminal TermCapString nsterm-c-s-acs
-# and that it is not set in Terminal's preferences dialog.
-nsterm-16color|AppKit Terminal.app v100.1.8 with MacOS X 10.3.9,
- kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- knp=\E[6~, kpp=\E[5~, use=nsterm-c-s-acs,
-
-# 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, kbs=\177,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
- rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
- sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
-
-xnuppc+c|Darwin PowerPC Console ANSI color support,
- colors#8, ncv#32, pairs#64,
- op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-xnuppc+b|Darwin PowerPC Console color-bold support,
- ncv#32,
- bold=\E[35m,
- sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
- use=xnuppc+basic,
-
-xnuppc+f|Darwin PowerPC Console fancy color support,
- ncv#35,
- sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m,
- smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
-
-xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
- ncv#35,
- bold=\E[33m,
- sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
- smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
-
-# Building blocks for specific screen sizes
-xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
- cols#80, lines#25,
-
-xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
- cols#80, lines#30,
-
-xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
- cols#90, lines#30,
-
-xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
- cols#100, lines#37,
-
-xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
- cols#112, lines#37,
-
-xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
- cols#128, lines#40,
-
-xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
- cols#128, lines#48,
-
-xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
- cols#144, lines#48,
-
-xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
- cols#160, lines#64,
-
-xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
- cols#200, lines#64,
-
-xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
- cols#200, lines#75,
-
-xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
- cols#256, lines#96,
-
-# These are different combinations of the building blocks
-
-xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
- use=xnuppc+basic,
-
-xnuppc|darwin|Darwin PowerPC Console (color),
- use=xnuppc+c, use=xnuppc+basic,
-
-xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
- use=xnuppc+b,
-
-xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
- use=xnuppc+b, use=xnuppc+c,
-
-xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
- use=xnuppc+f,
-
-xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
- use=xnuppc+f, use=xnuppc+c,
-
-xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
- use=xnuppc+f2,
-
-xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
- use=xnuppc+f2, use=xnuppc+c,
-
-# Combinations for specific screen sizes
-xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
- use=xnuppc+80x25, use=xnuppc+basic,
-
-xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
- use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
-
-xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
- use=xnuppc+80x30, use=xnuppc+basic,
-
-xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
- use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
-
-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
-#
-# Pavel Fedin added
-# Home Shift+Left
-# End Shift+Right
-# PgUp Shift+Up
-# PgDn Shift+Down
-amiga-8bit|Amiga ANSI using 8-bit controls,
- acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
- ind=\204, indn@, kend=\233 @, khome=\233 A, knp=\233S,
- kpp=\233T, ri=\215, rin@, use=amiga-h,
-
-# From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
-# requires use of appropriate preferences settings.
-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,
-
-# MorphOS on Genesi Pegasos
-# By Pavel Fedin <sonic_amiga@rambler.ru>
-morphos,
- acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
- ind=\204, indn@, kend=\23345~, kf11=\23320~, kf12=\23321~,
- khome=\23344~, kich1=\23340~, knp=\23342~, kpp=\23341~,
- ri=\215, rin@, use=amiga-h,
-
-# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
-# I'm trying to write a termcap for a commodore b-128, and I'm
-# having a little trouble. I've had to map most of my control characters
-# 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,
- 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=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
- rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
- smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
-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,
- 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=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, 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, cvvis@, 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=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
- 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,
- 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, sgr@,
- 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 than 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, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, 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, use=vt100+fnkeys,
-
-# 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 PLU
-# abbreviation.
-#
-# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
-#
-# (W) RM/SM modes are as follows: 1 = Guarded 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 Dorman.
-# 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.
-#
-#-(original-changelog-1996/12/29-to-1998/02/28-by-TD)---------------------------
-#
-# 10.1.0 (Sun Dec 29 02:36:31 EST 1996): withdrawn
-# * Minor corrections to xterm entries.
-# * Replaced EWAN telnet entry.
-# * Dropped the reorder script generator. It was a fossil.
-# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
-# * Replaced minitel-2 entry.
-# * Added MGR, ansi-nt.
-# 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.
-#
-# 10.1.1 (Sat May 3 21:41:27 EDT 1997):
-# * Use setaf/setab consistently with SVr4.
-# * Remove ech, el1 from cons25w, they do not work in FreeBSD 2.1.5
-# 10.1.2 (Sat May 24 21:10:57 EDT 1997)
-# * update xterm-xf86-v32 to match XFree86 3.2A (changes F1-F4)
-# * add xterm-16color, for XFree86 3.3
-# 10.1.3 (Sat May 31 12:21:05 EDT 1997)
-# * correct typo in emu
-# * correct typo in vt102-w (Robert Wuest)
-# * make new entry xterm-xf86-v33, restored xterm-xf86-v32.
-# 10.1.4 (Sun Jun 15 08:29:05 EDT 1997)
-# * remove ech capability from rxvt (it does the wrong thing)
-# 10.1.5 (Sat Jun 28 21:34:36 EDT 1997)
-# * remove spurious newlines from several entries (hp+color, wy50,
-# wy350, wy370-nk, wy99gt-tek, wy370-tek, ibm3161, tek4205, ctrm,
-# gs6300)
-# 10.1.6 (Sat Jul 5 15:08:16 EDT 1997)
-# * correct rmso capability of wy50-mc
-# 10.1.7 (Sat Jul 12 20:05:55 EDT 1997)
-# * add cbt to xterm-xf86-v32
-# * disentangle some entries from 'xterm', preferring xterm-r6 in case
-# 'xterm' is derived from xterm-xf86-v32, which implements ech and
-# other capabilities not in xterm-r6.
-# * remove alternate character set from kterm entry.
-# 10.1.8 (Sat Aug 2 18:43:18 EDT 1997)
-# * correct acsc entries for ACS_LANTERN, which is 'i', not 'I'.
-# 10.1.9 (Sat Aug 23 17:54:38 EDT 1997)
-# * add xterm-8bit entry.
-# 10.1.10 (Sat Oct 4 18:17:13 EDT 1997)
-# * repair several places where early version of tic replaced \, with \\\,
-# * make acsc entries canonical form (sorted, uniq).
-# * modify acsc entries for linux, linux-koi8
-# * new rxvt entry, from corrected copy of distribution in rxvt 2.21b
-# * add color, mouse support to kterm.
-# 10.1.11 (Sat Oct 11 14:57:10 EDT 1997)
-# * correct wy120 smxon/tbc capabilities which were stuck together.
-# 10.1.12 (Sat Oct 18 17:38:41 EDT 1997)
-# * add entry for xterm-xf86-v39t
-# 10.1.13 (Sat Nov 8 13:43:33 EST 1997)
-# * add u8,u9 to sun-il description
-# 10.1.14 (Sat Nov 22 19:59:03 EST 1997)
-# * 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.
-# 10.1.15 (Sat Nov 29 19:21:59 EST 1997)
-# * change initc in linux-c-nc to use 0..1000 range.
-# 10.1.16 (Sat Dec 13 19:41:59 EST 1997)
-# * remove hpa/vpa from rxvt, which implements them incorrectly.
-# * add sgr0 for rxvt.
-# * remove bogus smacs/rmacs from EMX descriptions.
-# 10.1.17 (Sat Dec 20 17:54:10 EST 1997)
-# * revised entry for att7300
-# 10.1.18 (Sat Jan 3 17:58:49 EST 1998)
-# * use \0 rather than \200.
-# * rename rxvt-color to rxvt to match rxvt 2.4.5 distribution.
-# 10.1.19 (Sat Jan 17 14:24:57 EST 1998)
-# * change xterm (xterm-xf86-v40), xterm-8bit rs1 to use hard reset.
-# * rename xterm-xf86-v39t to xterm-xf86-v40
-# * remove bold/underline from sun console entries since they're not
-# implemented.
-# 10.1.20 (Sat Jan 24 11:02:51 EST 1998)
-# * add beterm entry (Fred Fish)
-# * add irix-color/xwsh entry.
-# * turn ncv off for linux.
-# 10.1.21 (Sat Jan 31 17:39:16 EST 1998)
-# * set ncv for FreeBSD console (treat colors with reverse specially).
-# * remove sgr string from qnx based on report by Xiaodan Tang
-# 10.1.22 (Wed Feb 11 18:40:12 EST 1998)
-# * remove spurious commas from descriptions
-# * correct xterm-8bit to match XFree86 3.9Ad F1-F4.
-# 10.1.23 (Sat Feb 28 17:48:38 EST 1998)
-# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
-# apparently based on cp-866).
-#
-#-(replaced-changelog-1998/02/28-by-ESR)----------------------------------------
-#
-# 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.
-#
-#-(changelog-beginning-ncurses-4.2)---------------------------------------------
-#
-# 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-256color
-#
-# 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-10-05
-# * minor fix for scale-factor of linux-c and linux-c-nc -TD
-#
-# 2002-11-09
-# * split-out vt100+keypad and vt220+keypad, fix interchanged ka3/kb2
-# in the latter -TD
-#
-# 2002-11-16
-# * add entries for mterm (mterm, mterm-ansi, decansi) -TD
-# * ncr260wy350pp has only 16 color pairs -TD
-# * add sun-type4 from NetBSD -TD
-# * update xterm-xfree86 to current (patch 170) -TD
-# * add screen-bce, screen-s entries -TD
-# * add xterm-1002, xterm-1003 entries -TD
-#
-# 2003-01-11
-# * update homepage for Top Gun Telnet/SSH
-#
-# 2003-01-25
-# * reduce duplication in emx entries, added emx-base -TD
-#
-# 2003-05-24
-# * corrected acs for screen.teraterm -TD
-# * add tkterm entry -TD
-#
-# 2003-07-15
-# * cygwin changes from Charles Wilson:
-# misc/terminfo.src (nxterm|xterm-color): make xterm-color
-# primary instead of nxterm, to match XFree86's xterm.terminfo
-# usage and to prevent circular links.
-# (rxvt): add additional codes from rxvt.org.
-# (rxvt-color): new alias
-# (rxvt-xpm): new alias
-# (rxvt-cygwin): like rxvt, but with special acsc codes.
-# (rxvt-cygwin-native): ditto. rxvt may be run under XWindows, or
-# with a "native" MSWin GUI. Each takes different acsc codes,
-# which are both different from the "normal" rxvt's acsc.
-# (cygwin): cygwin-in-cmd.exe window. Lots of fixes.
-# (cygwinDBG): ditto.
-#
-# 2003-09-27
-# * update gnome terminal entries -TD
-#
-# 2003-10-04
-# * add entries for djgpp 2.03 and 2.04 -TD
-#
-# 2003-10-25
-# * add alias for vtnt -TD
-# * update xterm-xfree86 for XFree86 4.4 -TD
-#
-# 2003-11-22
-# * add linux-vt (Andrey V Lukyanov)
-#
-# 2003-12-20
-# * add screen.linux -TD
-#
-# 2004-01-10
-# * revised/improved entries for tvi912b, tvi920b (Benjamin Sittler)
-#
-# 2004-01-17
-# * add OpenNT/Interix/SFU entries (Federico Bianchi)
-# * add vt100+ and vt-utf8 entries -TD
-# * add uwin entry -TD
-#
-# 2004-03-27
-# * add sgr strings to several common entries lacking them, e.g.,
-# screen, to make the entries more portable -TD
-# * remove cvvis from rxvt entry, since it is the same as cnorm -TD
-# * similar fixups for cvvis/cnorm various entries -TD
-#
-# 2004-05-22
-# * remove 'ncv' from xterm-256color (patch 188) -TD
-#
-# 2004-06-26
-# * add mlterm -TD
-# * add xterm-xf86-v44 -TD
-# * modify xterm-new aka xterm-xfree86 to accommodate luit, which relies
-# on G1 being used via an ISO-2022 escape sequence (report by
-# Juliusz Chroboczek) -TD
-# * add 'hurd' entry -TD
-#
-# 2004-07-03
-# * make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
-# xterm-basic -TD
-# * align with xterm #192's use of xterm-new -TD
-# * update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
-# * make xterm-new the default "xterm" -TD
-#
-# 2004-07-10
-# * minor fixes for emu -TD
-# * add emu-220
-# * add rmam/smam to linux (Trevor Van Bremen)
-# * change wyse acsc strings to use 'i' map rather than 'I' -TD
-# * fixes for avatar0 -TD
-# * fixes for vp3a+ -TD
-#
-# 2004-07-17
-# * add xterm-pc-fkeys -TD
-# * review/update gnome and gnome-rh90 entries (prompted by
-# Redhat Bugzilla #122815) -TD
-# * review/update konsole entries -TD
-# * add sgr, correct sgr0 for kterm and mlterm -TD
-# * correct tsl string in kterm -TD
-#
-# 2004-07-24
-# * make ncsa-m rmacs/smacs consistent with sgr -TD
-# * add sgr, rc/sc and ech to syscons entries -TD
-# * add function-keys to decansi -TD
-# * add sgr to mterm-ansi -TD
-# * add sgr, civis, cnorm to emu -TD
-# * correct/simplify cup in addrinfo -TD
-# * corrections for gnome and konsole entries
-# (Redhat Bugzilla #122815) -Hans de Goede
-# * modify DEC entries (vt220, etc), to add sgr string, and to use
-# ISO-2022 strings for rmacs/smacs -TD
-#
-# 2004-07-31
-# * rename xterm-pc-fkeys to xterm+pcfkeys -TD
-#
-# 2004-08-07
-# * improved putty entry -Robert de Bath
-#
-# 2004-08-14
-# * remove dch/dch1 from rxvt because they are implemented inconsistently
-# with the common usage of bce/ech -TD
-# * remove khome from vt220 (vt220's have no home key) -TD
-# * add rxvt+pcfkeys -TD
-#
-# 2004-08-21
-# * modify several entries to ensure xterm mouse and cursor visibility
-# are reset in rs2 string: hurd, putty, gnome, konsole-base, mlterm,
-# Eterm, screen. (The xterm entries are left alone - old ones for
-# compatibility, and the new ones do not require this change) -TD
-#
-# 2004-08-28
-# * add morphos entry -Pavel Fedin
-# * modify amiga-8bit to add khome/kend/knp/kpp -Pavel Fedin
-# * corrected \E[5?l to \E[?5l in vt320 entries -TD
-#
-# 2004-11-20
-# * update wsvt25 entry -TD
-#
-# 2005-01-29
-# * update pairs for xterm-88color and xterm-256color to reflect the
-# ncurses extended-color support -TD
-#
-# 2005-02-26
-# * modify sgr/sgr0 in xterm-new to improve tgetent's derived "me" -TD
-# * add aixterm-16color to demonstrate 16-color capability -TD
-#
-# 2005-04-23
-# * add media-copy to vt100 -TD
-# * corrected acsc string for vt52 -TD
-#
-# 2005-04-30
-# * add kUP, kDN (user-defined shifted up/down arrow) definitions for
-# xterm-new -TD
-# * add kUP5, kUP6, etc., for xterm-new and rxvt -TD
-#
-# 2005-05-07
-# * re-corrected acsc string for vt52 -TD
-#
-# 2005-05-28
-# * corrected sun-il sgr string which referred to bold and underline -TD
-# * add sun-color entry -TD
-#
-# 2005-07-23
-# * modify sgr0 in several entries to reset alternate-charset as in the
-# sgr string -TD
-# * modify sgr string of prism9 to better match the individual
-# attributes -TD
-#
-# 2005-10-15
-# * correct order of use= in rxvt-basic -TD
-#
-# 2005-10-26
-# * use kind/kri as shifted up/down cursor keys for xterm-new -TD
-#
-# 2005-11-12
-# * other minor fixes to cygwin based on tack -TD
-# * correct smacs in cygwin (report by Baurzhan Ismagulov).
-#
-# 2006-02-18
-# * add nsterm-16color entry -TD
-# * remove ncv flag from xterm-16color -TD
-# * remove setf/setb from xterm-256color to match xterm #209 -TD
-# * update mlterm entry to 2.9.2 -TD
-#
-# 2006-02-25
-# * fixes to make nsterm-16color match report
-# by Christian Ebert -Alain Bench
-#
-# 2006-04-22
-# * add xterm+256color building block -TD
-# * add gnome-256color, putty-256color, rxvt-256color -TD
-#
-# 2006-05-06
-# * add hpterm-color -TD
-#
-# 2006-06-24
-# * add xterm+pcc0, xterm+pcc1, xterm+pcc2, xterm+pcc3 -TD
-# * add gnome-fc5 (prompted by GenToo #122566) -TD
-# * remove obsolete/misleading comments about kcbt on Linux -Alain Bench
-# * improve xterm-256color by combining the ibm+16color setaf/setab
-# strings with SGR 48. The setf/setb strings also are cancelled here
-# rather than omitted so derived entries will cancel those also -Alain
-# Bench
-#
-# 2006-07-01
-# * add some notes regarding copyright to terminfo.src -TD
-# * use rxvt+pcfkeys in Eterm -TD
-# * remove km and flash from gnome, Eterm and rxvt since they do not work
-# as one would expect (km sends ESC rather than setting the 8th bit
-# of the key) -TD
-# * add/use ansi+enq, vt100+enq and vt102+enq -TD
-# * add konsole-solaris -TD
-#
-# 2006-07-22
-# * update xterm-sun and xterm-sco entries to match xterm #216 -TD
-# * modify is2/rs2 strings for xterm-r6 as per fix in xterm #148 -TD
-# * modify xterm-24 to inherit from "xterm" -TD
-# * add xiterm entry -TD
-# * add putty-vt100 entry -TD
-# * corrected spelling of Michael A Dorman's name, prompted by
-# http://www.advogato.org/person/mdorman/diary.html -TD
-#
-# 2006-08-05
-# * add xterm+pcf0, xterm+pcf2 from xterm #216 -TD
-# * update xterm+pcfkeys to match xterm #216 -TD
-#
-# 2006-08-17
-# * make descriptions of xterm entries consistent with its terminfo -TD
-#
-# 2006-08-26
-# * add xfce, mgt -TD
-#
-# 2006-09-02
-# * correct acsc string in kterm -TD
-#
-# 2006-09-09
-# * add kon entry -TD
-# * remove invis from linux and related entries, add klone+sgr8 for those
-# that implement the feature (or have not been shown to lack it) -TD
-#
-# 2006-09-23
-# * add ka2, kb1, kb3, kc2 to vt220-keypad as an extension -TD
-# * minor improvements to rxvt+pcfkeys -TD
-#
-# 2006-09-30
-# * fix a few typos in if/then/else expressions -TD
-#
-# 2006-10-07
-# * add several GNU Screen variations with 16- and 256-colors, and
-# status line (Alain Bench).
-#
-# 2007-03-03
-# * add Newbury Data entries (Jean-Charles Billaud).
-#
-# 2007-06-10
-# * corrected xterm+pcf2 modifiers for F1-F4, match xterm #226 -TD
-#
-# 2007-07-14
-# * restore section of pre-ncurses-4.2 changelog to fix attribution -TD
-# * add konsole-256color entry -TD
-#
-# 2007-08-18
-# * add 9term entry (request by Juhapekka Tolvanen) -TD
-#
-# 2007-10-13
-# * correct kIC in rxvt+pcfkeys (prompted by Debian #446444) -TD
-# * add shift-control- and control-modified keys for rxvt editing
-# keypad -TD
-# * update mlterm entry to 2.9.3 -TD
-# * add mlterm+pcfkeys -TD
-#
-# 2007-10-20
-# * move kLFT, kRIT, kind and kri capabilities from xterm-new to
-# xterm+pcc0, etc., to make the corresponding building blocks reflect
-# xterm's capabilities -TD
-# * add mrxvt entry -TD
-# * add xterm+r6f2, use in mlterm and mrxvt entries -TD
-#
-# 2007-11-03
-# * correct acsc strings for h19 and z100 (Benjamin Sittler)
-#
-# 2007-11-11
-# * use xterm-xf86-v44 for "xterm-xfree86", reflecting changes to
-# xterm starting with patch #216 -TD
-# * make legacy xterm entries such as xterm-24 inherit from xterm-old,
-# to match xterm #230 -TD
-# * extend xterm+pccX entries to match xterm #230 -TD
-# * add xterm+app, xterm+noapp, from xterm #230 -TD
-# * add/use xterm+pce2 from xterm #230, in xterm+pcfkeys -TD
-#
-# 2008-04-19
-# * add screen.rxvt -TD
-#
-# 2008-04-28
-# * add screen+fkeys (prompted by Debian # 478094) -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/contrib/ncurses/mk-0th.awk b/contrib/ncurses/mk-0th.awk
deleted file mode 100644
index fe91cca689f6..000000000000
--- a/contrib/ncurses/mk-0th.awk
+++ /dev/null
@@ -1,109 +0,0 @@
-# $Id: mk-0th.awk,v 1.17 2005/01/22 16:31:40 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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")
-# subsets (is used here to decide if wide-character code is used)
-#
-BEGIN {
- using = 0;
- found = 0;
- }
- !/^[@#]/ {
- if (using == 0)
- {
- print ""
- print "# generated by mk-0th.awk"
- printf "# libname: %s\n", libname
- printf "# subsets: %s\n", subsets
- print ""
- print ".SUFFIXES: .c .cc .h .i .ii"
- print ".c.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ".cc.ii :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ".h.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ""
- using = 1;
- }
- if ( $0 != "" && $1 != "link_test" )
- {
- if ( found == 0 )
- {
- 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 -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
- print ""
- print "lintlib :"
- printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname
- print ""
- print "lint :"
- print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)"
- }
- else
- {
- print ""
- print "lintlib :"
- print "\t@echo no action needed"
- }
- }
diff --git a/contrib/ncurses/mk-1st.awk b/contrib/ncurses/mk-1st.awk
deleted file mode 100644
index e2f54ea4cbec..000000000000
--- a/contrib/ncurses/mk-1st.awk
+++ /dev/null
@@ -1,474 +0,0 @@
-# $Id: mk-1st.awk,v 1.78 2007/03/24 22:10:55 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey
-#
-# Generate list of objects for a given model library
-# Variables:
-# name (library name, e.g., "ncurses", "panel", "forms", "menus")
-# traces ("all" or "DEBUG", to control whether tracing is compiled in)
-# MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
-# model (directory into which we compile, e.g., "obj")
-# prefix (e.g., "lib", for Unix-style libraries)
-# suffix (e.g., "_g.a", for debug libraries)
-# subset ("none", "base", "base+ext_funcs" or "termlib", etc.)
-# ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
-# ShlibVerInfix ("yes" or "no", determines location of version #)
-# TermlibRoot ("tinfo" or other root for libterm.so)
-# TermlibSuffix (".so" or other suffix for libterm.so)
-# ReLink ("yes", or "no", flag to rebuild shared libs on install)
-# DoLinks ("yes", "reverse" or "no", flag to add symbolic links)
-# rmSoLocs ("yes" or "no", flag to add extra clean target)
-# ldconfig (path for this tool, if used)
-# overwrite ("yes" or "no", flag to add link to libcurses.a
-# depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
-# host (cross-compile host, if any)
-#
-# Notes:
-# CLIXs nawk does not like underscores in command-line variable names.
-# Mixed-case variable names are ok.
-# HP/UX requires shared libraries to have executable permissions.
-#
-function is_ticlib() {
- return ( subset ~ /^ticlib$/ );
- }
-function is_termlib() {
- return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ );
- }
-# see lib_name
-function lib_name_of(a_name) {
- return sprintf("%s%s%s", prefix, a_name, suffix)
- }
-# see imp_name
-function imp_name_of(a_name) {
- if (ShlibVerInfix == "cygdll") {
- result = sprintf("%s%s%s.a", prefix, a_name, suffix);
- } else {
- result = "";
- }
- return result;
- }
-# see abi_name
-function abi_name_of(a_name) {
- if (ShlibVerInfix == "cygdll") {
- result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix);
- } else if (ShlibVerInfix == "yes") {
- result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix);
- } else {
- result = sprintf("%s.$(ABI_VERSION)", lib_name_of(a_name));
- }
- return result;
- }
-# see rel_name
-function rel_name_of(a_name) {
- if (ShlibVerInfix == "cygdll") {
- result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix);
- } else if (ShlibVerInfix == "yes") {
- result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix);
- } else {
- result = sprintf("%s.$(REL_VERSION)", lib_name_of(a_name));
- }
- return result;
- }
-# see end_name
-function end_name_of(a_name) {
- if ( MODEL != "SHARED" ) {
- result = lib_name_of(a_name);
- } else if ( DoLinks == "reverse") {
- result = lib_name_of(a_name);
- } else {
- if ( ShlibVer == "rel" ) {
- result = rel_name_of(a_name);
- } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
- result = abi_name_of(a_name);
- } else {
- result = lib_name_of(a_name);
- }
- }
- return result
- }
-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 make_shlib(objs, shlib_list) {
- printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(%s) $(LDFLAGS)\n", objs, shlib_list
- }
-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"
- }
- }
-# termlib may be named explicitly via "--with-termlib=XXX", which overrides
-# any suffix. Temporarily override "suffix" to account for this.
-function termlib_end_of() {
- termlib_save_suffix = suffix;
- suffix = TermlibSuffix;
- termlib_temp_result = end_name_of(TermlibRoot);
- suffix = termlib_save_suffix;
- return termlib_temp_result;
-}
-function shlib_build(directory) {
- dst_libs = sprintf("%s/%s", directory, end_name);
- printf "%s : \\\n", dst_libs
- printf "\t\t%s \\\n", directory
- if (subset ~ /^base/ || subset == "ticlib" ) {
- save_suffix = suffix
- sub(/^[^.]\./,".",suffix)
- if (directory != "../lib") {
- printf "\t\t%s/%s \\\n", "../lib", termlib_end_of();
- }
- printf "\t\t%s/%s \\\n", directory, termlib_end_of();
- suffix = save_suffix
- }
- printf "\t\t$(%s_OBJS)\n", OBJS
- printf "\t@echo linking $@\n"
- if ( is_ticlib() ) {
- make_shlib(OBJS, "TICS_LIST")
- } else if ( is_termlib() ) {
- make_shlib(OBJS, "TINFO_LIST")
- } else {
- make_shlib(OBJS, "SHLIB_LIST")
- }
- sharedlinks(directory)
- }
-function shlib_install(directory) {
- src_lib1 = sprintf("../lib/%s", end_name);
- dst_lib1 = sprintf("%s/%s", directory, end_name);
- printf "%s : \\\n", dst_lib1
- printf "\t\t%s \\\n", directory
- printf "\t\t%s\n", src_lib1
- printf "\t@echo installing $@\n"
- printf "\t$(INSTALL_LIB) %s %s\n", src_lib1, dst_lib1;
- sharedlinks(directory)
- }
-function install_dll(directory,filename) {
- src_name = sprintf("../lib/%s", filename);
- dst_name = sprintf("$(DESTDIR)%s/%s", directory, filename);
- printf "\t@echo installing %s as %s\n", src_name, dst_name
- if ( directory == "$(bindir)" ) {
- program = "$(INSTALL) -m 755";
- } else {
- program = "$(INSTALL_LIB)";
- }
- printf "\t%s %s %s\n", program, src_name, dst_name
- }
-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 ""
- printf "# generated by mk-1st.awk (subset=%s)\n", subset
- printf "# name: %s\n", name
- printf "# traces: %s\n", traces
- printf "# MODEL: %s\n", MODEL
- printf "# model: %s\n", model
- printf "# prefix: %s\n", prefix
- printf "# suffix: %s\n", suffix
- printf "# subset: %s\n", subset
- printf "# ShlibVer: %s\n", ShlibVer
- printf "# ShlibVerInfix: %s\n", ShlibVerInfix
- printf "# TermlibRoot: %s\n", TermlibRoot
- printf "# TermlibSuffix: %s\n", TermlibSuffix
- printf "# ReLink: %s\n", ReLink
- printf "# DoLinks: %s\n", DoLinks
- printf "# rmSoLocs: %s\n", rmSoLocs
- printf "# ldconfig: %s\n", ldconfig
- printf "# overwrite: %s\n", overwrite
- printf "# depend: %s\n", depend
- printf "# host: %s\n", host
- print ""
- }
- using = 1
- }
- if ( is_ticlib() ) {
- OBJS = MODEL "_P"
- } else if ( is_termlib() ) {
- 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 = lib_name_of(name);
- if ( MODEL == "SHARED" )
- {
- abi_name = abi_name_of(name);
- rel_name = rel_name_of(name);
- imp_name = imp_name_of(name);
- end_name = end_name_of(name);
-
- shlib_build("../lib")
-
- print ""
- print "install \\"
- print "install.libs \\"
-
- if ( ShlibVer == "cygdll" ) {
-
- dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)";
- printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs
- install_dll("$(bindir)",end_name);
- install_dll("$(libdir)",imp_name);
-
- } else {
-
- lib_dir = "$(DESTDIR)$(libdir)";
- printf "install.%s :: %s/%s\n", name, lib_dir, end_name
- print ""
- if ( ReLink == "yes" ) {
- shlib_build(lib_dir)
- } else {
- shlib_install(lib_dir)
- }
- }
-
- if ( overwrite == "yes" && name == "ncurses" )
- {
- if ( ShlibVer == "cygdll" ) {
- ovr_name = sprintf("libcurses%s.a", suffix)
- printf "\t@echo linking %s to %s\n", imp_name, ovr_name
- printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, imp_name, ovr_name
- } else {
- 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 != "" && 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" )
- {
- if ( ShlibVer == "cygdll" ) {
- ovr_name = sprintf("libcurses%s.a", suffix)
- } else {
- 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_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(SHLIB_LIST)\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) $(INSTALL) %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_UNINSTALL) 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 ( host == "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 ( host == "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 ( host == "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-$(LIBTOOL_CLEAN) 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-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS
- }
- print ""
- print "clean ::"
- printf "\t-rm -f $(%s_OBJS)\n", OBJS
- if ( MODEL == "LIBTOOL" ) {
- printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS
- }
- }
- }
-# vile:ts=4 sw=4
diff --git a/contrib/ncurses/mk-2nd.awk b/contrib/ncurses/mk-2nd.awk
deleted file mode 100644
index 1f637635228a..000000000000
--- a/contrib/ncurses/mk-2nd.awk
+++ /dev/null
@@ -1,146 +0,0 @@
-# $Id: mk-2nd.awk,v 1.19 2005/01/22 16:30:04 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey
-#
-# 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 directory into which objects are compiled.
-# MODEL (uppercase version of "model"; toupper is not portable)
-# echo (yes iff we will show the $(CC) lines)
-# subset ("none", "base", "base+ext_funcs" or "termlib")
-# crenames ("yes" or "no", flag to control whether -c & -o options are used)
-# cxxrenames ("yes" or "no", flag to control whether -c & -o options are used)
-# traces ("all" or "DEBUG", to control whether tracing is compiled in)
-# srcdir is expanded when "configure --srcdir" was used
-#
-# Fields in src/modules:
-# $1 = module name
-# $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"
- printf "# model: %s\n", model
- printf "# MODEL: %s\n", MODEL
- printf "# echo: %s\n", echo
- printf "# subset: %s\n", subset
- printf "# crenames: %s\n", crenames
- printf "# cxxrenames: %s\n", cxxrenames
- printf "# traces: %s\n", traces
- printf "# srcdir: %s\n", srcdir
- }
- using = 1
- }
- }
- }
- /^[@#]/ {
- 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"
- use_c_o=cxxrenames
- } else {
- compile="CC"
- suffix=".c"
- use_c_o=crenames
- }
- printf "../%s/%s$o :\t%s/%s%s", model, $1, $3, $1, suffix
- for (n = 4; n <= NF; n++) printf " \\\n\t\t\t%s", $n
- print ""
- if ( echo == "yes" )
- atsign=""
- else {
- atsign="@"
- printf "\t@echo 'compiling %s (%s)'\n", $1, model
- }
- printf "\t%s", atsign;
- if ( use_c_o != "yes" ) {
- printf "cd ../%s; ", model;
- }
- # The choice here is between
- # base+ext_funcs and
- # termlib+ext_tinfo
- # but they may appear in the same value.
- if ( subset ~ /base/ ) {
- mycflags=""
- } else if ( subset ~ /termlib/ ) {
- mycflags=" -DUSE_TERMLIB"
- }
- printf "$(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s)%s -c ", compile, MODEL, mycflags
- if ( $3 == "." || srcdir == "." ) {
- dir = $3 "/"
- sub("^\\$\\(srcdir\\)/","",dir);
- sub("^\\./","",dir);
- printf "../%s/%s%s%s", name, dir, $1, suffix
- } else {
- printf "%s/%s%s", $3, $1, suffix
- }
- if ( use_c_o == "yes" ) {
- printf " -o ../%s/%s$o", model, $1
- }
- } else {
- printf "%s", $1
- for (n = 2; n <= NF; n++) printf " %s", $n
- }
- print ""
- }
- }
-END {
- print ""
- }
diff --git a/contrib/ncurses/mk-hdr.awk b/contrib/ncurses/mk-hdr.awk
deleted file mode 100644
index 9b6bee4108c6..000000000000
--- a/contrib/ncurses/mk-hdr.awk
+++ /dev/null
@@ -1,107 +0,0 @@
-# $Id: mk-hdr.awk,v 1.2 2007/03/31 15:48:45 tom Exp $
-##############################################################################
-# Copyright (c) 2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 2007
-#
-# Generate install/uninstall rules for header files
-# Variables:
-# subset ("none", "base", "base+ext_funcs" or "termlib", etc.)
-# compat ("yes" or "no", flag to add link to curses.h
-#
-function basename(path) {
- sub(/^.*\//,"",path)
- return path;
-}
-BEGIN {
- found = 0
- using = 1
- count = 0
- }
- /^@/ {
- using = 0
- if (subset == "none") {
- using = 1
- } else if (index(subset,$2) > 0) {
- using = 1
- } else {
- using = 0
- }
- }
- /^[@#]/ {
- next
- }
- {
- if (using && NF != 0) {
- if (found == 0) {
- print ""
- print "# generated by mk-hdr.awk"
- printf "# subset: %s\n", subset
- printf "# compat: %s\n", compat
- print ""
- found = 1
- }
- data[count] = $1
- count = count + 1
- }
- }
-END {
- if ( count > 0 )
- {
- print "${DESTDIR}${includedir} :"
- print " sh ${srcdir}/../mkdirs.sh $@"
- print ""
- print "install \\"
- print "install.libs \\"
- print "install.includes :: ${AUTO_SRC} ${DESTDIR}${includedir} \\"
-
- for (i = 0; i < count - 1; ++i) {
- printf " %s \\\n", data[i]
- }
- printf " %s\n", data[count - 1]
-
- for (i = 0; i < count; ++i) {
- printf " @ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i]
- if (data[i] == "curses.h" && compat == "yes") {
- printf " @ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
- }
- }
- print ""
- print "uninstall \\"
- print "uninstall.libs \\"
- print "uninstall.includes ::"
-
- for (i = 0; i < count; ++i) {
- printf " -@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i])
- if (data[i] == "curses.h" && compat == "yes") {
- printf " -@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n"
- }
- }
- }
- }
-# vile:ts=4 sw=4
diff --git a/contrib/ncurses/mkdirs.sh b/contrib/ncurses/mkdirs.sh
deleted file mode 100644
index 59fc39c21ae9..000000000000
--- a/contrib/ncurses/mkdirs.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#! /bin/sh
-# $Id: mkdirs.sh,v 1.5 2007/03/25 22:29:46 tom Exp $
-# -----------------------------------------------------------------------------
-# 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=$?
- if test $errstatus != 0
- then
- # may have failed if invoked in a parallel "make -j# install"
- if test -d "$pathcomp"
- then
- errstatus=0
- fi
- fi
- ;;
- esac
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/contrib/ncurses/ncurses/Makefile.in b/contrib/ncurses/ncurses/Makefile.in
deleted file mode 100644
index 39826e3a4782..000000000000
--- a/contrib/ncurses/ncurses/Makefile.in
+++ /dev/null
@@ -1,284 +0,0 @@
-# $Id: Makefile.in,v 1.112 2007/09/01 20:45:53 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-# 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
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-
-x = @EXEEXT@
-o = .@OBJEXT@
-
-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@
-LIBTOOL_CLEAN = @LIB_CLEAN@
-LIBTOOL_COMPILE = @LIB_COMPILE@
-LIBTOOL_LINK = @LIB_LINK@
-LIBTOOL_INSTALL = @LIB_INSTALL@
-LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROGRAM@
-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)
-
-BUILD_CPPFLAGS = -I../include @BUILD_CPPFLAGS@
-BUILD_CC = @BUILD_CC@
-BUILD_CCFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) -I$(INCDIR) $(BUILD_CPPFLAGS) @BUILD_CFLAGS@
-BUILD_LDFLAGS = @BUILD_LDFLAGS@
-BUILD_LIBS = @BUILD_LIBS@
-
-# The executables built in this directory are used for generating source that
-# is compiled into the build, or are test-programs that are not installed.
-
-BUILD_EXEEXT = @BUILD_EXEEXT@
-x = @PROG_EXT@
-
-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)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) @SHLIB_LIST@
-TINFO_LIST = $(SHLIB_DIRS) @TINFO_LIST@
-TICS_LIST = $(SHLIB_DIRS) @TICS_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 = @LIB_PREP@
-
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses @LIBS@
-
-FALLBACK_LIST = @FALLBACK_LIST@
-
-USE_BIG_STRINGS = @USE_BIG_STRINGS@
-TERMINFO_CAPS = $(top_srcdir)/include/@TERMINFO_CAPS@
-
-AUTO_SRC = \
- ./codes.c \
- ./comp_captab.c \
- ./expanded.c \
- ./fallback.c \
- ./lib_gen.c \
- ./lib_keyname.c \
- ./link_test.c \
- ./names.c \
- ./unctrl.c \
- init_keytry.h \
- keys.list
-
-TEST_DEPS = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
-TEST_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @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)/../mkdirs.sh $@
-
-../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 >$@
-
-init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
- ./make_keys$(BUILD_EXEEXT) keys.list > $@
-
-keys.list : $(tinfo)/MKkeys_list.sh
- AWK=$(AWK) sh $(tinfo)/MKkeys_list.sh $(TERMINFO_CAPS) | sort >$@
-
-make_keys$(BUILD_EXEEXT) : \
- $(tinfo)/make_keys.c \
- names.c
- $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
-
-make_hash$(BUILD_EXEEXT) : \
- $(tinfo)/comp_hash.c \
- ../include/hashsize.h
- $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
-
-./expanded.c : $(serial)/MKexpanded.sh
- sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
-
-./comp_captab.c: \
- make_hash$(BUILD_EXEEXT) \
- ../include/hashsize.h \
- $(tinfo)/MKcaptab.sh \
- $(tinfo)/MKcaptab.awk
- sh $(tinfo)/MKcaptab.sh $(AWK) $(USE_BIG_STRINGS) $(tinfo)/MKcaptab.awk $(srcdir)/../include/@TERMINFO_CAPS@ > $@
-
-./lib_keyname.c: keys.list $(base)/MKkeyname.awk
- $(AWK) -f $(base)/MKkeyname.awk bigstrings=$(USE_BIG_STRINGS) keys.list > $@
-
-./codes.c: $(tinfo)/MKcodes.awk
- $(AWK) -f $(tinfo)/MKcodes.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
-
-./names.c: $(tinfo)/MKnames.awk
- $(AWK) -f $(tinfo)/MKnames.awk bigstrings=$(USE_BIG_STRINGS) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
-
-./unctrl.c: $(base)/MKunctrl.awk
- echo | $(AWK) -f $(base)/MKunctrl.awk bigstrings=$(USE_BIG_STRINGS) >$@
-
-tags:
- ctags *.[ch] */*.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch] */*.[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$(BUILD_EXEEXT)
- -rm -f make_hash$(BUILD_EXEEXT)
- -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@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
-
-hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
-
-hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
-
-lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
- ../@DFT_OBJ_SUBDIR@/dump_entry$o
- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
-
-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/contrib/ncurses/ncurses/README b/contrib/ncurses/ncurses/README
deleted file mode 100644
index 120aa5b82c1d..000000000000
--- a/contrib/ncurses/ncurses/README
+++ /dev/null
@@ -1,31 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README,v 1.9 2006/04/22 22:19:37 tom Exp $
--------------------------------------------------------------------------------
-For discussion of the package internals, see hackguide.html in the doc/html
-directory.
diff --git a/contrib/ncurses/ncurses/README.IZ b/contrib/ncurses/ncurses/README.IZ
deleted file mode 100644
index 78206cdfd712..000000000000
--- a/contrib/ncurses/ncurses/README.IZ
+++ /dev/null
@@ -1,95 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 2002,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README.IZ,v 1.2 2006/04/22 23:13:05 tom Exp $
----------------------------------------------------------------------
-
-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/contrib/ncurses/ncurses/SigAction.h b/contrib/ncurses/ncurses/SigAction.h
deleted file mode 100644
index 5dfde643f6a1..000000000000
--- a/contrib/ncurses/ncurses/SigAction.h
+++ /dev/null
@@ -1,109 +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: SigAction.h,v 1.8 2005/08/06 20:05:32 tom Exp $
- *
- * This file exists to handle non-POSIX systems which don't have <unistd.h>,
- * and usually no sigaction() nor <termios.h>
- */
-
-#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
-
-#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
-
-/* tty/lib_tstp.c is the only user */
-#include <base/sigaction.c>
-
-#endif /* HAVE_SIGVEC */
-#endif /* HAVE_SIGACTION */
-#endif /* !defined(_SIGACTION_H) */
diff --git a/contrib/ncurses/ncurses/base/MKkeyname.awk b/contrib/ncurses/ncurses/base/MKkeyname.awk
deleted file mode 100644
index c1d9475045d0..000000000000
--- a/contrib/ncurses/ncurses/base/MKkeyname.awk
+++ /dev/null
@@ -1,156 +0,0 @@
-# $Id: MKkeyname.awk,v 1.38 2007/08/18 18:41:18 tom Exp $
-##############################################################################
-# Copyright (c) 1999-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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 "#include <term_entry.h>"
- print ""
- first = 1;
-}
-
-/^[^#]/ {
- if (bigstrings) {
- if (first) {
- print "struct kn { short offset; int code; };"
- print "static const struct kn _nc_key_names[] = {"
- }
- printf "\t{ %d, %s },\n", offset, $1
- offset += length($1) + 1
- names = names"\n\t\""$1"\\0\""
- } else {
- if (first) {
- print "struct kn { const char *name; int code; };"
- print "static const struct kn _nc_key_names[] = {"
- }
- printf "\t{ \"%s\", %s },\n", $1, $1;
- }
- first = 0;
- }
-
-END {
- if (bigstrings) {
- printf "\t{ -1, 0 }};\n"
- print ""
- print "static const char key_names[] = "names";"
- } else {
- printf "\t{ 0, 0 }};\n"
- }
- print ""
- print "#define SIZEOF_TABLE 256"
- print "#define MyTable _nc_globals.keyname_table"
- print ""
- print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
- print "{"
- print " int i;"
- print " char name[20];"
- print " char *p;"
- print " NCURSES_CONST char *result = 0;"
- print ""
- print " if (c == -1) {"
- print " result = \"-1\";"
- print " } else {"
- if (bigstrings) {
- print " for (i = 0; _nc_key_names[i].offset != -1; i++) {"
- print " if (_nc_key_names[i].code == c) {"
- print " result = (NCURSES_CONST char *)key_names + _nc_key_names[i].offset;"
- print " break;"
- print " }"
- print " }"
- } else {
- print " for (i = 0; _nc_key_names[i].name != 0; i++) {"
- print " if (_nc_key_names[i].code == c) {"
- print " result = (NCURSES_CONST char *)_nc_key_names[i].name;"
- print " break;"
- print " }"
- print " }"
- }
- print ""
- print " if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) {"
- print " if (MyTable == 0)"
- print " MyTable = typeCalloc(char *, SIZEOF_TABLE);"
- print " if (MyTable != 0) {"
- print " if (MyTable[c] == 0) {"
- print " int cc = c;"
- print " p = name;"
- print " if (cc >= 128 && (SP == 0 || SP->_use_meta)) {"
- print " strcpy(p, \"M-\");"
- print " p += 2;"
- print " cc -= 128;"
- print " }"
- print " if (cc < 32)"
- print " sprintf(p, \"^%c\", cc + '@');"
- print " else if (cc == 127)"
- print " strcpy(p, \"^?\");"
- print " else"
- print " sprintf(p, \"%c\", cc);"
- print " MyTable[c] = strdup(name);"
- print " }"
- print " result = MyTable[c];"
- print " }"
- print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES"
- print " } else if (result == 0 && cur_term != 0) {"
- print " int j, k;"
- print " char * bound;"
- print " TERMTYPE *tp = &(cur_term->type);"
- print " int save_trace = _nc_tracing;"
- print ""
- print " _nc_tracing = 0; /* prevent recursion via keybound() */"
- print " for (j = 0; (bound = keybound(c, j)) != 0; ++j) {"
- print " for(k = STRCOUNT; k < NUM_STRINGS(tp); k++) {"
- print " if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {"
- print " result = ExtStrname(tp, k, strnames);"
- print " break;"
- print " }"
- print " }"
- print " free(bound);"
- print " if (result != 0)"
- print " break;"
- print " }"
- print " _nc_tracing = save_trace;"
- print "#endif"
- print " }"
- print " }"
- print " return result;"
- print "}"
- print ""
- print "#if NO_LEAKS"
- print "void _nc_keyname_leaks(void)"
- print "{"
- print " int j;"
- print " if (MyTable != 0) {"
- print " for (j = 0; j < SIZEOF_TABLE; ++j) {"
- print " FreeIfNeeded(MyTable[j]);"
- print " }"
- print " FreeAndNull(MyTable);"
- print " }"
- print "}"
- print "#endif /* NO_LEAKS */"
-}
diff --git a/contrib/ncurses/ncurses/base/MKlib_gen.sh b/contrib/ncurses/ncurses/base/MKlib_gen.sh
deleted file mode 100755
index 09857834e7e0..000000000000
--- a/contrib/ncurses/ncurses/base/MKlib_gen.sh
+++ /dev/null
@@ -1,426 +0,0 @@
-#!/bin/sh
-#
-# MKlib_gen.sh -- generate sources from curses.h macro definitions
-#
-# ($Id: MKlib_gen.sh,v 1.30 2008/01/05 23:21:10 tom Exp $)
-#
-##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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 -DNCURSES_INTERNALS -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_POUNDCif_USE_\1_SUPPORT/p
- g
- s/^extern \([^;]*\);.*/\1/p
- g
- s/^.*implemented:\([^ *]*\).*/P_POUNDCendif/p
-}
-/^extern.*generated/{
- h
- s/^.*generated:\([^ *]*\).*/P_POUNDCif_USE_\1_SUPPORT/p
- g
- s/^extern \([^;]*\);.*/\1/p
- g
- s/^.*generated:\([^ *]*\).*/P_POUNDCendif/p
-}
-EOF1
-else
- CALL=""
- cat >$ED1 <<EOF1
-/^extern.*${ALL}/{
- h
- s/^.*${ALL}:\([^ *]*\).*/P_POUNDCif_USE_\1_SUPPORT/p
- g
- s/^extern \([^;]*\);.*/\1/p
- g
- s/^.*${ALL}:\([^ *]*\).*/P_POUNDCendif/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_POUNDCif_/#if /
- s/^P_POUNDCendif/#endif/
- 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_POUNDCif/ {
- print "\n"
- print $0
- skip=0;
-}
-/^P_POUNDCendif/ {
- 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;
- va_list = 0;
- varargs = 0;
- argtype = ""
- for (i = myfunc; i <= NF; i++) {
- ch = $i;
- if ( ch == "*" )
- pointer = 1;
- else if ( ch == "va_list" )
- va_list = 1;
- else if ( ch == "..." )
- varargs = 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 (va_list) {
- call = call "%s"
- } else if (varargs) {
- call = call "%s"
- } else if (pointer) {
- if ( argtype == "char" ) {
- call = call "%s"
- comma = comma "_nc_visbuf2(" num ","
- 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 ) {
- if ( va_list ) {
- args = args comma "\"va_list\""
- } else if ( varargs ) {
- args = args comma "\"...\""
- } else {
- args = args comma "z"
- }
- }
- call = call ch
- if (pointer == 0 && argcount != 0 && argtype != "" )
- args = args ")"
- 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 "#define NCURSES_ATTR_T int"
- 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>
-#undef NCURSES_NOMACROS
-#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/ [ ]*$//g' \
- -e 's/^\([a-zA-Z_][a-zA-Z_]*[ *]*\)/\1 gen_/' \
- -e 's/gen_$//' \
- -e 's/ / /g' >>$TMP
-
-$preprocessor $TMP 2>/dev/null \
-| sed \
- -e 's/ / /g' \
- -e 's/^ //' \
- -e 's/^_Bool/bool/' \
-| $AWK -f $AW2 \
-| sed -f $ED3 \
-| sed \
- -e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \
- -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/ return \1;/' \
- -e 's/gen_//' \
-| sed -f $ED4
diff --git a/contrib/ncurses/ncurses/base/MKunctrl.awk b/contrib/ncurses/ncurses/base/MKunctrl.awk
deleted file mode 100644
index 1ba511d72323..000000000000
--- a/contrib/ncurses/ncurses/base/MKunctrl.awk
+++ /dev/null
@@ -1,185 +0,0 @@
-# $Id: MKunctrl.awk,v 1.21 2008/02/03 20:24:30 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey (1997-on)
-#
-
-BEGIN {
- print "/* generated by MKunctrl.awk */"
- print ""
- print "#include <curses.priv.h>"
- print "#include <ctype.h>"
- print ""
- print "#if USE_WIDEC_SUPPORT"
- print "#if HAVE_WCTYPE_H"
- print "#include <wctype.h>"
- print "#endif"
- print "#endif"
- print ""
- print "#undef unctrl"
- print ""
- }
-END {
- print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)"
- print "{"
-
- blob=""
- offset=0
- if (bigstrings) {
- printf "static const short unctrl_table[] = {"
- } else {
- printf "static const char* const unctrl_table[] = {"
- }
- for ( ch = 0; ch < 256; ch++ ) {
- gap = ","
- part=""
- if ((ch % 8) == 0) {
- printf "\n "
- if (ch != 0)
- blob = blob "\""
- blob = blob "\n \""
- }
- if (bigstrings)
- printf "%4d%s", offset, gap;
- if (ch < 32) {
- part = sprintf ("^\\%03o", ch + 64);
- offset = offset + 3;
- } else if (ch == 127) {
- part = "^?";
- offset = offset + 3;
- } else if (ch >= 128 && ch < 160) {
- part = sprintf("~\\%03o", ch - 64);
- offset = offset + 3;
- } else if (ch == 255) {
- part = "~?";
- offset = offset + 3;
- } else if (ch >= 160) {
- part = sprintf("M-\\%03o", ch - 128);
- offset = offset + 4;
- } else {
- gap = gap " "
- part = sprintf("\\%03o", ch);
- offset = offset + 2;
- }
- if (ch == 255)
- gap = "\n"
- else if (((ch + 1) % 8) != 0)
- gap = gap " "
- if (bigstrings) {
- blob = blob part "\\0";
- } else {
- printf "\"%s\"%s", part, gap
- }
- }
- print "};"
- blob = blob "\"";
-
- print ""
- if (bigstrings) {
- blob = blob "\n/* printable values in 128-255 range */"
- printf "static const short unctrl_c1[] = {"
- } else {
- printf "static const char* const unctrl_c1[] = {"
- }
- for ( ch = 128; ch < 256; ch++ ) {
- gap = ","
- if ((ch % 8) == 0) {
- if (ch != 128)
- blob = blob "\""
- printf "\n "
- blob = blob "\n \""
- }
- if (bigstrings) {
- printf "%4d%s", offset, gap;
- part = sprintf("\\%03o\\0", ch);
- blob = blob part
- offset = offset + 2;
- if (((ch + 1) % 8) != 0)
- gap = gap " "
- } else {
- if (ch >= 128) {
- printf "\"\\%03o\"", ch
- gap = gap " "
- }
- if (ch == 255)
- gap = "\n"
- else if (((ch + 1) % 8) != 0)
- gap = gap " "
- printf "%s", gap
- }
- }
- print "};"
- blob = blob "\"\n"
-
- print ""
- if (bigstrings) {
- print "static const char unctrl_blob[] = "blob";"
- print ""
- stringname = "unctrl_blob + unctrl"
- } else {
- stringname = "unctrl"
- }
- print "\tint check = ChCharOf(ch);"
- print "\tconst char *result;"
- print ""
- print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {"
- print "#if NCURSES_EXT_FUNCS"
- print "\t\tif ((SP != 0)"
- print "\t\t && (SP->_legacy_coding > 1)"
- print "\t\t && (check >= 128)"
- print "\t\t && (check < 160))"
- printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
- print "\t\telse"
- print "#if USE_WIDEC_SUPPORT"
- print "\t\tif ((check >= 160)"
- print "\t\t && (check < 256)"
- print "\t\t && ((SP != 0)"
- print "\t\t && ((SP->_legacy_coding > 0)"
- print "\t\t || (SP->_legacy_coding == 0"
- print "\t\t && (isprint(check) || iswprint(check))))))"
- printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
- print "\t\telse"
- print "#else"
- print "\t\tif ((check >= 160)"
- print "\t\t && (check < 256)"
- print "\t\t && ((SP != 0)"
- print "\t\t && ((SP->_legacy_coding > 0)"
- print "\t\t || (SP->_legacy_coding == 0"
- print "\t\t && isprint(check)))))"
- printf "\t\t\tresult = %s_c1[check - 128];\n", stringname;
- print "\t\telse"
- print "#endif /* USE_WIDEC_SUPPORT */"
- print "#endif /* NCURSES_EXT_FUNCS */"
- printf "\t\t\tresult = %s_table[check];\n", stringname;
- print "\t} else {"
- print "\t\tresult = 0;"
- print "\t}"
- print "\treturn (NCURSES_CONST char *)result;"
- print "}"
- }
diff --git a/contrib/ncurses/ncurses/base/README b/contrib/ncurses/ncurses/base/README
deleted file mode 100644
index 4677e42e6176..000000000000
--- a/contrib/ncurses/ncurses/base/README
+++ /dev/null
@@ -1,35 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README,v 1.2 2006/04/22 22:19:37 tom Exp $
--------------------------------------------------------------------------------
-
-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/contrib/ncurses/ncurses/base/define_key.c b/contrib/ncurses/ncurses/base/define_key.c
deleted file mode 100644
index 3d5815f906d6..000000000000
--- a/contrib/ncurses/ncurses/base/define_key.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1997-on *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: define_key.c,v 1.13 2006/12/30 23:23:31 tom Exp $")
-
-NCURSES_EXPORT(int)
-define_key(const char *str, int keycode)
-{
- int code = ERR;
-
- T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode));
- if (SP == 0) {
- code = ERR;
- } else if (keycode > 0) {
- unsigned ukey = (unsigned) keycode;
-
- if (str != 0) {
- define_key(str, 0);
- } else if (has_key(keycode)) {
- while (_nc_remove_key(&(SP->_keytry), ukey))
- code = OK;
- }
- if (str != 0) {
- if (key_defined(str) == 0) {
- if (_nc_add_to_try(&(SP->_keytry), str, ukey) == OK) {
- code = OK;
- } else {
- code = ERR;
- }
- } else {
- code = ERR;
- }
- }
- } else {
- while (_nc_remove_string(&(SP->_keytry), str))
- code = OK;
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/key_defined.c b/contrib/ncurses/ncurses/base/key_defined.c
deleted file mode 100644
index 759ad824318d..000000000000
--- a/contrib/ncurses/ncurses/base/key_defined.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey, 2003 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: key_defined.c,v 1.6 2006/12/30 23:22:55 tom Exp $")
-
-static int
-find_definition(TRIES * tree, const char *str)
-{
- TRIES *ptr;
- int result = OK;
-
- if (str != 0 && *str != '\0') {
- for (ptr = tree; ptr != 0; ptr = ptr->sibling) {
- if (UChar(*str) == UChar(ptr->ch)) {
- if (str[1] == '\0' && ptr->child != 0) {
- result = ERR;
- } else if ((result = find_definition(ptr->child, str + 1))
- == OK) {
- result = ptr->value;
- } else if (str[1] == '\0') {
- result = ERR;
- }
- }
- if (result != OK)
- break;
- }
- }
- return (result);
-}
-
-/*
- * Returns the keycode associated with the given string. If none is found,
- * return OK. If the string is only a prefix to other strings, return ERR.
- * Otherwise, return the keycode's value (neither OK/ERR).
- */
-NCURSES_EXPORT(int)
-key_defined(const char *str)
-{
- int code = ERR;
-
- T((T_CALLED("key_defined(%s)"), _nc_visbuf(str)));
- if (SP != 0 && str != 0) {
- code = find_definition(SP->_keytry, str);
- }
-
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/keybound.c b/contrib/ncurses/ncurses/base/keybound.c
deleted file mode 100644
index 2995714ba936..000000000000
--- a/contrib/ncurses/ncurses/base/keybound.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1999-on *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: keybound.c,v 1.7 2006/06/17 18:19:24 tom Exp $")
-
-/*
- * Returns the count'th string definition which is associated with the
- * given keycode. The result is malloc'd, must be freed by the caller.
- */
-NCURSES_EXPORT(char *)
-keybound(int code, int count)
-{
- char *result = 0;
-
- T((T_CALLED("keybound(%d,%d)"), code, count));
- if (SP != 0 && code >= 0) {
- result = _nc_expand_try(SP->_keytry, (unsigned) code, &count, 0);
- }
- returnPtr(result);
-}
diff --git a/contrib/ncurses/ncurses/base/keyok.c b/contrib/ncurses/ncurses/base/keyok.c
deleted file mode 100644
index ad8988cded3b..000000000000
--- a/contrib/ncurses/ncurses/base/keyok.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1997-on *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: keyok.c,v 1.7 2006/12/30 16:22:33 tom Exp $")
-
-/*
- * 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 (c >= 0) {
- unsigned ch = (unsigned) c;
- if (flag) {
- while ((s = _nc_expand_try(SP->_key_ok, ch, &count, 0)) != 0
- && _nc_remove_key(&(SP->_key_ok), ch)) {
- code = _nc_add_to_try(&(SP->_keytry), s, ch);
- free(s);
- count = 0;
- if (code != OK)
- break;
- }
- } else {
- while ((s = _nc_expand_try(SP->_keytry, ch, &count, 0)) != 0
- && _nc_remove_key(&(SP->_keytry), ch)) {
- code = _nc_add_to_try(&(SP->_key_ok), s, ch);
- free(s);
- count = 0;
- if (code != OK)
- break;
- }
- }
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/legacy_coding.c b/contrib/ncurses/ncurses/base/legacy_coding.c
deleted file mode 100644
index 1c2f160a605d..000000000000
--- a/contrib/ncurses/ncurses/base/legacy_coding.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: legacy_coding.c,v 1.2 2005/12/17 23:38:17 tom Exp $")
-
-NCURSES_EXPORT(int)
-use_legacy_coding(int level)
-{
- int result = ERR;
-
- T((T_CALLED("use_legacy_coding(%d)"), level));
- if (level >= 0 && level <= 2 && SP != 0) {
- result = SP->_legacy_coding;
- SP->_legacy_coding = level;
- }
- returnCode(result);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_addch.c b/contrib/ncurses/ncurses/base/lib_addch.c
deleted file mode 100644
index 17ba6e2bcd6c..000000000000
--- a/contrib/ncurses/ncurses/base/lib_addch.c
+++ /dev/null
@@ -1,545 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: lib_addch.c,v 1.111 2008/03/29 18:48:02 tom Exp $")
-
-static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
-
-/*
- * 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 NCURSES_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 = WINDOW_ATTRS(win);
- int pair = GetPair(ch);
-
- if (ISBLANK(ch)
- && AttrOf(ch) == A_NORMAL
- && pair == 0) {
- /* color/pair in attrs has precedence over bkgrnd */
- ch = win->_nc_bkgd;
- SetAttr(ch, a | AttrOf(win->_nc_bkgd));
- if ((pair = GET_WINDOW_PAIR(win)) == 0)
- pair = GetPair(win->_nc_bkgd);
- SetPair(ch, pair);
- } else {
- /* color in attrs has precedence over bkgrnd */
- a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a);
- /* color in ch has precedence */
- if (pair == 0) {
- if ((pair = GET_WINDOW_PAIR(win)) == 0)
- pair = GetPair(win->_nc_bkgd);
- }
-#if 0
- if (pair > 255) {
- NCURSES_CH_T fixme = ch;
- SetPair(fixme, pair);
- }
-#endif
- AddAttr(ch, (a & COLOR_MASK(AttrOf(ch))));
- SetPair(ch, pair);
- }
-
- TR(TRACE_VIRTPUT,
- ("render_char bkg %s (%d), attrs %s (%d) -> ch %s (%d)",
- _tracech_t2(1, CHREF(win->_nc_bkgd)),
- GetPair(win->_nc_bkgd),
- _traceattr(WINDOW_ATTRS(win)),
- GET_WINDOW_PAIR(win),
- _tracech_t2(3, CHREF(ch)),
- GetPair(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 bool
-newline_forces_scroll(WINDOW *win, NCURSES_SIZE_T * ypos)
-{
- bool result = FALSE;
-
- if (*ypos >= win->_regtop && *ypos == win->_regbottom) {
- *ypos = win->_regbottom;
- result = TRUE;
- } else {
- *ypos += 1;
- }
- return result;
-}
-
-/*
- * The _WRAPPED flag is useful only for telling an application that we've just
- * wrapped the cursor. We don't do anything with this flag except set it when
- * wrapping, and clear it whenever we move the cursor. If we try to wrap at
- * the lower-right corner of a window, we cannot move the cursor (since that
- * wouldn't be legal). So we return an error (which is what SVr4 does).
- * Unlike SVr4, we can successfully add a character to the lower-right corner
- * (Solaris 2.6 does this also, however).
- */
-static int
-wrap_to_next_line(WINDOW *win)
-{
- win->_flags |= _WRAPPED;
- if (newline_forces_scroll(win, &(win->_cury))) {
- win->_curx = win->_maxx;
- if (!win->_scroll)
- return (ERR);
- scroll(win);
- }
- win->_curx = 0;
- return (OK);
-}
-
-#if USE_WIDEC_SUPPORT
-static int waddch_literal(WINDOW *, NCURSES_CH_T);
-/*
- * Fill the given number of cells with blanks using the current background
- * rendition. This saves/restores the current x-position.
- */
-static void
-fill_cells(WINDOW *win, int count)
-{
- NCURSES_CH_T blank = blankchar;
- int save_x = win->_curx;
- int save_y = win->_cury;
-
- while (count-- > 0) {
- if (waddch_literal(win, blank) == ERR)
- break;
- }
- win->_curx = save_x;
- win->_cury = save_y;
-}
-#endif
-
-/*
- * Build up the bytes for a multibyte character, returning the length when
- * complete (a positive number), -1 for error and -2 for incomplete.
- */
-#if USE_WIDEC_SUPPORT
-NCURSES_EXPORT(int)
-_nc_build_wch(WINDOW *win, ARG_CH_T ch)
-{
- char *buffer = WINDOW_EXT(win, addch_work);
- int len;
- int x = win->_curx;
- int y = win->_cury;
- mbstate_t state;
- wchar_t result;
-
- if ((WINDOW_EXT(win, addch_used) != 0) &&
- (WINDOW_EXT(win, addch_x) != x ||
- WINDOW_EXT(win, addch_y) != y)) {
- /* discard the incomplete multibyte character */
- WINDOW_EXT(win, addch_used) = 0;
- TR(TRACE_VIRTPUT,
- ("Alert discarded multibyte on move (%d,%d) -> (%d,%d)",
- WINDOW_EXT(win, addch_y), WINDOW_EXT(win, addch_x),
- y, x));
- }
- WINDOW_EXT(win, addch_x) = x;
- WINDOW_EXT(win, addch_y) = y;
-
- init_mb(state);
- buffer[WINDOW_EXT(win, addch_used)] = CharOf(CHDEREF(ch));
- WINDOW_EXT(win, addch_used) += 1;
- buffer[WINDOW_EXT(win, addch_used)] = '\0';
- if ((len = mbrtowc(&result,
- buffer,
- WINDOW_EXT(win, addch_used), &state)) > 0) {
- attr_t attrs = AttrOf(CHDEREF(ch));
- if_EXT_COLORS(int pair = GetPair(CHDEREF(ch)));
- SetChar(CHDEREF(ch), result, attrs);
- if_EXT_COLORS(SetPair(CHDEREF(ch), pair));
- WINDOW_EXT(win, addch_used) = 0;
- } else if (len == -1) {
- /*
- * An error occurred. We could either discard everything,
- * or assume that the error was in the previous input.
- * Try the latter.
- */
- TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
- /* handle this with unctrl() */
- WINDOW_EXT(win, addch_used) = 0;
- }
- return len;
-}
-#endif /* USE_WIDEC_SUPPORT */
-
-static
-#if !USE_WIDEC_SUPPORT /* cannot be inline if it is recursive */
-NCURSES_INLINE
-#endif
-int
-waddch_literal(WINDOW *win, NCURSES_CH_T ch)
-{
- int x;
- int y;
- struct ldat *line;
-
- x = win->_curx;
- y = win->_cury;
-
- CHECK_POSITION(win, x, y);
-
- ch = render_char(win, ch);
-
- line = win->_line + y;
-
- CHANGED_CELL(line, x);
-
- /*
- * Build up multibyte characters until we have a wide-character.
- */
- if_WIDEC({
- if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) {
- int len = _nc_build_wch(win, CHREF(ch));
-
- if (len >= -1) {
- /* handle EILSEQ */
- if (is8bits(CharOf(ch))) {
- const char *s = unctrl((chtype) CharOf(ch));
- if (s[1] != 0) {
- return waddstr(win, s);
- }
- }
- if (len == -1)
- return waddch(win, ' ');
- } else {
- return OK;
- }
- }
- });
-
- /*
- * Non-spacing characters are added to the current cell.
- *
- * Spacing characters that are wider than one column require some display
- * adjustments.
- */
- if_WIDEC({
- int len = wcwidth(CharOf(ch));
- int i;
- int j;
-
- if (len == 0) { /* non-spacing */
- if ((x > 0 && y >= 0)
- || ((y = win->_cury - 1) >= 0 &&
- (x = win->_maxx) > 0)) {
- wchar_t *chars = (win->_line[y].text[x - 1].chars);
- for (i = 0; i < CCHARW_MAX; ++i) {
- if (chars[i] == 0) {
- TR(TRACE_VIRTPUT,
- ("added non-spacing %d: %x",
- x, (int) CharOf(ch)));
- chars[i] = CharOf(ch);
- break;
- }
- }
- }
- goto testwrapping;
- } else if (len > 1) { /* multi-column characters */
- /*
- * Check if the character will fit on the current line. If it does
- * not fit, fill in the remainder of the line with blanks. and
- * move to the next line.
- */
- if (len > win->_maxx + 1) {
- TR(TRACE_VIRTPUT, ("character will not fit"));
- return ERR;
- } else if (x + len > win->_maxx + 1) {
- int count = win->_maxx + 1 - x;
- TR(TRACE_VIRTPUT, ("fill %d remaining cells", count));
- fill_cells(win, count);
- if (wrap_to_next_line(win) == ERR)
- return ERR;
- x = win->_curx;
- y = win->_cury;
- }
- /*
- * Check for cells which are orphaned by adding this character, set
- * those to blanks.
- *
- * FIXME: this actually could fill j-i cells, more complicated to
- * setup though.
- */
- for (i = 0; i < len; ++i) {
- if (isWidecBase(win->_line[y].text[x + i])) {
- break;
- } else if (isWidecExt(win->_line[y].text[x + i])) {
- for (j = i; x + j <= win->_maxx; ++j) {
- if (!isWidecExt(win->_line[y].text[x + j])) {
- TR(TRACE_VIRTPUT, ("fill %d orphan cells", j));
- fill_cells(win, j);
- break;
- }
- }
- break;
- }
- }
- /*
- * Finally, add the cells for this character.
- */
- for (i = 0; i < len; ++i) {
- NCURSES_CH_T value = ch;
- SetWidecExt(value, i);
- TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)",
- i + 1, len,
- win->_begy + y, win->_begx + x));
- line->text[x] = value;
- CHANGED_CELL(line, x);
- ++x;
- }
- goto testwrapping;
- }
- });
-
- /*
- * Single-column characters.
- */
- line->text[x++] = ch;
- /*
- * This label is used only for wide-characters.
- */
- if_WIDEC(
- testwrapping:
- );
-
- TR(TRACE_VIRTPUT, ("cell (%ld, %ld..%d) = %s",
- (long) win->_cury, (long) win->_curx, x - 1,
- _tracech_t(CHREF(ch))));
-
- if (x > win->_maxx) {
- return wrap_to_next_line(win);
- }
- win->_curx = x;
- return OK;
-}
-
-static NCURSES_INLINE int
-waddch_nosync(WINDOW *win, const NCURSES_CH_T ch)
-/* the workhorse function -- add a character to the given window */
-{
- NCURSES_SIZE_T x, y;
- chtype t = CharOf(ch);
- const char *s = unctrl(t);
-
- /*
- * If we are using the alternate character set, forget about locale.
- * Otherwise, if unctrl() returns a single-character or the locale
- * claims the code is printable, treat it that way.
- */
- if ((AttrOf(ch) & A_ALTCHARSET)
- || (
-#if USE_WIDEC_SUPPORT
- (SP != 0 && SP->_legacy_coding) &&
-#endif
- s[1] == 0
- )
- || (
- isprint(t)
-#if USE_WIDEC_SUPPORT
- || ((SP == 0 || !SP->_legacy_coding) &&
- (WINDOW_EXT(win, addch_used)
- || !_nc_is_charable(CharOf(ch))))
-#endif
- ))
- return waddch_literal(win, ch);
-
- /*
- * Handle carriage control and other codes that are not printable, or are
- * known to expand to more than one character according to unctrl().
- */
- 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 = blankchar;
- AddAttr(blank, AttrOf(ch));
- while (win->_curx < x) {
- if (waddch_literal(win, blank) == ERR)
- return (ERR);
- }
- break;
- } else {
- wclrtoeol(win);
- win->_flags |= _WRAPPED;
- if (newline_forces_scroll(win, &y)) {
- x = win->_maxx;
- if (win->_scroll) {
- scroll(win);
- x = 0;
- }
- } else {
- x = 0;
- }
- }
- break;
- case '\n':
- wclrtoeol(win);
- if (newline_forces_scroll(win, &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_EXT_COLORS(SetPair(sch, GetPair(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_synchook(). 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);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_addstr.c b/contrib/ncurses/ncurses/base/lib_addstr.c
deleted file mode 100644
index 4e3a040cf032..000000000000
--- a/contrib/ncurses/ncurses/base/lib_addstr.c
+++ /dev/null
@@ -1,245 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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> *
- * *
- * Rewritten 2001-2004 to support wide-characters by *
- * Sven Verdoolaege *
- * Thomas Dickey *
- ****************************************************************************/
-
-/*
-** lib_addstr.c
-*
-** The routines waddnstr(), waddchnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_addstr.c,v 1.48 2007/10/13 19:56:57 tom Exp $")
-
-NCURSES_EXPORT(int)
-waddnstr(WINDOW *win, const char *astr, int n)
-{
- const char *str = astr;
- int code = ERR;
-
- 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(WINDOW_ATTRS(win))));
- code = OK;
- if (n < 0)
- n = (int) strlen(astr);
-
- TR(TRACE_VIRTPUT, ("str is not null, length = %d", n));
- while ((n-- > 0) && (*str != '\0')) {
- NCURSES_CH_T ch;
- TR(TRACE_VIRTPUT, ("*str = %#o", UChar(*str)));
- SetChar(ch, UChar(*str++), A_NORMAL);
- 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, x;
- int code = OK;
- int i;
- struct ldat *line;
-
- T((T_CALLED("waddchnstr(%p,%p,%d)"), win, astr, n));
-
- if (!win)
- returnCode(ERR);
-
- y = win->_cury;
- x = win->_curx;
- 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]);
- for (i = 0; i < n && ChCharOf(astr[i]) != '\0'; ++i) {
- SetChar2(line->text[i + x], astr[i]);
- }
- CHANGED_RANGE(line, x, x + n - 1);
-
- _nc_synchook(win);
- returnCode(code);
-}
-
-#if USE_WIDEC_SUPPORT
-
-NCURSES_EXPORT(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 *astr, int n)
-{
- static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
- NCURSES_SIZE_T y;
- NCURSES_SIZE_T x;
- int code = OK;
- struct ldat *line;
- int i, j, start, len, end;
-
- T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), win, _nc_viscbuf(astr, n), n));
-
- if (!win)
- returnCode(ERR);
-
- y = win->_cury;
- x = win->_curx;
- 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;
-
- /*
- * Reset orphaned cells of multi-column characters that extend up to the
- * new string's location to blanks.
- */
- if (x > 0 && isWidecExt(line->text[x])) {
- for (i = 0; i <= x; ++i) {
- if (!isWidecExt(line->text[x - i])) {
- /* must be isWidecBase() */
- start -= i;
- while (i > 0) {
- line->text[x - i--] = _nc_render(win, blank);
- }
- break;
- }
- }
- }
-
- /*
- * Copy the new string to the window.
- */
- for (i = 0; i < n && CharOf(astr[i]) != L'\0' && x <= win->_maxx; ++i) {
- if (isWidecExt(astr[i]))
- continue;
-
- len = wcwidth(CharOf(astr[i]));
-
- if (x + len - 1 <= win->_maxx) {
- line->text[x] = _nc_render(win, astr[i]);
- if (len > 1) {
- for (j = 0; j < len; ++j) {
- if (j != 0) {
- line->text[x + j] = line->text[x];
- }
- SetWidecExt(line->text[x + j], j);
- }
- }
- x += len;
- end += len - 1;
- } else {
- break;
- }
- }
-
- /*
- * Set orphaned cells of multi-column characters which lie after the new
- * string to blanks.
- */
- while (x <= win->_maxx && isWidecExt(line->text[x])) {
- line->text[x] = _nc_render(win, blank);
- ++end;
- ++x;
- }
- CHANGED_RANGE(line, start, end);
-
- _nc_synchook(win);
- returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-waddnwstr(WINDOW *win, const wchar_t *str, int n)
-{
- int code = ERR;
-
- 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(WINDOW_ATTRS(win))));
- 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", (unsigned long) *str));
- SetChar(ch, *str++, A_NORMAL);
- if (wadd_wch(win, &ch) == ERR) {
- code = ERR;
- break;
- }
- }
- _nc_synchook(win);
- }
- TR(TRACE_VIRTPUT, ("waddnwstr returns %d", code));
- returnCode(code);
-}
-
-#endif
diff --git a/contrib/ncurses/ncurses/base/lib_beep.c b/contrib/ncurses/ncurses/base/lib_beep.c
deleted file mode 100644
index b478f251a1bb..000000000000
--- a/contrib/ncurses/ncurses/base/lib_beep.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * beep.c
- *
- * The routine beep().
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* beep, flash */
-
-MODULE_ID("$Id: lib_beep.c,v 1.10 2005/04/09 15:20:04 tom Exp $")
-
-/*
- * 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 (cur_term == 0) {
- res = ERR;
- } else 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/contrib/ncurses/ncurses/base/lib_bkgd.c b/contrib/ncurses/ncurses/base/lib_bkgd.c
deleted file mode 100644
index c99e0c5fc3a8..000000000000
--- a/contrib/ncurses/ncurses/base/lib_bkgd.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: Juergen Pfeifer 1997 *
- * and: Sven Verdoolaege 2000 *
- * and: Thomas E. Dickey 1996-on *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_bkgd.c,v 1.36 2008/03/23 00:09:14 tom Exp $")
-
-/*
- * Set the window's background information.
- */
-#if USE_WIDEC_SUPPORT
-NCURSES_EXPORT(void)
-#else
-static NCURSES_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(WINDOW_ATTRS(win), off);
- toggle_attr_on(WINDOW_ATTRS(win), on);
-
-#if NCURSES_EXT_COLORS
- {
- int pair;
-
- if ((pair = GetPair(win->_nc_bkgd)) != 0)
- SET_WINDOW_PAIR(win, 0);
- if ((pair = GetPair(CHDEREF(ch))) != 0)
- SET_WINDOW_PAIR(win, pair);
- }
-#endif
-
- if (CharOf(CHDEREF(ch)) == L('\0')) {
- SetChar(win->_nc_bkgd, BLANK_TEXT, AttrOf(CHDEREF(ch)));
- if_EXT_COLORS(SetPair(win->_nc_bkgd, GetPair(CHDEREF(ch))));
- } else {
- win->_nc_bkgd = CHDEREF(ch);
- }
-#if USE_WIDEC_SUPPORT
- /*
- * If we're compiled for wide-character support, _bkgrnd is the
- * 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 = _nc_to_char((wint_t) CharOf(wch));
-
- win->_bkgd = (((tmp == EOF) ? ' ' : (chtype) tmp)
- | (AttrOf(wch) & ALL_BUT_COLOR)
- | COLOR_PAIR(GET_WINDOW_PAIR(win)));
- }
-#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 NCURSES_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 | A_CHARTEXT)));
- 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/contrib/ncurses/ncurses/base/lib_box.c b/contrib/ncurses/ncurses/base/lib_box.c
deleted file mode 100644
index d6cfc6cfe09c..000000000000
--- a/contrib/ncurses/ncurses/base/lib_box.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- * and: Sven Verdoolaege 2001 *
- ****************************************************************************/
-
-/*
-** lib_box.c
-**
-** The routine wborder().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_box.c,v 1.22 2005/11/26 15:39:42 tom Exp $")
-
-#if USE_WIDEC_SUPPORT
-static NCURSES_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/contrib/ncurses/ncurses/base/lib_chgat.c b/contrib/ncurses/ncurses/base/lib_chgat.c
deleted file mode 100644
index 89eefa7e82fe..000000000000
--- a/contrib/ncurses/ncurses/base/lib_chgat.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: Sven Verdoolaege 2001 *
- * and: Thomas E. Dickey 2005 *
- ****************************************************************************/
-
-/*
-** lib_chgat.c
-**
-** The routine wchgat().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_chgat.c,v 1.7 2006/07/15 22:07:11 tom Exp $")
-
-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) {
- struct ldat *line = &(win->_line[win->_cury]);
-
- toggle_attr_on(attr, COLOR_PAIR(color));
-
- for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++) {
- SetAttr(line->text[i], attr);
- SetPair(line->text[i], color);
- CHANGED_CELL(line, i);
- }
-
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_clear.c b/contrib/ncurses/ncurses/base/lib_clear.c
deleted file mode 100644
index e0b4edf9e224..000000000000
--- a/contrib/ncurses/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: lib_clear.c,v 1.7 2000/12/10 02:43:26 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_clearok.c b/contrib/ncurses/ncurses/base/lib_clearok.c
deleted file mode 100644
index 9b56bd1ec63a..000000000000
--- a/contrib/ncurses/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: lib_clearok.c,v 1.4 2000/12/10 02:43:26 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_clrbot.c b/contrib/ncurses/ncurses/base/lib_clrbot.c
deleted file mode 100644
index df196e815f82..000000000000
--- a/contrib/ncurses/ncurses/base/lib_clrbot.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_clrbot.c,v 1.20 2006/10/14 20:43:31 tom Exp $")
-
-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 = %ld to y = %ld with maxx = %ld",
- (long) win->_cury, (long) win->_maxy, (long) 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/contrib/ncurses/ncurses/base/lib_clreol.c b/contrib/ncurses/ncurses/base/lib_clreol.c
deleted file mode 100644
index c46ebd93a332..000000000000
--- a/contrib/ncurses/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: lib_clreol.c,v 1.21 2001/12/19 01:06:04 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_color.c b/contrib/ncurses/ncurses/base/lib_color.c
deleted file mode 100644
index 9cae495436fe..000000000000
--- a/contrib/ncurses/ncurses/base/lib_color.c
+++ /dev/null
@@ -1,593 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/* lib_color.c
- *
- * Handles color emulation of SYS V curses
- */
-
-#include <curses.priv.h>
-
-#include <term.h>
-#include <tic.h>
-
-MODULE_ID("$Id: lib_color.c,v 1.85 2007/04/07 17:07:28 tom Exp $")
-
-/*
- * These should be screen structure members. They need to be globals for
- * historical reasons. So we assign them in start_color() and also in
- * set_term()'s screen-switching logic.
- */
-#if USE_REENTRANT
-NCURSES_EXPORT(int)
-NCURSES_PUBLIC_VAR(COLOR_PAIRS) (void)
-{
- return SP ? SP->_pair_count : -1;
-}
-NCURSES_EXPORT(int)
-NCURSES_PUBLIC_VAR(COLORS) (void)
-{
- return SP ? SP->_color_count : -1;
-}
-#else
-NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0;
-NCURSES_EXPORT_VAR(int) COLORS = 0;
-#endif
-
-#define DATA(r,g,b) {r,g,b, 0,0,0, 0}
-
-#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
-
-#define MAX_PALETTE 8
-
-#define OkColorHi(n) (((n) < COLORS) && ((n) < max_colors))
-#define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE)
-
-/*
- * 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_1(set_a_background, bg), 1, outc);
- } else {
- TPUTS_TRACE("set_background");
- tputs(TPARM_1(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_1(set_a_foreground, fg), 1, outc);
- } else {
- TPUTS_TRACE("set_foreground");
- tputs(TPARM_1(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 (InPalette(n)) {
- SP->_color_table[n] = tp[n];
- } else {
- SP->_color_table[n] = tp[n % MAX_PALETTE];
- 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 == 0) {
- result = ERR;
- } else if (SP->_coloron) {
- result = OK;
- } else {
-
- 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) {
- SP->_pair_count = max_pairs;
- SP->_color_count = max_colors;
-#if !USE_REENTRANT
- COLOR_PAIRS = max_pairs;
- COLORS = max_colors;
-#endif
-
- if ((SP->_color_pairs = TYPE_CALLOC(colorpair_t,
- max_pairs)) != 0) {
- if ((SP->_color_table = TYPE_CALLOC(color_t,
- max_colors)) != 0) {
- SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg());
- init_color_table();
-
- T(("started color: COLORS = %d, COLOR_PAIRS = %d",
- COLORS, COLOR_PAIRS));
-
- SP->_coloron = 1;
- result = OK;
- } else if (SP->_color_pairs != 0) {
- FreeAndNull(SP->_color_pairs);
- }
- }
- } else {
- result = OK;
- }
- }
- returnCode(result);
-}
-
-/* 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)
-{
- colorpair_t result;
-
- T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b));
-
- if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron)
- returnCode(ERR);
-#if NCURSES_EXT_FUNCS
- if (SP->_default_color) {
- if (f < 0)
- f = COLOR_DEFAULT;
- if (b < 0)
- b = COLOR_DEFAULT;
- if (!OkColorHi(f) && !isDefaultColor(f))
- returnCode(ERR);
- if (!OkColorHi(b) && !isDefaultColor(b))
- returnCode(ERR);
- } else
-#endif
- {
- if ((f < 0) || !OkColorHi(f)
- || (b < 0) || !OkColorHi(b)
- || (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;
-
- for (y = 0; y <= curscr->_maxy; y++) {
- struct ldat *ptr = &(curscr->_line[y]);
- bool changed = FALSE;
- for (x = 0; x <= curscr->_maxx; x++) {
- if (GetPair(ptr->text[x]) == pair) {
- /* Set the old cell to zero to ensure it will be
- updated on the next doupdate() */
- SetChar(ptr->text[x], 0, 0);
- CHANGED_CELL(ptr, x);
- changed = TRUE;
- }
- }
- if (changed)
- _nc_make_oldhash(y);
- }
- }
- SP->_color_pairs[pair] = result;
- if (GET_SCREEN_PAIR(SP) == pair)
- SET_SCREEN_PAIR(SP, (chtype) (~0)); /* force attribute update */
-
- if (initialize_pair && InPalette(f) && InPalette(b)) {
- const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
-
- TR(TRACE_ATTRS,
- ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
- pair,
- tp[f].red, tp[f].green, tp[f].blue,
- tp[b].red, tp[b].green, tp[b].blue));
-
- TPUTS_TRACE("initialize_pair");
- putp(TPARM_7(initialize_pair,
- pair,
- tp[f].red, tp[f].green, tp[f].blue,
- tp[b].red, tp[b].green, tp[b].blue));
- }
-
- 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
- && SP != 0
- && SP->_coloron
- && (color >= 0 && OkColorHi(color))
- && (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_4(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)
-{
- int result;
-
- T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
- if (color < 0 || !OkColorHi(color) || SP == 0 || !SP->_coloron) {
- result = ERR;
- } else {
- NCURSES_COLOR_T c_r = SP->_color_table[color].red;
- NCURSES_COLOR_T c_g = SP->_color_table[color].green;
- NCURSES_COLOR_T c_b = SP->_color_table[color].blue;
-
- if (r)
- *r = c_r;
- if (g)
- *g = c_g;
- if (b)
- *b = c_b;
-
- TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)",
- color, c_r, c_g, c_b));
- result = OK;
- }
- returnCode(result);
-}
-
-NCURSES_EXPORT(int)
-pair_content(short pair, short *f, short *b)
-{
- int result;
-
- T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
-
- if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron) {
- result = ERR;
- } else {
- NCURSES_COLOR_T fg = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
- NCURSES_COLOR_T bg = (SP->_color_pairs[pair] & C_MASK);
-
-#if NCURSES_EXT_FUNCS
- if (fg == COLOR_DEFAULT)
- fg = -1;
- if (bg == COLOR_DEFAULT)
- bg = -1;
-#endif
-
- if (f)
- *f = fg;
- if (b)
- *b = bg;
-
- TR(TRACE_ATTRS, ("...pair_content(%d,%d,%d)", pair, fg, bg));
- result = OK;
- }
- returnCode(result);
-}
-
-NCURSES_EXPORT(void)
-_nc_do_color(short old_pair, short pair, bool reverse, int (*outc) (int))
-{
- NCURSES_COLOR_T fg = COLOR_DEFAULT;
- NCURSES_COLOR_T bg = COLOR_DEFAULT;
- NCURSES_COLOR_T old_fg, old_bg;
-
- if (pair < 0 || pair >= COLOR_PAIRS) {
- return;
- } else if (pair != 0) {
- if (set_color_pair) {
- TPUTS_TRACE("set_color_pair");
- tputs(TPARM_1(set_color_pair, pair), 1, outc);
- return;
- } else if (SP != 0) {
- pair_content((short) pair, &fg, &bg);
- }
- }
-
- if (old_pair >= 0
- && SP != 0
- && pair_content(old_pair, &old_fg, &old_bg) != ERR) {
- if ((isDefaultColor(fg) && !isDefaultColor(old_fg))
- || (isDefaultColor(bg) && !isDefaultColor(old_bg))) {
-#if NCURSES_EXT_FUNCS
- /*
- * A minor optimization - but extension. If "AX" is specified in
- * the terminal description, treat it as screen's indicator of ECMA
- * SGR 39 and SGR 49, and assume the two sequences are independent.
- */
- if (SP->_has_sgr_39_49
- && isDefaultColor(old_bg)
- && !isDefaultColor(old_fg)) {
- tputs("\033[39m", 1, outc);
- } else if (SP->_has_sgr_39_49
- && isDefaultColor(old_fg)
- && !isDefaultColor(old_bg)) {
- tputs("\033[49m", 1, outc);
- } else
-#endif
- reset_color_pair();
- }
- } else {
- reset_color_pair();
- if (old_pair < 0)
- return;
- }
-
-#if NCURSES_EXT_FUNCS
- if (isDefaultColor(fg))
- fg = default_fg();
- if (isDefaultColor(bg))
- 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 (!isDefaultColor(fg)) {
- set_foreground_color(fg, outc);
- }
- if (!isDefaultColor(bg)) {
- set_background_color(bg, outc);
- }
-}
diff --git a/contrib/ncurses/ncurses/base/lib_colorset.c b/contrib/ncurses/ncurses/base/lib_colorset.c
deleted file mode 100644
index a973c5350c8f..000000000000
--- a/contrib/ncurses/ncurses/base/lib_colorset.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- * and: Thomas E. Dickey, 2005 *
- ****************************************************************************/
-
-/*
-** lib_colorset.c
-**
-** The routine wcolor_set().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_colorset.c,v 1.11 2005/01/29 21:40:51 tom Exp $")
-
-NCURSES_EXPORT(int)
-wcolor_set(WINDOW *win, short color_pair_number, void *opts)
-{
- 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) GET_WINDOW_PAIR(win)));
- SET_WINDOW_PAIR(win, color_pair_number);
- if_EXT_COLORS(win->_color = color_pair_number);
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_delch.c b/contrib/ncurses/ncurses/base/lib_delch.c
deleted file mode 100644
index 0c30f2d93c1b..000000000000
--- a/contrib/ncurses/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: lib_delch.c,v 1.12 2001/12/19 01:06:09 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_delwin.c b/contrib/ncurses/ncurses/base/lib_delwin.c
deleted file mode 100644
index ba5f180d5f3c..000000000000
--- a/contrib/ncurses/ncurses/base/lib_delwin.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_delwin.c,v 1.16 2008/05/03 14:13:51 tom Exp $")
-
-static bool
-cannot_delete(WINDOW *win)
-{
- WINDOWLIST *p;
- bool result = TRUE;
-
- for (each_window(p)) {
- 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)
-{
- int result = ERR;
-
- T((T_CALLED("delwin(%p)"), win));
-
- if (_nc_try_global(windowlist) == 0) {
- _nc_lock_window(win);
- if (win == 0
- || cannot_delete(win)) {
- result = ERR;
- _nc_unlock_window(win);
- } else {
-
- if (win->_flags & _SUBWIN)
- touchwin(win->_parent);
- else if (curscr != 0)
- touchwin(curscr);
-
- _nc_unlock_window(win);
- result = _nc_freewin(win);
- }
- _nc_unlock_global(windowlist);
- }
- returnCode(result);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_dft_fgbg.c b/contrib/ncurses/ncurses/base/lib_dft_fgbg.c
deleted file mode 100644
index 8953c148b09e..000000000000
--- a/contrib/ncurses/ncurses/base/lib_dft_fgbg.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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 <term.h>
-
-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.18 2005/11/26 20:03:38 tom Exp $")
-
-/*
- * Modify the behavior of color-pair 0 so that the library doesn't assume that
- * it is white on black. This is an extension to XSI curses.
- */
-NCURSES_EXPORT(int)
-use_default_colors(void)
-{
- T((T_CALLED("use_default_colors()")));
- returnCode(assume_default_colors(-1, -1));
-}
-
-/*
- * 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 = isDefaultColor(fg) || isDefaultColor(bg);
- SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
- SP->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK);
- SP->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
- if (SP->_color_pairs != 0) {
- bool save = SP->_default_color;
- SP->_default_color = TRUE;
- init_pair(0, (short) fg, (short) bg);
- SP->_default_color = save;
- }
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_echo.c b/contrib/ncurses/ncurses/base/lib_echo.c
deleted file mode 100644
index df44713d1a11..000000000000
--- a/contrib/ncurses/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: lib_echo.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_endwin.c b/contrib/ncurses/ncurses/base/lib_endwin.c
deleted file mode 100644
index 66662871962b..000000000000
--- a/contrib/ncurses/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: lib_endwin.c,v 1.19 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_erase.c b/contrib/ncurses/ncurses/base/lib_erase.c
deleted file mode 100644
index 2566e8b39820..000000000000
--- a/contrib/ncurses/ncurses/base/lib_erase.c
+++ /dev/null
@@ -1,92 +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> *
- * and: Thomas E. Dickey 1996-on *
- ****************************************************************************/
-
-/*
-** lib_erase.c
-**
-** The routine werase().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_erase.c,v 1.16 2005/10/30 00:36:36 tom Exp $")
-
-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];
-
- /*
- * If this is a derived window, we have to handle the case where
- * a multicolumn character extends into the window that we are
- * erasing.
- */
- if_WIDEC({
- if (isWidecExt(start[0])) {
- int x = (win->_parent != 0) ? (win->_begx) : 0;
- while (x-- > 0) {
- if (isWidecBase(start[-1])) {
- --start;
- break;
- }
- --start;
- }
- }
- });
-
- 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/contrib/ncurses/ncurses/base/lib_flash.c b/contrib/ncurses/ncurses/base/lib_flash.c
deleted file mode 100644
index a6b022a8e816..000000000000
--- a/contrib/ncurses/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: lib_flash.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
-
-/*
- * 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/contrib/ncurses/ncurses/base/lib_freeall.c b/contrib/ncurses/ncurses/base/lib_freeall.c
deleted file mode 100644
index 4bb7ccc79995..000000000000
--- a/contrib/ncurses/ncurses/base/lib_freeall.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-on *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term_entry.h>
-#include <tic.h>
-
-#if HAVE_NC_FREEALL
-
-#if HAVE_LIBDBMALLOC
-extern int malloc_errfd; /* FIXME */
-#endif
-
-MODULE_ID("$Id: lib_freeall.c,v 1.46 2008/05/03 14:13:51 tom Exp $")
-
-/*
- * 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;
- static va_list empty_va;
-
- T((T_CALLED("_nc_freeall()")));
-#if NO_LEAKS
- if (SP != 0) {
- if (SP->_oldnum_list != 0) {
- FreeAndNull(SP->_oldnum_list);
- }
- }
-#endif
- if (SP != 0) {
- _nc_lock_global(windowlist);
-
- while (_nc_windows != 0) {
- bool deleted = FALSE;
-
- /* Delete only windows that're not a parent */
- for (each_window(p)) {
- bool found = FALSE;
-
- for (each_window(q)) {
- if ((p != q)
- && (q->win._flags & _SUBWIN)
- && (&(p->win) == q->win._parent)) {
- found = TRUE;
- break;
- }
- }
-
- if (!found) {
- if (delwin(&(p->win)) != ERR)
- deleted = TRUE;
- break;
- }
- }
-
- /*
- * Don't continue to loop if the list is trashed.
- */
- if (!deleted)
- break;
- }
- delscreen(SP);
- _nc_unlock_global(windowlist);
- }
- if (cur_term != 0)
- del_curterm(cur_term);
-
-#if USE_WIDEC_SUPPORT
- FreeIfNeeded(_nc_wacs);
-#endif
- (void) _nc_printf_string(0, empty_va);
-#ifdef TRACE
- (void) _nc_trace_buf(-1, 0);
-#endif
-
-#if BROKEN_LINKER || USE_REENTRANT
- FreeIfNeeded(_nc_prescreen.real_acs_map);
-#endif
-
- _nc_leaks_tinfo();
-
-#if HAVE_LIBDBMALLOC
- malloc_dump(malloc_errfd);
-#elif HAVE_LIBDMALLOC
-#elif HAVE_LIBMPATROL
- __mp_summary();
-#elif HAVE_PURIFY
- purify_all_inuse();
-#endif
- returnVoid;
-}
-
-NCURSES_EXPORT(void)
-_nc_free_and_exit(int code)
-{
- char *last_setbuf = (SP != 0) ? SP->_setbuf : 0;
-
- _nc_freeall();
-#ifdef TRACE
- trace(0); /* close trace file, freeing its setbuf */
- free(_nc_varargs("?", 0));
-#endif
- fclose(stdout);
- FreeIfNeeded(last_setbuf);
- exit(code);
-}
-
-#else
-NCURSES_EXPORT(void)
-_nc_freeall(void)
-{
-}
-#endif
diff --git a/contrib/ncurses/ncurses/base/lib_getch.c b/contrib/ncurses/ncurses/base/lib_getch.c
deleted file mode 100644
index d9f6b1795c77..000000000000
--- a/contrib/ncurses/ncurses/base/lib_getch.c
+++ /dev/null
@@ -1,611 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_getch.c
-**
-** The routine getch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_getch.c,v 1.87 2008/05/03 22:42:10 tom Exp $")
-
-#include <fifo_defs.h>
-
-#if USE_REENTRANT
-#define GetEscdelay(sp) (sp)->_ESCDELAY
-NCURSES_EXPORT(int)
-NCURSES_PUBLIC_VAR(ESCDELAY) (void)
-{
- return SP ? GetEscdelay(SP) : 1000;
-}
-#else
-#define GetEscdelay(sp) ESCDELAY
-NCURSES_EXPORT_VAR(int)
-ESCDELAY = 1000; /* max interval betw. chars in funkeys, in millisecs */
-#endif
-
-#if NCURSES_EXT_FUNCS
-NCURSES_EXPORT(int)
-set_escdelay(int value)
-{
- int code = OK;
-#if USE_REENTRANT
- if (SP) {
- SP->_ESCDELAY = value;
- } else {
- code = ERR;
- }
-#else
- ESCDELAY = value;
-#endif
- return code;
-}
-#endif
-
-#ifdef NCURSES_WGETCH_EVENTS
-#define TWAIT_MASK 7
-#else
-#define TWAIT_MASK 3
-#endif
-
-/*
- * Check for mouse activity, returning nonzero if we find any.
- */
-static int
-check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl))
-{
- int rc;
-
-#if USE_SYSMOUSE
- if ((sp->_mouse_type == M_SYSMOUSE)
- && (sp->_sysmouse_head < sp->_sysmouse_tail)) {
- return 2;
- }
-#endif
- rc = _nc_timed_wait(sp, TWAIT_MASK, delay, (int *) 0 EVENTLIST_2nd(evl));
-#if USE_SYSMOUSE
- if ((sp->_mouse_type == M_SYSMOUSE)
- && (sp->_sysmouse_head < sp->_sysmouse_tail)
- && (rc == 0)
- && (errno == EINTR)) {
- rc |= 2;
- }
-#endif
- return rc;
-}
-
-static NCURSES_INLINE int
-fifo_peek(SCREEN *sp)
-{
- int ch = sp->_fifo[peek];
- TR(TRACE_IEVENT, ("peeking at %d", peek));
-
- p_inc();
- return ch;
-}
-
-static NCURSES_INLINE int
-fifo_pull(SCREEN *sp)
-{
- 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 (USE_TRACEF(TRACE_IEVENT)) {
- _nc_fifo_dump(sp);
- _nc_unlock_global(tracef);
- }
-#endif
- return ch;
-}
-
-static NCURSES_INLINE int
-fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
-{
- int n;
- int ch = 0;
- int mask = 0;
-
- (void) mask;
- if (tail == -1)
- return ERR;
-
-#ifdef HIDE_EINTR
- again:
- errno = 0;
-#endif
-
-#ifdef NCURSES_WGETCH_EVENTS
- if (evl
-#if USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
- || (sp->_mouse_fd >= 0)
-#endif
- ) {
- mask = check_mouse_activity(sp, -1 EVENTLIST_2nd(evl));
- } else
- mask = 0;
-
- if (mask & 4) {
- T(("fifo_push: ungetch KEY_EVENT"));
- _nc_ungetch(sp, KEY_EVENT);
- return KEY_EVENT;
- }
-#elif USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
- if (sp->_mouse_fd >= 0) {
- mask = check_mouse_activity(sp, -1 EVENTLIST_2nd(evl));
- }
-#endif
-
-#if USE_GPM_SUPPORT || USE_EMX_MOUSE
- if ((sp->_mouse_fd >= 0) && (mask & 2)) {
- sp->_mouse_event(sp);
- ch = KEY_MOUSE;
- n = 1;
- } else
-#endif
-#if USE_SYSMOUSE
- if ((sp->_mouse_type == M_SYSMOUSE)
- && (sp->_sysmouse_head < sp->_sysmouse_tail)) {
- sp->_mouse_event(sp);
- ch = KEY_MOUSE;
- n = 1;
- } else if ((sp->_mouse_type == M_SYSMOUSE)
- && (mask <= 0) && errno == EINTR) {
- 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 (USE_TRACEF(TRACE_IEVENT)) {
- _nc_fifo_dump(sp);
- _nc_unlock_global(tracef);
- }
-#endif
- return ch;
-}
-
-static NCURSES_INLINE void
-fifo_clear(SCREEN *sp)
-{
- memset(sp->_fifo, 0, sizeof(sp->_fifo));
- head = -1;
- tail = peek = 0;
-}
-
-static int kgetch(SCREEN *EVENTLIST_2nd(_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))
-{
- SCREEN *sp = SP;
- int ch;
-#ifdef NCURSES_WGETCH_EVENTS
- long event_delay = -1;
-#endif
-
- T((T_CALLED("_nc_wgetch(%p)"), win));
-
- *result = 0;
- if (win == 0 || sp == 0) {
- returnCode(ERR);
- }
-
- if (cooked_key_in_fifo()) {
- if (wgetch_should_refresh(win))
- wrefresh(win);
-
- *result = fifo_pull(sp);
- returnCode(*result >= KEY_MIN ? KEY_CODE_YES : 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->_notty &&
- !sp->_raw &&
- !sp->_cbreak &&
- !sp->_called_wgetch) {
- char buf[MAXCOLUMNS], *bufp;
- int rc;
-
- TR(TRACE_IEVENT, ("filling queue in cooked mode"));
-
- sp->_called_wgetch = TRUE;
- rc = wgetnstr(win, buf, MAXCOLUMNS);
- sp->_called_wgetch = FALSE;
-
- /* ungetch in reverse order */
-#ifdef NCURSES_WGETCH_EVENTS
- if (rc != KEY_EVENT)
-#endif
- _nc_ungetch(sp, '\n');
- for (bufp = buf + strlen(buf); bufp > buf; bufp--)
- _nc_ungetch(sp, bufp[-1]);
-
-#ifdef NCURSES_WGETCH_EVENTS
- /* Return it first */
- if (rc == KEY_EVENT) {
- *result = rc;
- } else
-#endif
- *result = fifo_pull(sp);
- returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
- }
-
- if (win->_use_keypad != sp->_keypad_on)
- _nc_keypad(sp, win->_use_keypad);
-
- if (wgetch_should_refresh(win))
- wrefresh(win);
-
- if (!win->_notimeout && (win->_delay >= 0 || sp->_cbreak > 1)) {
- if (head == -1) { /* fifo is empty */
- int delay;
- int rc;
-
- 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));
-
- rc = check_mouse_activity(sp, delay EVENTLIST_2nd(evl));
-
-#ifdef NCURSES_WGETCH_EVENTS
- if (rc & 4) {
- *result = KEY_EVENT;
- returnCode(KEY_CODE_YES);
- }
-#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(sp EVENTLIST_2nd(evl));
- if (ch == KEY_MOUSE) {
- ++runcount;
- if (sp->_mouse_inline(sp))
- break;
- }
- if (sp->_maxclick < 0)
- break;
- } while
- (ch == KEY_MOUSE
- && (((rc = check_mouse_activity(sp, sp->_maxclick
- EVENTLIST_2nd(evl))) != 0
- && !(rc & 4))
- || !sp->_mouse_parse(runcount)));
-#ifdef NCURSES_WGETCH_EVENTS
- if ((rc & 4) && !ch == KEY_EVENT) {
- _nc_ungetch(sp, 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) {
- _nc_ungetch(sp, KEY_MOUSE); /* FIXME This interrupts a gesture... */
- } else
-#endif
- {
- /* mouse event sequence ended by keystroke, store keystroke */
- _nc_ungetch(sp, ch);
- ch = KEY_MOUSE;
- }
- }
- } else {
- if (head == -1)
- fifo_push(sp EVENTLIST_2nd(evl));
- ch = fifo_pull(sp);
- }
-
- if (ch == ERR) {
-#if USE_SIZECHANGE
- if (_nc_handle_sigwinch(sp)) {
- _nc_update_screensize(sp);
- /* resizeterm can push KEY_RESIZE */
- if (cooked_key_in_fifo()) {
- *result = fifo_pull(sp);
- 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)
-{
- SCREEN *sp = SP;
- 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)
-{
- SCREEN *sp = SP;
- int code;
- unsigned long value;
-
- T((T_CALLED("wgetch(%p)"), win));
- code = _nc_wgetch(win,
- &value,
- (sp ? sp->_use_meta : 0)
- 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(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
-{
- TRIES *ptr;
- int ch = 0;
- int timeleft = GetEscdelay(sp);
-
- 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(sp EVENTLIST_2nd(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(sp); /* Remove KEY_EVENT from the queue */
- }
-#endif
- }
-
- ch = fifo_peek(sp);
- 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(sp);
- 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 = check_mouse_activity(sp, timeleft EVENTLIST_2nd(evl));
-#ifdef NCURSES_WGETCH_EVENTS
- if (rc & 4) {
- TR(TRACE_IEVENT, ("interrupted by a user event"));
- /* FIXME Should have preserved remainder timeleft for reuse... */
- peek = head; /* Restart interpreting later */
- return KEY_EVENT;
- }
-#endif
- if (!rc) {
- TR(TRACE_IEVENT, ("ran out of time"));
- break;
- }
- }
- }
- ch = fifo_pull(sp);
- peek = head;
- return ch;
-}
diff --git a/contrib/ncurses/ncurses/base/lib_getstr.c b/contrib/ncurses/ncurses/base/lib_getstr.c
deleted file mode 100644
index 274e87887371..000000000000
--- a/contrib/ncurses/ncurses/base/lib_getstr.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_getstr.c,v 1.25 2006/01/12 00:33:52 tom Exp $")
-
-/*
- * This wipes out the last character, no matter whether it was a tab, control
- * or other character, and handles reverse wraparound.
- */
-static char *
-WipeOut(WINDOW *win, int y, int x, char *first, char *last, bool echoed)
-{
- 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
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE)
- 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);
-
- T(("wgetnstr returns %s", _nc_visbuf(oldstr)));
-
-#ifdef KEY_EVENT
- if (ch == KEY_EVENT)
- returnCode(ch);
-#endif
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE)
- returnCode(ch);
-#endif
-
- 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/contrib/ncurses/ncurses/base/lib_hline.c b/contrib/ncurses/ncurses/base/lib_hline.c
deleted file mode 100644
index 2ef2cc585e10..000000000000
--- a/contrib/ncurses/ncurses/base/lib_hline.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_hline.c,v 1.11 2006/03/11 21:52:27 tom Exp $")
-
-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)
- SetChar2(wch, ACS_HLINE);
- else
- SetChar2(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/contrib/ncurses/ncurses/base/lib_immedok.c b/contrib/ncurses/ncurses/base/lib_immedok.c
deleted file mode 100644
index 87988b66f1a3..000000000000
--- a/contrib/ncurses/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: lib_immedok.c,v 1.4 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_inchstr.c b/contrib/ncurses/ncurses/base/lib_inchstr.c
deleted file mode 100644
index 6ff01687826e..000000000000
--- a/contrib/ncurses/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: lib_inchstr.c,v 1.10 2001/06/02 23:37:58 skimo Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_initscr.c b/contrib/ncurses/ncurses/base/lib_initscr.c
deleted file mode 100644
index ef360c03b642..000000000000
--- a/contrib/ncurses/ncurses/base/lib_initscr.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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-2003 *
- ****************************************************************************/
-
-/*
-** lib_initscr.c
-**
-** The routines initscr(), and termname().
-**
-*/
-
-#include <curses.priv.h>
-
-#if HAVE_SYS_TERMIO_H
-#include <sys/termio.h> /* needed for ISC */
-#endif
-
-MODULE_ID("$Id: lib_initscr.c,v 1.36 2008/04/12 18:11:36 tom Exp $")
-
-NCURSES_EXPORT(WINDOW *)
-initscr(void)
-{
- WINDOW *result;
-
- NCURSES_CONST char *name;
-
- START_TRACE();
- T((T_CALLED("initscr()")));
-
- _nc_lock_global(set_SP);
- /* Portable applications must not call initscr() more than once */
- if (!_nc_globals.init_screen) {
- _nc_globals.init_screen = 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);
- }
-
- /* def_shell_mode - done in newterm/_nc_setupscreen */
- def_prog_mode();
- }
- result = stdscr;
- _nc_unlock_global(set_SP);
-
- returnWin(result);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_insch.c b/contrib/ncurses/ncurses/base/lib_insch.c
deleted file mode 100644
index 9166ea5240e7..000000000000
--- a/contrib/ncurses/ncurses/base/lib_insch.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: Sven Verdoolaege *
- * and: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
-** lib_insch.c
-**
-** The routine winsch().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_insch.c,v 1.25 2008/02/03 00:14:37 tom Exp $")
-
-/*
- * Insert the given character, updating the current location to simplify
- * inserting a string.
- */
-NCURSES_EXPORT(int)
-_nc_insert_ch(WINDOW *win, chtype ch)
-{
- int code = OK;
- NCURSES_CH_T wch;
- int count;
- NCURSES_CONST char *s;
-
- switch (ch) {
- case '\t':
- for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--) {
- if ((code = _nc_insert_ch(win, ' ')) != OK)
- break;
- }
- break;
- case '\n':
- case '\r':
- case '\b':
- SetChar2(wch, ch);
- _nc_waddch_nosync(win, wch);
- break;
- default:
- if (
-#if USE_WIDEC_SUPPORT
- WINDOW_EXT(win, addch_used) == 0 &&
-#endif
- is8bits(ChCharOf(ch)) &&
- isprint(ChCharOf(ch))) {
- if (win->_curx <= win->_maxx) {
- struct ldat *line = &(win->_line[win->_cury]);
- NCURSES_CH_T *end = &(line->text[win->_curx]);
- NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
- NCURSES_CH_T *temp2 = temp1 - 1;
-
- SetChar2(wch, ch);
-
- CHANGED_TO_EOL(line, win->_curx, win->_maxx);
- while (temp1 > end)
- *temp1-- = *temp2--;
-
- *temp1 = _nc_render(win, wch);
- win->_curx++;
- }
- } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) {
- s = unctrl(ChCharOf(ch));
- while (*s != '\0') {
- code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s));
- if (code != OK)
- break;
- ++s;
- }
- }
-#if USE_WIDEC_SUPPORT
- else {
- /*
- * Handle multibyte characters here
- */
- SetChar2(wch, ch);
- wch = _nc_render(win, wch);
- count = _nc_build_wch(win, &wch);
- if (count > 0) {
- code = wins_wch(win, &wch);
- } else if (count == -1) {
- /* handle EILSEQ */
- if (is8bits(ch)) {
- s = unctrl(ChCharOf(ch));
- while (*s != '\0') {
- code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s));
- if (code != OK)
- break;
- ++s;
- }
- } else {
- code = ERR;
- }
- }
- }
-#endif
- break;
- }
- return code;
-}
-
-NCURSES_EXPORT(int)
-winsch(WINDOW *win, chtype c)
-{
- NCURSES_SIZE_T oy;
- NCURSES_SIZE_T ox;
- int code = ERR;
-
- T((T_CALLED("winsch(%p, %s)"), win, _tracechtype(c)));
-
- if (win != 0) {
- oy = win->_cury;
- ox = win->_curx;
-
- code = _nc_insert_ch(win, c);
-
- win->_curx = ox;
- win->_cury = oy;
- _nc_synchook(win);
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_insdel.c b/contrib/ncurses/ncurses/base/lib_insdel.c
deleted file mode 100644
index 342c6541f95f..000000000000
--- a/contrib/ncurses/ncurses/base/lib_insdel.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_insdel.c,v 1.12 2003/07/26 22:40:06 tom Exp $")
-
-NCURSES_EXPORT(int)
-winsdelln(WINDOW *win, int n)
-{
- int code = ERR;
-
- T((T_CALLED("winsdelln(%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/contrib/ncurses/ncurses/base/lib_insnstr.c b/contrib/ncurses/ncurses/base/lib_insnstr.c
deleted file mode 100644
index b6ddfde3c52b..000000000000
--- a/contrib/ncurses/ncurses/base/lib_insnstr.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
-** lib_insnstr.c
-**
-** The routine winsnstr().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_insnstr.c,v 1.1 2004/02/28 23:44:56 tom Exp $")
-
-NCURSES_EXPORT(int)
-winsnstr(WINDOW *win, const char *s, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T oy;
- NCURSES_SIZE_T ox;
- const unsigned char *str = (const unsigned char *) s;
- const unsigned char *cp;
-
- T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n));
-
- if (win != 0 && str != 0) {
- oy = win->_cury;
- ox = win->_curx;
- for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
- _nc_insert_ch(win, (chtype) UChar(*cp));
- }
- win->_curx = ox;
- win->_cury = oy;
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_instr.c b/contrib/ncurses/ncurses/base/lib_instr.c
deleted file mode 100644
index 3fb29490ad06..000000000000
--- a/contrib/ncurses/ncurses/base/lib_instr.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_instr.c
-**
-** The routine winnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_instr.c,v 1.16 2007/07/21 20:18:10 tom Exp $")
-
-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;) {
-#if USE_WIDEC_SUPPORT
- cchar_t *cell = &(win->_line[row].text[col]);
- wchar_t *wch;
- attr_t attrs;
- short pair;
- int n2;
- bool done = FALSE;
- mbstate_t state;
- size_t i3, n3;
- char *tmp;
-
- if (!isWidecExt(*cell)) {
- n2 = getcchar(cell, 0, 0, 0, 0);
- if (n2 > 0
- && (wch = typeCalloc(wchar_t, (unsigned) n2 + 1)) != 0) {
- if (getcchar(cell, wch, &attrs, &pair, 0) == OK) {
-
- init_mb(state);
- n3 = wcstombs(0, wch, 0);
- if (isEILSEQ(n3) || (n3 == 0)) {
- ;
- } else if ((int) (n3 + i) > n) {
- done = TRUE;
- } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) {
- done = TRUE;
- } else {
- init_mb(state);
- wcstombs(tmp, wch, n3);
- for (i3 = 0; i3 < n3; ++i3)
- str[i++] = tmp[i3];
- free(tmp);
- }
- }
- free(wch);
- if (done)
- break;
- }
- }
-#else
- str[i++] = (char) CharOf(win->_line[row].text[col]);
-#endif
- if (++col > win->_maxx) {
- break;
- }
- }
- }
- str[i] = '\0'; /* SVr4 does not seem to count the null */
- T(("winnstr returns %s", _nc_visbuf(str)));
- returnCode(i);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_isendwin.c b/contrib/ncurses/ncurses/base/lib_isendwin.c
deleted file mode 100644
index b337d97a94c3..000000000000
--- a/contrib/ncurses/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: lib_isendwin.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
-
-NCURSES_EXPORT(bool)
-isendwin(void)
-{
- if (SP == NULL)
- return FALSE;
- return SP->_endwin;
-}
diff --git a/contrib/ncurses/ncurses/base/lib_leaveok.c b/contrib/ncurses/ncurses/base/lib_leaveok.c
deleted file mode 100644
index 17d095d0f8c8..000000000000
--- a/contrib/ncurses/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: lib_leaveok.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_mouse.c b/contrib/ncurses/ncurses/base/lib_mouse.c
deleted file mode 100644
index aace7deb4c7f..000000000000
--- a/contrib/ncurses/ncurses/base/lib_mouse.c
+++ /dev/null
@@ -1,1367 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * This module is intended to encapsulate ncurses's interface to pointing
- * devices.
- *
- * The primary method used is xterm's internal mouse-tracking facility.
- * Additional methods depend on the platform:
- * Alessandro Rubini's GPM server (Linux)
- * sysmouse (FreeBSD)
- * special-purpose mouse interface for OS/2 EMX.
- *
- * Notes for implementors of new mouse-interface methods:
- *
- * 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>
-
-MODULE_ID("$Id: lib_mouse.c,v 1.88 2007/09/29 21:50:04 tom Exp $")
-
-#include <term.h>
-#include <tic.h>
-
-#if USE_GPM_SUPPORT
-#include <linux/keyboard.h> /* defines KG_* macros */
-
-#ifdef HAVE_LIBDL
-/* use dynamic loader to avoid linkage dependency */
-#include <dlfcn.h>
-
-#ifdef RTLD_NOW
-#define my_RTLD RTLD_NOW
-#else
-#ifdef RTLD_LAZY
-#define my_RTLD RTLD_LAZY
-#else
-make an error
-#endif
-#endif /* RTLD_NOW */
-#endif /* HAVE_LIBDL */
-
-#endif /* USE_GPM_SUPPORT */
-
-#if USE_SYSMOUSE
-#undef buttons /* symbol conflict in consio.h */
-#undef mouse_info /* symbol conflict in consio.h */
-#include <osreldate.h>
-#if (__FreeBSD_version >= 400017)
-#include <sys/consio.h>
-#include <sys/fbio.h>
-#else
-#include <machine/console.h>
-#endif
-#endif /* use_SYSMOUSE */
-
-#define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
-
-#define MASK_RELEASE(x) NCURSES_MOUSE_MASK(x, 001)
-#define MASK_PRESS(x) NCURSES_MOUSE_MASK(x, 002)
-#define MASK_CLICK(x) NCURSES_MOUSE_MASK(x, 004)
-#define MASK_DOUBLE_CLICK(x) NCURSES_MOUSE_MASK(x, 010)
-#define MASK_TRIPLE_CLICK(x) NCURSES_MOUSE_MASK(x, 020)
-#define MASK_RESERVED_EVENT(x) NCURSES_MOUSE_MASK(x, 040)
-
-#if NCURSES_MOUSE_VERSION == 1
-#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED | BUTTON4_CLICKED)
-#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED | BUTTON4_PRESSED)
-#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED | BUTTON4_RELEASED)
-#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED)
-#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED)
-#define MAX_BUTTONS 4
-#else
-#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED | BUTTON4_CLICKED | BUTTON5_CLICKED)
-#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED | BUTTON4_PRESSED | BUTTON5_PRESSED)
-#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED | BUTTON4_RELEASED | BUTTON5_RELEASED)
-#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED | BUTTON5_DOUBLE_CLICKED)
-#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED | BUTTON5_TRIPLE_CLICKED)
-#define MAX_BUTTONS 5
-#endif
-
-#define INVALID_EVENT -1
-#define NORMAL_EVENT 0
-
-#if USE_GPM_SUPPORT
-
-#ifndef LIBGPM_SONAME
-#define LIBGPM_SONAME "libgpm.so"
-#endif
-
-#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(obj, #name))
-
-#endif /* USE_GPM_SUPPORT */
-
-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 */
-
-#undef NEXT
-#define NEXT(ep) ((ep == SP->_mouse_events + EV_MAX - 1) \
- ? SP->_mouse_events \
- : ep + 1)
-
-#undef PREV
-#define PREV(ep) ((ep == SP->_mouse_events) \
- ? SP->_mouse_events + EV_MAX - 1 \
- : ep - 1)
-
-#ifdef TRACE
-static void
-_trace_slot(const char *tag)
-{
- MEVENT *ep;
-
- _tracef(tag);
-
- for (ep = SP->_mouse_events; ep < SP->_mouse_events + EV_MAX; ep++)
- _tracef("mouse event queue slot %ld = %s",
- (long) (ep - SP->_mouse_events),
- _tracemouse(ep));
-}
-#endif
-
-#if USE_EMX_MOUSE
-
-# define TOP_ROW 0
-# define LEFT_COL 0
-
-# 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(SP->_emxmouse_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 (!SP->_emxmouse_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,
- SP->_emxmouse_buttons[1], mouev.col, mouev.row);
- if ((mouev.fs ^ oldstate) & MOUSE_BN2_DOWN)
- write_event(mouev.fs & MOUSE_BN2_DOWN,
- SP->_emxmouse_buttons[3], mouev.col, mouev.row);
- if ((mouev.fs ^ oldstate) & MOUSE_BN3_DOWN)
- write_event(mouev.fs & MOUSE_BN3_DOWN,
- SP->_emxmouse_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);
-}
-
-#endif /* USE_EMX_MOUSE */
-
-#if USE_SYSMOUSE
-static void
-handle_sysmouse(int sig GCC_UNUSED)
-{
- struct mouse_info the_mouse;
- MEVENT *work;
-
- the_mouse.operation = MOUSE_GETINFO;
- if (SP != 0
- && SP->_mouse_fd >= 0
- && SP->_sysmouse_tail < FIFO_SIZE
- && ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
-
- if (SP->_sysmouse_head > SP->_sysmouse_tail) {
- SP->_sysmouse_tail = 0;
- SP->_sysmouse_head = 0;
- }
- work = &(SP->_sysmouse_fifo[SP->_sysmouse_tail]);
- memset(work, 0, sizeof(*work));
- work->id = NORMAL_EVENT; /* there's only one mouse... */
-
- SP->_sysmouse_old_buttons = SP->_sysmouse_new_buttons;
- SP->_sysmouse_new_buttons = the_mouse.u.data.buttons & 0x7;
-
- if (SP->_sysmouse_new_buttons) {
- if (SP->_sysmouse_new_buttons & 1)
- work->bstate |= BUTTON1_PRESSED;
- if (SP->_sysmouse_new_buttons & 2)
- work->bstate |= BUTTON2_PRESSED;
- if (SP->_sysmouse_new_buttons & 4)
- work->bstate |= BUTTON3_PRESSED;
- } else {
- if (SP->_sysmouse_old_buttons & 1)
- work->bstate |= BUTTON1_RELEASED;
- if (SP->_sysmouse_old_buttons & 2)
- work->bstate |= BUTTON2_RELEASED;
- if (SP->_sysmouse_old_buttons & 4)
- work->bstate |= BUTTON3_RELEASED;
- }
-
- /* for cosmetic bug in syscons.c on FreeBSD 3.[34] */
- the_mouse.operation = MOUSE_HIDE;
- ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
- the_mouse.operation = MOUSE_SHOW;
- ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
-
- /*
- * We're only interested if the button is pressed or released.
- * FIXME: implement continuous event-tracking.
- */
- if (SP->_sysmouse_new_buttons != SP->_sysmouse_old_buttons) {
- SP->_sysmouse_tail += 1;
- }
- work->x = the_mouse.u.data.x / SP->_sysmouse_char_width;
- work->y = the_mouse.u.data.y / SP->_sysmouse_char_height;
- }
-}
-#endif /* USE_SYSMOUSE */
-
-static void
-init_xterm_mouse(void)
-{
- SP->_mouse_type = M_XTERM;
- SP->_mouse_xtermcap = tigetstr("XM");
- if (!VALID_STRING(SP->_mouse_xtermcap))
- SP->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
-}
-
-static void
-enable_xterm_mouse(int enable)
-{
-#if USE_EMX_MOUSE
- SP->_emxmouse_activated = enable;
-#else
- putp(TPARM_1(SP->_mouse_xtermcap, enable));
-#endif
- SP->_mouse_active = enable;
-}
-
-#if USE_GPM_SUPPORT
-static int
-allow_gpm_mouse(void)
-{
- /* GPM does printf's without checking if stdout is a terminal */
- if (isatty(fileno(stdout))) {
- char *env = getenv("TERM");
- /* GPM checks the beginning of the $TERM variable to decide if
- * it should pass xterm events through. There is no real advantage
- * in allowing GPM to do this.
- */
- if (env == 0 || strncmp(env, "xterm", 5))
- return TRUE;
- }
- return FALSE;
-}
-
-static bool
-enable_gpm_mouse(int enable)
-{
- bool result;
-
- T((T_CALLED("enable_gpm_mouse(%d)"), enable));
-
- if (enable && !SP->_mouse_active) {
- /* GPM: initialize connection to gpm server */
- SP->_mouse_gpm_connect.eventMask = GPM_DOWN | GPM_UP;
- SP->_mouse_gpm_connect.defaultMask =
- ~(SP->_mouse_gpm_connect.eventMask | GPM_HARD);
- SP->_mouse_gpm_connect.minMod = 0;
- SP->_mouse_gpm_connect.maxMod =
- (unsigned short) (~((1 << KG_SHIFT) |
- (1 << KG_SHIFTL) |
- (1 << KG_SHIFTR)));
- /*
- * Note: GPM hardcodes \E[?1001s and \E[?1000h during its open.
- * The former is recognized by wscons (SunOS), and the latter by
- * xterm. Those will not show up in ncurses' traces.
- */
- result = (my_Gpm_Open(&SP->_mouse_gpm_connect, 0) >= 0);
- SP->_mouse_active = result;
- T(("GPM open %s", result ? "succeeded" : "failed"));
- } else {
- if (!enable && SP->_mouse_active) {
- /* GPM: close connection to gpm server */
- my_Gpm_Close();
- SP->_mouse_active = FALSE;
- T(("GPM closed"));
- }
- result = FALSE;
- }
- returnBool(result);
-}
-#endif /* USE_GPM_SUPPORT */
-
-#define xterm_kmous "\033[M"
-
-static void
-initialize_mousetype(void)
-{
- T((T_CALLED("initialize_mousetype()")));
-
- /* Try gpm first, because gpm may be configured to run in xterm */
-#if USE_GPM_SUPPORT
- if (allow_gpm_mouse()) {
- if (!SP->_mouse_gpm_loaded) {
-#ifdef HAVE_LIBDL
- void *obj;
-
- if ((obj = dlopen(LIBGPM_SONAME, my_RTLD)) != 0) {
- if (GET_DLSYM(gpm_fd) == 0 ||
- GET_DLSYM(Gpm_Open) == 0 ||
- GET_DLSYM(Gpm_Close) == 0 ||
- GET_DLSYM(Gpm_GetEvent) == 0) {
- T(("GPM initialization failed: %s", dlerror()));
- dlclose(obj);
- } else {
- SP->_mouse_gpm_found = TRUE;
- }
- }
-#else /* !HAVE_LIBDL */
- SP->_mouse_gpm_found = TRUE;
-#endif
- SP->_mouse_gpm_loaded = TRUE;
- }
-
- /*
- * The gpm_fd file-descriptor may be negative (xterm). So we have to
- * maintain our notion of whether the mouse connection is active
- * without testing the file-descriptor.
- */
- if (SP->_mouse_gpm_found && enable_gpm_mouse(TRUE)) {
- SP->_mouse_type = M_GPM;
- SP->_mouse_fd = *(my_gpm_fd);
- T(("GPM mouse_fd %d", SP->_mouse_fd));
- returnVoid;
- }
- }
-#endif /* USE_GPM_SUPPORT */
-
- /* OS/2 VIO */
-#if USE_EMX_MOUSE
- if (!SP->_emxmouse_thread
- && strstr(cur_term->type.term_names, "xterm") == 0
- && key_mouse) {
- int handles[2];
-
- if (pipe(handles) < 0) {
- perror("mouse pipe error");
- returnVoid;
- } else {
- int rc;
-
- if (!SP->_emxmouse_buttons[0]) {
- char *s = getenv("MOUSE_BUTTONS_123");
-
- SP->_emxmouse_buttons[0] = 1;
- if (s && strlen(s) >= 3) {
- SP->_emxmouse_buttons[1] = s[0] - '0';
- SP->_emxmouse_buttons[2] = s[1] - '0';
- SP->_emxmouse_buttons[3] = s[2] - '0';
- } else {
- SP->_emxmouse_buttons[1] = 1;
- SP->_emxmouse_buttons[2] = 3;
- SP->_emxmouse_buttons[3] = 2;
- }
- }
- SP->_emxmouse_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 *) &SP->_emxmouse_thread,
- mouse_server, 0, 0, 8192);
- if (rc) {
- printf("mouse thread error %d=%#x", rc, rc);
- } else {
- SP->_mouse_type = M_XTERM;
- }
- returnVoid;
- }
- }
-#endif /* USE_EMX_MOUSE */
-
-#if USE_SYSMOUSE
- {
- struct mouse_info the_mouse;
- char *the_device = 0;
-
- if (isatty(SP->_ifd))
- the_device = ttyname(SP->_ifd);
- if (the_device == 0)
- the_device = "/dev/tty";
-
- SP->_mouse_fd = open(the_device, O_RDWR);
-
- if (SP->_mouse_fd >= 0) {
- /*
- * sysmouse does not have a usable user interface for obtaining
- * mouse events. The logical way to proceed (reading data on a
- * stream) only works if one opens the device as root. Even in
- * that mode, careful examination shows we lose events
- * occasionally. The interface provided for user programs is to
- * establish a signal handler. really.
- *
- * Take over SIGUSR2 for this purpose since SIGUSR1 is more
- * likely to be used by an application. getch() will have to
- * handle the misleading EINTR's.
- */
- signal(SIGUSR2, SIG_IGN);
- the_mouse.operation = MOUSE_MODE;
- the_mouse.u.mode.mode = 0;
- the_mouse.u.mode.signal = SIGUSR2;
- if (ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) {
- signal(SIGUSR2, handle_sysmouse);
- the_mouse.operation = MOUSE_SHOW;
- ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse);
-
-#if defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) /* FreeBSD > 2.x */
- {
-#ifndef FBIO_GETMODE /* FreeBSD 3.x */
-#define FBIO_GETMODE CONS_GET
-#define FBIO_MODEINFO CONS_MODEINFO
-#endif /* FBIO_GETMODE */
- video_info_t the_video;
-
- if (ioctl(SP->_mouse_fd,
- FBIO_GETMODE,
- &the_video.vi_mode) != -1
- && ioctl(SP->_mouse_fd,
- FBIO_MODEINFO,
- &the_video) != -1) {
- SP->_sysmouse_char_width = the_video.vi_cwidth;
- SP->_sysmouse_char_height = the_video.vi_cheight;
- }
- }
-#endif /* defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) */
-
- if (SP->_sysmouse_char_width <= 0)
- SP->_sysmouse_char_width = 8;
- if (SP->_sysmouse_char_height <= 0)
- SP->_sysmouse_char_height = 16;
- SP->_mouse_type = M_SYSMOUSE;
- returnVoid;
- }
- }
- }
-#endif /* USE_SYSMOUSE */
-
- /* we know how to recognize mouse events under "xterm" */
- if (key_mouse != 0) {
- if (!strcmp(key_mouse, xterm_kmous)
- || strstr(cur_term->type.term_names, "xterm") != 0) {
- init_xterm_mouse();
- }
- } else if (strstr(cur_term->type.term_names, "xterm") != 0) {
- if (_nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE) == OK)
- init_xterm_mouse();
- }
- returnVoid;
-}
-
-static bool
-_nc_mouse_init(void)
-/* initialize the mouse */
-{
- bool result = FALSE;
- int i;
-
- if (SP != 0) {
- if (!SP->_mouse_initialized) {
- SP->_mouse_initialized = TRUE;
-
- TR(MY_TRACE, ("_nc_mouse_init() called"));
-
- SP->_mouse_eventp = SP->_mouse_events;
- for (i = 0; i < EV_MAX; i++)
- SP->_mouse_events[i].id = INVALID_EVENT;
-
- initialize_mousetype();
-
- T(("_nc_mouse_init() set mousetype to %d", SP->_mouse_type));
- }
- result = SP->_mouse_initialized;
- }
- return result;
-}
-
-/*
- * 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)
-{
- MEVENT *eventp = SP->_mouse_eventp;
- bool result = FALSE;
-
- (void) eventp;
-
- switch (SP->_mouse_type) {
- case M_XTERM:
- /* xterm: never have to query, mouse events are in the keyboard stream */
-#if 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]);
- }
- result = TRUE;
- }
-#endif /* USE_EMX_MOUSE */
- break;
-
-#if USE_GPM_SUPPORT
- case M_GPM:
- {
- /* query server for event, return TRUE if we find one */
- Gpm_Event ev;
-
- if (my_Gpm_GetEvent(&ev) == 1) {
- /* there's only one mouse... */
- eventp->id = NORMAL_EVENT;
-
- 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 */
- SP->_mouse_eventp = eventp = NEXT(eventp);
- result = TRUE;
- }
- }
- break;
-#endif
-
-#if USE_SYSMOUSE
- case M_SYSMOUSE:
- if (SP->_sysmouse_head < SP->_sysmouse_tail) {
- *eventp = SP->_sysmouse_fifo[SP->_sysmouse_head];
-
- /*
- * Point the fifo-head to the next possible location. If there
- * are none, reset the indices. This may be interrupted by the
- * signal handler, doing essentially the same reset.
- */
- SP->_sysmouse_head += 1;
- if (SP->_sysmouse_head == SP->_sysmouse_tail) {
- SP->_sysmouse_tail = 0;
- SP->_sysmouse_head = 0;
- }
-
- /* bump the next-free pointer into the circular list */
- SP->_mouse_eventp = eventp = NEXT(eventp);
- result = TRUE;
- }
- break;
-#endif /* USE_SYSMOUSE */
-
- case M_NONE:
- break;
- }
-
- return result; /* true if we found an event */
-}
-
-static bool
-_nc_mouse_inline(SCREEN *sp)
-/* mouse report received in the keyboard stream -- parse its info */
-{
- int b;
- bool result = FALSE;
- MEVENT *eventp = SP->_mouse_eventp;
-
- TR(MY_TRACE, ("_nc_mouse_inline() called"));
-
- if (SP->_mouse_type == M_XTERM) {
- unsigned char kbuf[4];
- mmask_t prev;
- size_t grabbed;
- int res;
-
- /* This code requires that your xterm entry contain the kmous
- * capability and that it be set to the \E[M documented in the
- * Xterm Control Sequences reference. This is how we
- * arrange for mouse events to be reported via a KEY_MOUSE
- * return value from wgetch(). After this value is received,
- * _nc_mouse_inline() gets called and is immediately
- * responsible for parsing the mouse status information
- * following the prefix.
- *
- * The following quotes from the ctrlseqs.ms document in the
- * X distribution, describing the X mouse tracking feature:
- *
- * Parameters for all mouse tracking escape sequences
- * generated by xterm encode numeric parameters in a single
- * character as value+040. For example, ! is 1.
- *
- * On button press or release, xterm sends ESC [ M CbCxCy.
- * The low two bits of Cb encode button information: 0=MB1
- * pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release. The
- * upper bits encode what modifiers were down when the
- * button was pressed and are added together. 4=Shift,
- * 8=Meta, 16=Control. Cx and Cy are the x and y coordinates
- * of the mouse event. The upper left corner is (1,1).
- *
- * (End quote) By the time we get here, we've eaten the
- * key prefix. FYI, the loop below is necessary because
- * mouse click info isn't guaranteed to present as a
- * single clist item.
- *
- * Wheel mice may return buttons 4 and 5 when the wheel is turned.
- * We encode those as button presses.
- */
- for (grabbed = 0; grabbed < 3; grabbed += res) {
-
- /* For VIO mouse we add extra bit 64 to disambiguate button-up. */
-#if 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));
-
- /* there's only one mouse... */
- eventp->id = NORMAL_EVENT;
-
- /* processing code goes here */
- eventp->bstate = 0;
- prev = PREV(eventp)->bstate;
-
-#if USE_EMX_MOUSE
-#define PRESS_POSITION(n) \
- eventp->bstate = MASK_PRESS(n); \
- if (kbuf[0] & 0x40) \
- eventp->bstate = MASK_RELEASE(n)
-#else
-#define PRESS_POSITION(n) \
- eventp->bstate = (prev & MASK_PRESS(n) \
- ? REPORT_MOUSE_POSITION \
- : MASK_PRESS(n))
-#endif
-
- switch (kbuf[0] & 0x3) {
- case 0x0:
- if (kbuf[0] & 64)
- eventp->bstate = MASK_PRESS(4);
- else
- PRESS_POSITION(1);
- break;
-
- case 0x1:
-#if NCURSES_MOUSE_VERSION == 2
- if (kbuf[0] & 64)
- eventp->bstate = MASK_PRESS(5);
- else
-#endif
- PRESS_POSITION(2);
- break;
-
- case 0x2:
- PRESS_POSITION(3);
- break;
-
- case 0x3:
- /*
- * Release events aren't reported for individual buttons, just for
- * the button set as a whole. However, because there are normally
- * no mouse events under xterm that intervene between press and
- * release, we can infer the button actually released by looking at
- * the previous event.
- */
- if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) {
- eventp->bstate = BUTTON_RELEASED;
- for (b = 1; b <= MAX_BUTTONS; ++b) {
- if (!(prev & MASK_PRESS(b)))
- eventp->bstate &= ~MASK_RELEASE(b);
- }
- } else {
- /*
- * XFree86 xterm will return a stream of release-events to
- * let the application know where the mouse is going, if the
- * private mode 1002 or 1003 is enabled.
- */
- eventp->bstate = REPORT_MOUSE_POSITION;
- }
- break;
- }
- result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE;
-
- 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 - SP->_mouse_events)));
-
- /* bump the next-free pointer into the circular list */
- SP->_mouse_eventp = NEXT(eventp);
-#if 0 /* this return would be needed for QNX's mods to lib_getch.c */
- return (TRUE);
-#endif
- }
-
- return (result);
-}
-
-static void
-mouse_activate(bool on)
-{
- if (!on && !SP->_mouse_initialized)
- return;
-
- if (!_nc_mouse_init())
- return;
-
- if (on) {
-
- switch (SP->_mouse_type) {
- case M_XTERM:
-#if NCURSES_EXT_FUNCS
- keyok(KEY_MOUSE, on);
-#endif
- TPUTS_TRACE("xterm mouse initialization");
- enable_xterm_mouse(1);
- break;
-#if USE_GPM_SUPPORT
- case M_GPM:
- if (enable_gpm_mouse(1)) {
- SP->_mouse_fd = *(my_gpm_fd);
- T(("GPM mouse_fd %d", SP->_mouse_fd));
- }
- break;
-#endif
-#if USE_SYSMOUSE
- case M_SYSMOUSE:
- signal(SIGUSR2, handle_sysmouse);
- SP->_mouse_active = TRUE;
- break;
-#endif
- case M_NONE:
- return;
- }
- /* 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 (SP->_mouse_type) {
- case M_XTERM:
- TPUTS_TRACE("xterm mouse deinitialization");
- enable_xterm_mouse(0);
- break;
-#if USE_GPM_SUPPORT
- case M_GPM:
- enable_gpm_mouse(0);
- break;
-#endif
-#if USE_SYSMOUSE
- case M_SYSMOUSE:
- signal(SIGUSR2, SIG_IGN);
- SP->_mouse_active = FALSE;
- break;
-#endif
- case M_NONE:
- return;
- }
- }
- _nc_flush();
-}
-
-/**************************************************************************
- *
- * Device-independent code
- *
- **************************************************************************/
-
-static bool
-_nc_mouse_parse(int runcount)
-/* parse a run of atomic mouse events into a gesture */
-{
- MEVENT *eventp = SP->_mouse_eventp;
- MEVENT *ep, *runp, *next, *prev = PREV(eventp);
- int n;
- int b;
- 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 collapse 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 - SP->_mouse_events)));
- return (prev->id >= NORMAL_EVENT)
- ? ((prev->bstate & SP->_mouse_mask) ? TRUE : FALSE)
- : FALSE;
- }
-
- /* find the start of the run */
- runp = eventp;
- for (n = runcount; n > 0; n--) {
- runp = PREV(runp);
- }
-
-#ifdef TRACE
- if (USE_TRACEF(TRACE_IEVENT)) {
- _trace_slot("before mouse press/release merge:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - SP->_mouse_events),
- (long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
-
- /* first pass; merge press/release pairs */
- do {
- merge = FALSE;
- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
-
-#define MASK_CHANGED(x) (!(ep->bstate & MASK_PRESS(x)) \
- == !(next->bstate & MASK_RELEASE(x)))
-
- if (ep->x == next->x && ep->y == next->y
- && (ep->bstate & BUTTON_PRESSED)
- && MASK_CHANGED(1)
- && MASK_CHANGED(2)
- && MASK_CHANGED(3)
- && MASK_CHANGED(4)
-#if NCURSES_MOUSE_VERSION == 2
- && MASK_CHANGED(5)
-#endif
- ) {
- for (b = 1; b <= MAX_BUTTONS; ++b) {
- if ((SP->_mouse_mask & MASK_CLICK(b))
- && (ep->bstate & MASK_PRESS(b))) {
- ep->bstate &= ~MASK_PRESS(b);
- ep->bstate |= MASK_CLICK(b);
- merge = TRUE;
- }
- }
- if (merge)
- next->id = INVALID_EVENT;
- }
- }
- } while
- (merge);
-
-#ifdef TRACE
- if (USE_TRACEF(TRACE_IEVENT)) {
- _trace_slot("before mouse click merge:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - SP->_mouse_events),
- (long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
-
- /*
- * Second pass; merge click runs. At this point, click events are
- * each followed by one invalid event. We merge click events
- * forward in the queue.
- *
- * 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 & BUTTON_CLICKED)
- && (follower->bstate & BUTTON_CLICKED)) {
- for (b = 1; b <= MAX_BUTTONS; ++b) {
- if ((SP->_mouse_mask & MASK_DOUBLE_CLICK(b))
- && (follower->bstate & MASK_CLICK(b))) {
- follower->bstate &= ~MASK_CLICK(b);
- follower->bstate |= MASK_DOUBLE_CLICK(b);
- merge = TRUE;
- }
- }
- if (merge)
- ep->id = INVALID_EVENT;
- }
-
- /* merge double-click events forward */
- if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON_CLICKED)) {
- for (b = 1; b <= MAX_BUTTONS; ++b) {
- if ((SP->_mouse_mask & MASK_TRIPLE_CLICK(b))
- && (follower->bstate & MASK_CLICK(b))) {
- follower->bstate &= ~MASK_CLICK(b);
- follower->bstate |= MASK_TRIPLE_CLICK(b);
- merge = TRUE;
- }
- }
- if (merge)
- ep->id = INVALID_EVENT;
- }
- }
- } while
- (merge);
-
-#ifdef TRACE
- if (USE_TRACEF(TRACE_IEVENT)) {
- _trace_slot("before mouse event queue compaction:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - SP->_mouse_events),
- (long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- _nc_unlock_global(tracef);
- }
-#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 & SP->_mouse_mask)) {
- SP->_mouse_eventp = eventp = prev;
- }
-#ifdef TRACE
- if (USE_TRACEF(TRACE_IEVENT)) {
- _trace_slot("after mouse event queue compaction:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - SP->_mouse_events),
- (long) ((eventp - SP->_mouse_events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- _nc_unlock_global(tracef);
- }
- 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 - SP->_mouse_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 (SP->_mouse_type) {
- case M_XTERM:
- if (SP->_mouse_mask)
- mouse_activate(FALSE);
- break;
-#if USE_GPM_SUPPORT
- /* GPM: pass all mouse events to next client */
- case M_GPM:
- if (SP->_mouse_mask)
- mouse_activate(FALSE);
- break;
-#endif
-#if USE_SYSMOUSE
- case M_SYSMOUSE:
- mouse_activate(FALSE);
- break;
-#endif
- case M_NONE:
- break;
- }
-}
-
-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"));
-
- switch (SP->_mouse_type) {
- case M_XTERM:
- /* xterm: re-enable reporting */
- if (SP->_mouse_mask)
- mouse_activate(TRUE);
- break;
-
-#if USE_GPM_SUPPORT
- case M_GPM:
- /* GPM: reclaim our event set */
- if (SP->_mouse_mask)
- mouse_activate(TRUE);
- break;
-#endif
-
-#if USE_SYSMOUSE
- case M_SYSMOUSE:
- mouse_activate(TRUE);
- break;
-#endif
- case M_NONE:
- break;
- }
-}
-
-/**************************************************************************
- *
- * 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 != 0) && (SP != 0) && (SP->_mouse_type != M_NONE)) {
- MEVENT *eventp = SP->_mouse_eventp;
- /* 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 - SP->_mouse_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() */
-{
- int result = ERR;
-
- T((T_CALLED("ungetmouse(%p)"), aevent));
-
- if (aevent != 0 && SP != 0) {
- MEVENT *eventp = SP->_mouse_eventp;
-
- /* stick the given event in the next-free slot */
- *eventp = *aevent;
-
- /* bump the next-free pointer into the circular list */
- SP->_mouse_eventp = NEXT(eventp);
-
- /* push back the notification event on the keyboard queue */
- result = ungetch(KEY_MOUSE);
- }
- returnCode(result);
-}
-
-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)"), (unsigned long) newmask, oldmask));
-
- if (SP != 0) {
- if (oldmask)
- *oldmask = SP->_mouse_mask;
-
- if (newmask || SP->_mouse_initialized) {
- _nc_mouse_init();
- if (SP->_mouse_type != M_NONE) {
- result = newmask &
- (REPORT_MOUSE_POSITION
- | BUTTON_ALT
- | BUTTON_CTRL
- | BUTTON_SHIFT
- | BUTTON_PRESSED
- | BUTTON_RELEASED
- | BUTTON_CLICKED
- | BUTTON_DOUBLE_CLICKED
- | BUTTON_TRIPLE_CLICKED);
-
- mouse_activate((bool) (result != 0));
-
- SP->_mouse_mask = result;
- }
- }
- } else {
- if (oldmask)
- *oldmask = SP->_mouse_mask;
- }
- 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 (SP->_mouse_type == 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);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_move.c b/contrib/ncurses/ncurses/base/lib_move.c
deleted file mode 100644
index 652c44d7b718..000000000000
--- a/contrib/ncurses/ncurses/base/lib_move.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_move.c
-**
-** The routine wmove().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_move.c,v 1.12 2004/12/04 21:50:07 tom Exp $")
-
-NCURSES_EXPORT(int)
-wmove(WINDOW *win, int y, int x)
-{
- T((T_CALLED("wmove(%p,%d,%d)"), win, y, x));
-
- if (LEGALYX(win, y, x)) {
- 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/contrib/ncurses/ncurses/base/lib_mvwin.c b/contrib/ncurses/ncurses/base/lib_mvwin.c
deleted file mode 100644
index e4dad4a746f0..000000000000
--- a/contrib/ncurses/ncurses/base/lib_mvwin.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_mvwin.c,v 1.14 2006/02/25 22:53:46 tom Exp $")
-
-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);
-
- /*
- * mvwin() should only modify the indices. See test/demo_menus.c and
- * test/movewindow.c for examples.
- */
-#if 0
- /* 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);
- }
-#endif
-
- 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/contrib/ncurses/ncurses/base/lib_newterm.c b/contrib/ncurses/ncurses/base/lib_newterm.c
deleted file mode 100644
index 3620a3fdbf2b..000000000000
--- a/contrib/ncurses/ncurses/base/lib_newterm.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** 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: lib_newterm.c,v 1.69 2008/04/12 18:15:04 tom Exp $")
-
-#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 NCURSES_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);
-#elif HAVE_SGTTY_H
- buf.sg_flags &= ~(ECHO | CRMOD);
-#else
- memset(&buf, 0, sizeof(buf));
-#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.
- */
-NCURSES_EXPORT(void)
-filter(void)
-{
- START_TRACE();
- T((T_CALLED("filter")));
- _nc_prescreen.filter_mode = TRUE;
- returnVoid;
-}
-
-#if NCURSES_EXT_FUNCS
-/*
- * An extension, allowing the application to open a new screen without
- * requiring it to also be filtered.
- */
-NCURSES_EXPORT(void)
-nofilter(void)
-{
- START_TRACE();
- T((T_CALLED("nofilter")));
- _nc_prescreen.filter_mode = FALSE;
- returnVoid;
-}
-#endif
-
-NCURSES_EXPORT(SCREEN *)
-newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
-{
- int value;
- int errret;
- SCREEN *current;
- SCREEN *result = 0;
-
- START_TRACE();
- T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp));
-
- _nc_lock_global(set_SP);
- /* this loads the capability entry, then sets LINES and COLS */
- if (setupterm(name, fileno(ofp), &errret) != ERR) {
- int slk_format = _nc_globals.slk_format;
-
- /*
- * This actually allocates the screen structure, and saves the original
- * terminal settings.
- */
- current = SP;
- _nc_set_screen(0);
-
- /* allow user to set maximum escape delay from the environment */
- if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
- set_escdelay(value);
- }
-
- if (_nc_setupscreen(LINES,
- COLS,
- ofp,
- _nc_prescreen.filter_mode,
- slk_format) == ERR) {
- _nc_set_screen(current);
- result = 0;
- } else {
- /* 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);
-
- result = SP;
- }
- }
- _nc_unlock_global(set_SP);
- returnSP(result);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_newwin.c b/contrib/ncurses/ncurses/base/lib_newwin.c
deleted file mode 100644
index 7f7aa3e04f1e..000000000000
--- a/contrib/ncurses/ncurses/base/lib_newwin.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_newwin.c
-**
-** The routines newwin(), subwin() and their dependent
-**
-*/
-
-#include <curses.priv.h>
-#include <stddef.h>
-
-MODULE_ID("$Id: lib_newwin.c,v 1.50 2008/05/03 16:36:39 tom Exp $")
-
-#define window_is(name) ((sp)->_##name == win)
-
-#if USE_REENTRANT
-#define remove_window(name) \
- sp->_##name = 0
-#else
-#define remove_window(name) \
- sp->_##name = 0; \
- if (win == name) \
- name = 0
-#endif
-
-static void
-remove_window_from_screen(WINDOW *win)
-{
- SCREEN *sp;
-
- for (each_screen(sp)) {
- if (window_is(curscr)) {
- remove_window(curscr);
- break;
- } else if (window_is(stdscr)) {
- remove_window(stdscr);
- break;
- } else if (window_is(newscr)) {
- remove_window(newscr);
- break;
- }
- }
-}
-
-NCURSES_EXPORT(int)
-_nc_freewin(WINDOW *win)
-{
- WINDOWLIST *p, *q;
- int i;
- int result = ERR;
-
- T((T_CALLED("_nc_freewin(%p)"), win));
-
- if (win != 0) {
- if (_nc_try_global(windowlist) == 0) {
- q = 0;
- for (each_window(p)) {
- 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;
- }
- q = p;
- }
- _nc_unlock_global(windowlist);
- }
- }
- returnCode(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 ((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;
- WINDOW_ATTRS(win) = WINDOW_ATTRS(orig);
- 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 = %ld, begx = %ld", (long) w->_begy, (long) 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((T_CALLED("_nc_makenew(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
-
- if (SP == 0)
- returnWin(0);
-
- if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
- returnWin(0);
-
- if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
- returnWin(0);
-
- _nc_mutex_init(&(wp->mutex_use_window));
-
- win = &(wp->win);
-
- if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
- free(win);
- returnWin(0);
- }
-
- _nc_lock_global(windowlist);
-
- 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;
- WINDOW_ATTRS(win) = 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));
-
- _nc_unlock_global(windowlist);
- returnWin(win);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_nl.c b/contrib/ncurses/ncurses/base/lib_nl.c
deleted file mode 100644
index 32515da0be81..000000000000
--- a/contrib/ncurses/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: lib_nl.c,v 1.8 2000/12/10 02:43:27 tom Exp $")
-
-#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/contrib/ncurses/ncurses/base/lib_overlay.c b/contrib/ncurses/ncurses/base/lib_overlay.c
deleted file mode 100644
index 26314de5e5fb..000000000000
--- a/contrib/ncurses/ncurses/base/lib_overlay.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_overlay.c,v 1.25 2008/04/12 17:21:59 tom Exp $")
-
-static int
-overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
-{
- int rc = ERR;
- 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)"), src, dst, flag));
-
- if (src != 0 && dst != 0) {
- _nc_lock_window(src);
- _nc_lock_window(dst);
-
- T(("src : begy %ld, begx %ld, maxy %ld, maxx %ld",
- (long) src->_begy,
- (long) src->_begx,
- (long) src->_maxy,
- (long) src->_maxx));
- T(("dst : begy %ld, begx %ld, maxy %ld, maxx %ld",
- (long) dst->_begy,
- (long) dst->_begx,
- (long) dst->_maxy,
- (long) dst->_maxx));
-
- sx1 = src->_begx;
- sy1 = src->_begy;
- sx2 = sx1 + src->_maxx;
- sy2 = sy1 + src->_maxy;
-
- dx1 = dst->_begx;
- dy1 = dst->_begy;
- dx2 = dx1 + dst->_maxx;
- dy2 = dy1 + dst->_maxy;
-
- if (dx2 >= sx1 && dx1 <= sx2 && dy2 >= sy1 && dy1 <= sy2) {
- 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;
-
- rc = copywin(src, dst,
- sminrow, smincol,
- dminrow, dmincol,
- dmaxrow, dmaxcol,
- flag);
- }
- _nc_unlock_window(dst);
- _nc_unlock_window(src);
- }
- returnCode(rc);
-}
-
-/*
-**
-** 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 rc = ERR;
- int sx, sy, dx, dy;
- bool touched;
- attr_t bk;
- attr_t mask;
-
- 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) {
-
- _nc_lock_window(src);
- _nc_lock_window(dst);
-
- bk = AttrOf(dst->_nc_bkgd);
- mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0);
-
- /* make sure rectangle exists in source */
- if ((sminrow + dmaxrow - dminrow) <= (src->_maxy + 1) &&
- (smincol + dmaxcol - dmincol) <= (src->_maxx + 1)) {
-
- T(("rectangle exists in source"));
-
- /* make sure rectangle fits in destination */
- if (dmaxrow <= dst->_maxy && dmaxcol <= dst->_maxx) {
-
- 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"));
- rc = OK;
- }
- }
- _nc_unlock_window(dst);
- _nc_unlock_window(src);
- }
- returnCode(rc);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_pad.c b/contrib/ncurses/ncurses/base/lib_pad.c
deleted file mode 100644
index 6cad9c54b064..000000000000
--- a/contrib/ncurses/ncurses/base/lib_pad.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_pad.c,v 1.41 2006/10/14 20:47:13 tom Exp $")
-
-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 %ld, win->_maxy %ld",
- (long) pmaxrow, (long) win->_maxy));
- T((" pmincol + smaxcol - smincol %ld, win->_maxx %ld",
- (long) pmaxcol, (long) 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
- && isWidecExt(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/contrib/ncurses/ncurses/base/lib_printw.c b/contrib/ncurses/ncurses/base/lib_printw.c
deleted file mode 100644
index 62ae921e650d..000000000000
--- a/contrib/ncurses/ncurses/base/lib_printw.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: lib_printw.c,v 1.18 2006/12/17 19:21:39 tom Exp $")
-
-NCURSES_EXPORT(int)
-printw(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, 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, 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, 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, const char *fmt, va_list argp)
-{
- char *buf;
- int code = ERR;
-
- T((T_CALLED("vwprintw(%p,%s,va_list)"), win, _nc_visbuf(fmt)));
-
- if ((buf = _nc_printf_string(fmt, argp)) != 0) {
- code = waddstr(win, buf);
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_redrawln.c b/contrib/ncurses/ncurses/base/lib_redrawln.c
deleted file mode 100644
index 6b0905f07d67..000000000000
--- a/contrib/ncurses/ncurses/base/lib_redrawln.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: lib_redrawln.c,v 1.12 2007/10/13 20:08:56 tom Exp $")
-
-NCURSES_EXPORT(int)
-wredrawln(WINDOW *win, int beg, int num)
-{
- int i;
- int end;
- size_t len;
-
- T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
-
- if (win == 0)
- returnCode(ERR);
-
- if (beg < 0)
- beg = 0;
-
- if (touchline(win, beg, num) == ERR)
- returnCode(ERR);
-
- if (touchline(curscr, beg + win->_begy, 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;
-
- len = (win->_maxx + 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++) {
- int crow = i + win->_begy;
-
- memset(curscr->_line[crow].text + win->_begx, 0, len);
- _nc_make_oldhash(crow);
- }
-
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_refresh.c b/contrib/ncurses/ncurses/base/lib_refresh.c
deleted file mode 100644
index 2a9cafb7b0ad..000000000000
--- a/contrib/ncurses/ncurses/base/lib_refresh.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * lib_refresh.c
- *
- * The routines wrefresh() and wnoutrefresh().
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_refresh.c,v 1.41 2007/09/29 20:39:34 tom Exp $")
-
-NCURSES_EXPORT(int)
-wrefresh(WINDOW *win)
-{
- int code;
-
- T((T_CALLED("wrefresh(%p)"), win));
-
- if (win == 0) {
- code = ERR;
- } else 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 src_row, src_col;
- NCURSES_SIZE_T begx;
- NCURSES_SIZE_T begy;
- NCURSES_SIZE_T dst_row, dst_col;
-#if USE_SCROLL_HINTS
- bool wide;
-#endif
-
- T((T_CALLED("wnoutrefresh(%p)"), win));
-#ifdef TRACE
- if (USE_TRACEF(TRACE_UPDATE)) {
- _tracedump("...win", win);
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
-
- /*
- * This function will break badly if we try to refresh a pad.
- */
- 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;
- WINDOW_ATTRS(newscr) = WINDOW_ATTRS(win);
-
- /* 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(dst_col) */
- limit_x = win->_maxx;
- /* limit(src_col) */
- if (limit_x > newscr->_maxx - begx)
- limit_x = newscr->_maxx - begx;
-
- for (src_row = 0, dst_row = begy + win->_yoffset;
- src_row <= win->_maxy && dst_row <= newscr->_maxy;
- src_row++, dst_row++) {
- register struct ldat *nline = &newscr->_line[dst_row];
- register struct ldat *oline = &win->_line[src_row];
-
- if (oline->firstchar != _NOCHANGE) {
- int last_src = oline->lastchar;
-
- if (last_src > limit_x)
- last_src = limit_x;
-
- src_col = oline->firstchar;
- dst_col = src_col + begx;
-
- if_WIDEC({
- register int j;
-
- /*
- * Ensure that we will copy complete multi-column characters
- * on the left-boundary.
- */
- if (isWidecExt(oline->text[src_col])) {
- j = 1 + dst_col - WidecExt(oline->text[src_col]);
- if (j < 0)
- j = 0;
- if (dst_col > j) {
- src_col -= (dst_col - j);
- dst_col = j;
- }
- }
-
- /*
- * Ensure that we will copy complete multi-column characters
- * on the right-boundary.
- */
- j = last_src;
- if (WidecExt(oline->text[j])) {
- ++j;
- while (j <= limit_x) {
- if (isWidecBase(oline->text[j])) {
- break;
- } else {
- last_src = j;
- }
- ++j;
- }
- }
- });
-
- if_WIDEC({
- static cchar_t blank = BLANK;
- int last_dst = begx + ((last_src < win->_maxx)
- ? last_src
- : win->_maxx);
- int fix_left = dst_col;
- int fix_right = last_dst;
- register int j;
-
- /*
- * Check for boundary cases where we may overwrite part of a
- * multi-column character. For those, wipe the remainder of
- * the character to blanks.
- */
- j = dst_col;
- if (isWidecExt(nline->text[j])) {
- /*
- * On the left, we only care about multi-column characters
- * that extend into the changed region.
- */
- fix_left = 1 + j - WidecExt(nline->text[j]);
- if (fix_left < 0)
- fix_left = 0; /* only if cell is corrupt */
- }
-
- j = last_dst;
- if (WidecExt(nline->text[j]) != 0) {
- /*
- * On the right, any multi-column character is a problem,
- * unless it happens to be contained in the change, and
- * ending at the right boundary of the change. The
- * computation for 'fix_left' accounts for the left-side of
- * this character. Find the end of the character.
- */
- ++j;
- while (j <= newscr->_maxx && isWidecExt(nline->text[j])) {
- fix_right = j++;
- }
- }
-
- /*
- * The analysis is simpler if we do the clearing afterwards.
- * Do that now.
- */
- if (fix_left < dst_col || fix_right > last_dst) {
- for (j = fix_left; j <= fix_right; ++j) {
- nline->text[j] = blank;
- CHANGED_CELL(nline, j);
- }
- }
- });
-
- /*
- * Copy the changed text.
- */
- for (; src_col <= last_src; src_col++, dst_col++) {
- if (!CharEq(oline->text[src_col], nline->text[dst_col])) {
- nline->text[dst_col] = oline->text[src_col];
- CHANGED_CELL(nline, dst_col);
- }
- }
-
- }
-#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 = src_row);
- }
-
- 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 (USE_TRACEF(TRACE_UPDATE)) {
- _tracedump("newscr", newscr);
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_restart.c b/contrib/ncurses/ncurses/base/lib_restart.c
deleted file mode 100644
index 9742ff629fbd..000000000000
--- a/contrib/ncurses/ncurses/base/lib_restart.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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: lib_restart.c,v 1.9 2008/05/03 22:43:52 tom Exp $")
-
-NCURSES_EXPORT(int)
-restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
-{
- int result;
-
- T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
-
- if (setupterm(termp, filenum, errret) != OK) {
- result = ERR;
- } else if (SP != 0) {
- int saveecho = SP->_echo;
- int savecbreak = SP->_cbreak;
- int saveraw = SP->_raw;
- int savenl = SP->_nl;
-
- 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(SP);
-#endif
-
- result = OK;
- } else {
- result = ERR;
- }
- returnCode(result);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_scanw.c b/contrib/ncurses/ncurses/base/lib_scanw.c
deleted file mode 100644
index b8a5a227a1a9..000000000000
--- a/contrib/ncurses/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: lib_scanw.c,v 1.11 2001/06/30 23:39:41 tom Exp $")
-
-NCURSES_EXPORT(int)
-vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
-{
- char buf[BUFSIZ];
-
- if (wgetnstr(win, buf, sizeof(buf) - 1) == ERR)
- 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/contrib/ncurses/ncurses/base/lib_screen.c b/contrib/ncurses/ncurses/base/lib_screen.c
deleted file mode 100644
index e6aecbdaab47..000000000000
--- a/contrib/ncurses/ncurses/base/lib_screen.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_screen.c,v 1.30 2007/03/10 23:20:41 tom Exp $")
-
-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);
-
- WINDOW_ATTRS(nwin) = WINDOW_ATTRS(&tmp);
- 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 = getwin(fp);
-#if !USE_REENTRANT
- newscr = SP->_newscr;
-#endif
- (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 = getwin(fp);
-#if !USE_REENTRANT
- curscr = SP->_curscr;
-#endif
- (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 = dupwin(curscr);
-#if !USE_REENTRANT
- newscr = SP->_newscr;
-#endif
- returnCode(OK);
- }
-}
diff --git a/contrib/ncurses/ncurses/base/lib_scroll.c b/contrib/ncurses/ncurses/base/lib_scroll.c
deleted file mode 100644
index ac85bd55ea1d..000000000000
--- a/contrib/ncurses/ncurses/base/lib_scroll.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-2003 *
- * 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: lib_scroll.c,v 1.26 2006/10/14 20:46:08 tom Exp $")
-
-NCURSES_EXPORT(void)
-_nc_scroll_window(WINDOW *win,
- int const n,
- NCURSES_SIZE_T const top,
- NCURSES_SIZE_T const bottom,
- NCURSES_CH_T blank)
-{
- 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, %ld, %ld)",
- win, n, (long) top, (long) 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;
- for (line = bottom; line >= limit && line >= 0; line--) {
- 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);
- }
- for (line = top; line < limit && line <= win->_maxy; 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;
- for (line = top; line <= limit && line <= win->_maxy; 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 > limit && line >= 0; 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);
-
- if_WIDEC({
- if (WINDOW_EXT(win, addch_used) != 0) {
- int next = WINDOW_EXT(win, addch_y) + n;
- if (next < 0 || next > win->_maxy) {
- TR(TRACE_VIRTPUT,
- ("Alert discarded multibyte on scroll"));
- WINDOW_EXT(win, addch_y) = 0;
- } else {
- TR(TRACE_VIRTPUT, ("scrolled working position to %d,%d",
- WINDOW_EXT(win, addch_y),
- WINDOW_EXT(win, addch_x)));
- WINDOW_EXT(win, addch_y) = next;
- }
- }
- })
-}
-
-NCURSES_EXPORT(int)
-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) {
- _nc_scroll_window(win, n, win->_regtop, win->_regbottom, win->_nc_bkgd);
- _nc_synchook(win);
- }
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_scrollok.c b/contrib/ncurses/ncurses/base/lib_scrollok.c
deleted file mode 100644
index f6b30259be73..000000000000
--- a/contrib/ncurses/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: lib_scrollok.c,v 1.4 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_scrreg.c b/contrib/ncurses/ncurses/base/lib_scrreg.c
deleted file mode 100644
index c85d60f1164d..000000000000
--- a/contrib/ncurses/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: lib_scrreg.c,v 1.10 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_set_term.c b/contrib/ncurses/ncurses/base/lib_set_term.c
deleted file mode 100644
index eee1cfc7b259..000000000000
--- a/contrib/ncurses/ncurses/base/lib_set_term.c
+++ /dev/null
@@ -1,655 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_set_term.c
-**
-** The routine set_term().
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h> /* cur_term */
-#include <tic.h>
-
-MODULE_ID("$Id: lib_set_term.c,v 1.108 2008/05/03 22:42:43 tom Exp $")
-
-NCURSES_EXPORT(SCREEN *)
-set_term(SCREEN *screenp)
-{
- SCREEN *oldSP;
-
- T((T_CALLED("set_term(%p)"), screenp));
-
- _nc_lock_global(set_SP);
-
- oldSP = SP;
- _nc_set_screen(screenp);
-
- if (SP != 0) {
- set_curterm(SP->_term);
-#if !USE_REENTRANT
- curscr = SP->_curscr;
- newscr = SP->_newscr;
- stdscr = SP->_stdscr;
- COLORS = SP->_color_count;
- COLOR_PAIRS = SP->_pair_count;
-#endif
- } else {
- set_curterm(0);
-#if !USE_REENTRANT
- curscr = 0;
- newscr = 0;
- stdscr = 0;
- COLORS = 0;
- COLOR_PAIRS = 0;
-#endif
- }
-
- _nc_unlock_global(set_SP);
-
- T((T_RETURN("%p"), oldSP));
- return (oldSP);
-}
-
-static void
-_nc_free_keytry(TRIES * kt)
-{
- if (kt != 0) {
- _nc_free_keytry(kt->child);
- _nc_free_keytry(kt->sibling);
- free(kt);
- }
-}
-
-static bool
-delink_screen(SCREEN *sp)
-{
- SCREEN *last = 0;
- SCREEN *temp;
- bool result = FALSE;
-
- for (each_screen(temp)) {
- if (temp == sp) {
- if (last)
- last = sp->_next_screen;
- else
- _nc_screen_chain = sp->_next_screen;
- result = TRUE;
- break;
- }
- last = temp;
- }
- return result;
-}
-
-/*
- * Free the storage associated with the given SCREEN sp.
- */
-NCURSES_EXPORT(void)
-delscreen(SCREEN *sp)
-{
- int i;
-
- T((T_CALLED("delscreen(%p)"), sp));
-
- _nc_lock_global(set_SP);
- if (delink_screen(sp)) {
-
- (void) _nc_freewin(sp->_curscr);
- (void) _nc_freewin(sp->_newscr);
- (void) _nc_freewin(sp->_stdscr);
-
- if (sp->_slk != 0) {
- if (sp->_slk->ent != 0) {
- for (i = 0; i < sp->_slk->labcnt; ++i) {
- FreeIfNeeded(sp->_slk->ent[i].ent_text);
- FreeIfNeeded(sp->_slk->ent[i].form_text);
- }
- free(sp->_slk->ent);
- }
- 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->_current_attr);
-
- FreeIfNeeded(sp->_color_table);
- FreeIfNeeded(sp->_color_pairs);
-
- FreeIfNeeded(sp->oldhash);
- FreeIfNeeded(sp->newhash);
- FreeIfNeeded(sp->hashtab);
-
- FreeIfNeeded(sp->_acs_map);
- FreeIfNeeded(sp->_screen_acs_map);
-
- 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) {
-#if !USE_REENTRANT
- curscr = 0;
- newscr = 0;
- stdscr = 0;
- COLORS = 0;
- COLOR_PAIRS = 0;
-#endif
- _nc_set_screen(0);
- }
- }
- _nc_unlock_global(set_SP);
-
- returnVoid;
-}
-
-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
-
-/* OS-independent screen initializations */
-NCURSES_EXPORT(int)
-_nc_setupscreen(int slines GCC_UNUSED,
- int scolumns GCC_UNUSED,
- FILE *output,
- bool filtered,
- int slk_format)
-{
- char *env;
- int bottom_stolen = 0;
- bool support_cookies = USE_XMC_SUPPORT;
- ripoff_t *rop;
-
- T((T_CALLED("_nc_setupscreen(%d, %d, %p, %d, %d)"),
- slines, scolumns, output, filtered, slk_format));
-
- assert(SP == 0); /* has been reset in newterm() ! */
- if (!_nc_alloc_screen()
- || ((SP->_acs_map = typeCalloc(chtype, ACS_LEN)) == 0)
- || ((SP->_screen_acs_map = typeCalloc(bool, ACS_LEN)) == 0)) {
- returnCode(ERR);
- }
-
- T(("created SP %p", SP));
- SP->_next_screen = _nc_screen_chain;
- _nc_screen_chain = SP;
-
- if ((SP->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0)
- returnCode(ERR);
-
- /*
- * We should always check the screensize, just in case.
- */
- _nc_get_screensize(SP, &slines, &scolumns);
- SET_LINES(slines);
- SET_COLS(scolumns);
- T((T_CREATE("screen %s %dx%d"), termname(), LINES, COLS));
-
- SP->_filtered = filtered;
-
- /* implement filter mode */
- if (filtered) {
- slines = 1;
- SET_LINES(slines);
- 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;
- T(("filter screensize %dx%d", LINES, COLS));
- }
-#ifdef __DJGPP__
- T(("setting output mode to binary"));
- fflush(output);
- setmode(output, O_BINARY);
-#endif
- _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.
- */
- SP->_ok_attributes = termattrs();
- if (has_colors()) {
- SP->_ok_attributes |= A_COLOR;
- }
-#if USE_XMC_SUPPORT
- /*
- * If we have no magic-cookie support compiled-in, or if it is suppressed
- * in the environment, reset the support-flag.
- */
- if (magic_cookie_glitch >= 0) {
- if (getenv("NCURSES_NO_MAGIC_COOKIE") != 0) {
- support_cookies = FALSE;
- }
- }
-#endif
-
- if (!support_cookies && magic_cookie_glitch >= 0) {
- T(("will disable attributes to work w/o magic cookies"));
- }
-
- if (magic_cookie_glitch > 0) { /* tvi, wyse */
-
- SP->_xmc_triggers = SP->_ok_attributes & (
- A_STANDOUT |
- A_UNDERLINE |
- A_REVERSE |
- A_BLINK |
- A_DIM |
- A_BOLD |
- A_INVIS |
- A_PROTECT
- );
-#if 0
- /*
- * We "should" treat colors as an attribute. The wyse350 (and its
- * clones) appear to be the only ones that have both colors and magic
- * cookies.
- */
- if (has_colors()) {
- SP->_xmc_triggers |= A_COLOR;
- }
-#endif
- SP->_xmc_suppress = SP->_xmc_triggers & (chtype) ~(A_BOLD);
-
- T(("magic cookie attributes %s", _traceattr(SP->_xmc_suppress)));
- /*
- * Supporting line-drawing may be possible. But make the regular
- * video attributes work first.
- */
- acs_chars = ABSENT_STRING;
- ena_acs = ABSENT_STRING;
- enter_alt_charset_mode = ABSENT_STRING;
- exit_alt_charset_mode = ABSENT_STRING;
-#if USE_XMC_SUPPORT
- /*
- * To keep the cookie support simple, suppress all of the optimization
- * hooks except for clear_screen and the cursor addressing.
- */
- if (support_cookies) {
- clr_eol = ABSENT_STRING;
- clr_eos = ABSENT_STRING;
- set_attributes = ABSENT_STRING;
- }
-#endif
- } else if (magic_cookie_glitch == 0) { /* hpterm */
- }
-
- /*
- * If magic cookies are not supported, cancel the strings that set
- * video attributes.
- */
- if (!support_cookies && magic_cookie_glitch >= 0) {
- magic_cookie_glitch = ABSENT_NUMERIC;
- set_attributes = ABSENT_STRING;
- enter_blink_mode = ABSENT_STRING;
- enter_bold_mode = ABSENT_STRING;
- enter_dim_mode = ABSENT_STRING;
- enter_reverse_mode = ABSENT_STRING;
- enter_standout_mode = ABSENT_STRING;
- enter_underline_mode = ABSENT_STRING;
- }
-
- /* initialize normal acs before wide, since we use mapping in the latter */
-#if !USE_WIDEC_SUPPORT
- if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
- acs_chars = NULL;
- ena_acs = NULL;
- enter_alt_charset_mode = NULL;
- exit_alt_charset_mode = NULL;
- set_attributes = NULL;
- }
-#endif
- _nc_init_acs();
-#if USE_WIDEC_SUPPORT
- _nc_init_wacs();
-
- SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs());
-#endif
- env = _nc_get_locale();
- SP->_legacy_coding = ((env == 0)
- || !strcmp(env, "C")
- || !strcmp(env, "POSIX"));
- T(("legacy-coding %d", SP->_legacy_coding));
-
- _nc_idcok = TRUE;
- _nc_idlok = FALSE;
-
- SP->oldhash = 0;
- SP->newhash = 0;
-
- T(("creating newscr"));
- if ((SP->_newscr = newwin(slines, scolumns, 0, 0)) == 0)
- returnCode(ERR);
-
- T(("creating curscr"));
- if ((SP->_curscr = newwin(slines, scolumns, 0, 0)) == 0)
- returnCode(ERR);
-
-#if !USE_REENTRANT
- newscr = SP->_newscr;
- curscr = SP->_curscr;
-#endif
-#if USE_SIZECHANGE
- SP->_resize = resizeterm;
-#endif
-
- newscr->_clear = TRUE;
- curscr->_clear = FALSE;
-
- def_shell_mode();
- def_prog_mode();
-
- for (rop = ripoff_stack;
- rop != ripoff_sp && (rop - ripoff_stack) < N_RIPS;
- rop++) {
-
- /* 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 (rop->hook == _nc_slk_initialize)
- if (!(num_labels <= 0 || !SLK_STDFMT(slk_format)))
- continue;
- if (rop->hook) {
- int count;
- WINDOW *w;
-
- count = (rop->line < 0) ? -rop->line : rop->line;
- T(("ripping off %i lines at %s", count,
- ((rop->line < 0)
- ? "bottom"
- : "top")));
-
- w = newwin(count, scolumns,
- ((rop->line < 0)
- ? SP->_lines_avail - count
- : 0),
- 0);
- if (w) {
- rop->win = w;
- rop->hook(w, scolumns);
- } else {
- returnCode(ERR);
- }
- if (rop->line < 0)
- bottom_stolen += count;
- else
- SP->_topstolen += count;
- SP->_lines_avail -= count;
- }
- }
- /* reset the stack */
- ripoff_sp = ripoff_stack;
-
- T(("creating stdscr"));
- assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines);
- if ((SP->_stdscr = newwin(SP->_lines_avail, scolumns, 0, 0)) == 0)
- returnCode(ERR);
-
- SET_LINES(SP->_lines_avail);
-#if !USE_REENTRANT
- stdscr = SP->_stdscr;
-#endif
-
- 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 (ripoff_sp == 0)
- ripoff_sp = ripoff_stack;
- if (ripoff_sp >= ripoff_stack + N_RIPS)
- returnCode(ERR);
-
- ripoff_sp->line = line;
- ripoff_sp->hook = init;
- ripoff_sp++;
- }
-
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-ripoffline(int line, int (*init) (WINDOW *, int))
-{
- START_TRACE();
- T((T_CALLED("ripoffline(%d,%p)"), line, init));
-
- if (line == 0)
- returnCode(OK);
-
- returnCode(_nc_ripoffline((line < 0) ? -1 : 1, init));
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slk.c b/contrib/ncurses/ncurses/base/lib_slk.c
deleted file mode 100644
index 27b21b08d718..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slk.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: *
- * Gerhard Fuernkranz 1993 (original) *
- * Zeyd M. Ben-Halim 1992,1995 (sic) *
- * Eric S. Raymond *
- * Juergen Pfeifer 1996-on *
- * Thomas E. Dickey *
- ****************************************************************************/
-
-/*
- * lib_slk.c
- * Soft key routines.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <term.h> /* num_labels, label_*, plab_norm */
-
-MODULE_ID("$Id: lib_slk.c,v 1.31 2008/01/12 20:21:00 tom Exp $")
-
-/*
- * 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].ent_x, "F%d", i + 1);
- }
- }
-}
-
-/*
- * Free any memory related to soft labels, return an error.
- */
-static int
-slk_failed(void)
-{
- if (SP->_slk) {
- FreeIfNeeded(SP->_slk->ent);
- free(SP->_slk);
- SP->_slk = (SLK *) 0;
- }
- return ERR;
-}
-
-/*
- * Initialize soft labels.
- * Called from newterm()
- */
-NCURSES_EXPORT(int)
-_nc_slk_initialize(WINDOW *stwin, int cols)
-{
- int i, x;
- int res = OK;
- unsigned max_length;
-
- T((T_CALLED("_nc_slk_initialize()")));
-
- if (SP->_slk) { /* we did this already, so simply return */
- returnCode(OK);
- } else if ((SP->_slk = typeCalloc(SLK, 1)) == 0)
- returnCode(ERR);
-
- SP->_slk->ent = NULL;
-
- /*
- * If we use colors, vidputs() will suppress video attributes that conflict
- * with colors. In that case, we're still guaranteed that "reverse" would
- * work.
- */
- if ((no_color_video & 1) == 0)
- SetAttr(SP->_slk->attr, A_STANDOUT);
- else
- SetAttr(SP->_slk->attr, A_REVERSE);
-
- SP->_slk->maxlab = ((num_labels > 0)
- ? num_labels
- : MAX_SKEY(_nc_globals.slk_format));
- SP->_slk->maxlen = ((num_labels > 0)
- ? label_width * label_height
- : MAX_SKEY_LEN(_nc_globals.slk_format));
- SP->_slk->labcnt = ((SP->_slk->maxlab < MAX_SKEY(_nc_globals.slk_format))
- ? MAX_SKEY(_nc_globals.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)
- returnCode(slk_failed());
-
- max_length = SP->_slk->maxlen;
- for (i = 0; i < SP->_slk->labcnt; i++) {
- size_t used = max_length + 1;
-
- if ((SP->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used)) == 0)
- returnCode(slk_failed());
- memset(SP->_slk->ent[i].ent_text, 0, used);
-
- if ((SP->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used)) == 0)
- returnCode(slk_failed());
- memset(SP->_slk->ent[i].form_text, 0, used);
-
- memset(SP->_slk->ent[i].form_text, ' ', max_length);
- SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
- }
- if (_nc_globals.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].ent_x = x;
- x += max_length;
- x += (i == 3 || i == 7) ? gap : 1;
- }
- slk_paint_info(stwin);
- } else {
- if (_nc_globals.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].ent_x = x;
- x += max_length;
- x += (i == 3) ? gap : 1;
- }
- } else {
- if (_nc_globals.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].ent_x = x;
- x += max_length;
- x += (i == 2 || i == 4) ? gap : 1;
- }
- } else
- returnCode(slk_failed());
- }
- }
- SP->_slk->dirty = TRUE;
- if ((SP->_slk->win = stwin) == NULL) {
- returnCode(slk_failed());
- }
-
- /* 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_globals.slk_format;
- _nc_globals.slk_format = 0;
- returnCode(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/contrib/ncurses/ncurses/base/lib_slkatr_set.c b/contrib/ncurses/ncurses/base/lib_slkatr_set.c
deleted file mode 100644
index f83616beaf17..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkatr_set.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- * and: Thomas E. Dickey 2005 *
- ****************************************************************************/
-
-/*
- * lib_slkatr_set.c
- * Soft key routines.
- * Set the label's attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkatr_set.c,v 1.10 2005/01/28 21:11:53 tom Exp $")
-
-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) {
- TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
- SetAttr(SP->_slk->attr, attr);
- if (color_pair_number > 0) {
- SetPair(SP->_slk->attr, color_pair_number);
- }
- TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkatrof.c b/contrib/ncurses/ncurses/base/lib_slkatrof.c
deleted file mode 100644
index 14b4c3bfadcc..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkatrof.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- * and: Thomas E. Dickey 2005 *
- ****************************************************************************/
-
-/*
- * lib_slkatrof.c
- * Soft key routines.
- * Switch off labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkatrof.c,v 1.8 2005/01/08 23:01:32 tom Exp $")
-
-NCURSES_EXPORT(int)
-slk_attroff(const chtype attr)
-{
- T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
-
- if (SP != 0 && SP->_slk != 0) {
- TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
- RemAttr(SP->_slk->attr, attr);
- if ((attr & A_COLOR) != 0) {
- SetPair(SP->_slk->attr, 0);
- }
- TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkatron.c b/contrib/ncurses/ncurses/base/lib_slkatron.c
deleted file mode 100644
index 90add86dc1c8..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkatron.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- * and: Thomas E. Dickey 2005 *
- ****************************************************************************/
-
-/*
- * lib_slkatron.c
- * Soft key routines.
- * Switch on labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkatron.c,v 1.8 2005/01/08 23:02:01 tom Exp $")
-
-NCURSES_EXPORT(int)
-slk_attron(const chtype attr)
-{
- T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
-
- if (SP != 0 && SP->_slk != 0) {
- TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
- AddAttr(SP->_slk->attr, attr);
- if ((attr & A_COLOR) != 0) {
- SetPair(SP->_slk->attr, PAIR_NUMBER(attr));
- }
- TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkatrset.c b/contrib/ncurses/ncurses/base/lib_slkatrset.c
deleted file mode 100644
index 8da9981b3b3e..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkatrset.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- * and: Thomas E. Dickey 2005 *
- ****************************************************************************/
-
-/*
- * lib_slkatrset.c
- * Soft key routines.
- * Set the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkatrset.c,v 1.7 2005/01/08 21:46:47 tom Exp $")
-
-NCURSES_EXPORT(int)
-slk_attrset(const chtype attr)
-{
- T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
-
- if (SP != 0 && SP->_slk != 0) {
- SetAttr(SP->_slk->attr, attr);
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkattr.c b/contrib/ncurses/ncurses/base/lib_slkattr.c
deleted file mode 100644
index da82ee5b623e..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkattr.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, 1997 *
- * and: Thomas E. Dickey 2005 *
- ****************************************************************************/
-
-/*
- * lib_slkattr.c
- * Soft key routines.
- * Fetch the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkattr.c,v 1.6 2005/01/08 21:44:28 tom Exp $")
-
-NCURSES_EXPORT(attr_t)
-slk_attr(void)
-{
- T((T_CALLED("slk_attr()")));
-
- if (SP != 0 && SP->_slk != 0) {
- attr_t result = AttrOf(SP->_slk->attr) & ALL_BUT_COLOR;
- int pair = GetPair(SP->_slk->attr);
-
- result |= COLOR_PAIR(pair);
- returnAttr(result);
- } else
- returnAttr(0);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkclear.c b/contrib/ncurses/ncurses/base/lib_slkclear.c
deleted file mode 100644
index 946ceeaf0e0d..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkclear.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: Juergen Pfeifer 1996-1999 *
- * and: Thomas E. Dickey 1996-on *
- ****************************************************************************/
-
-/*
- * lib_slkclear.c
- * Soft key routines.
- * Remove soft labels from the screen.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkclear.c,v 1.10 2007/12/29 17:51:47 tom Exp $")
-
-NCURSES_EXPORT(int)
-slk_clear(void)
-{
- int rc = ERR;
-
- T((T_CALLED("slk_clear()")));
-
- if (SP != NULL && SP->_slk != NULL) {
- SP->_slk->hidden = TRUE;
- /* For simulated SLK's it looks much more natural to
- inherit those attributes from the standard screen */
- SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd;
- WINDOW_ATTRS(SP->_slk->win) = WINDOW_ATTRS(stdscr);
- if (SP->_slk->win == stdscr) {
- rc = OK;
- } else {
- werase(SP->_slk->win);
- rc = wrefresh(SP->_slk->win);
- }
- }
- returnCode(rc);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkcolor.c b/contrib/ncurses/ncurses/base/lib_slkcolor.c
deleted file mode 100644
index b677b65a529a..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkcolor.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not 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 *
- * and: Thomas E. Dickey 2005 *
- ****************************************************************************/
-
-/*
- * lib_slkcolor.c
- * Soft key routines.
- * Set the label's color
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkcolor.c,v 1.12 2005/01/28 21:11:53 tom Exp $")
-
-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) {
- TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(SP->_slk->attr))));
- SetPair(SP->_slk->attr, color_pair_number);
- TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkinit.c b/contrib/ncurses/ncurses/base/lib_slkinit.c
deleted file mode 100644
index c440109b34e6..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkinit.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * lib_slkinit.c
- * Soft key routines.
- * Initialize soft labels. Called by the user before initscr().
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_slkinit.c,v 1.7 2008/01/12 20:23:39 tom Exp $")
-
-NCURSES_EXPORT(int)
-slk_init(int format)
-{
- int code = ERR;
-
- T((T_CALLED("slk_init(%d)"), format));
- if (format >= 0 && format <= 3 && !_nc_globals.slk_format) {
- _nc_globals.slk_format = 1 + format;
- code = _nc_ripoffline(-SLK_LINES(_nc_globals.slk_format), _nc_slk_initialize);
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slklab.c b/contrib/ncurses/ncurses/base/lib_slklab.c
deleted file mode 100644
index 42bb4ac1425d..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slklab.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_slklab.c,v 1.7 2003/03/29 22:53:48 tom Exp $")
-
-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].ent_text);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slkrefr.c b/contrib/ncurses/ncurses/base/lib_slkrefr.c
deleted file mode 100644
index c8ca28b9dd84..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkrefr.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: Juergen Pfeifer 1996-on *
- * and: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
- * 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: lib_slkrefr.c,v 1.15 2006/11/25 22:32:15 tom Exp $")
-
-/*
- * 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_2(plab_norm, i + 1, slk->ent[i].form_text));
- }
- } else {
- wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
- if (SP && SP->_slk) {
- wattrset(slk->win, AttrOf(SP->_slk->attr));
- }
- waddstr(slk->win, slk->ent[i].form_text);
- /* if we simulate SLK's, it's looking much more
- natural to use the current ATTRIBUTE also
- for the label window */
- wattrset(slk->win, WINDOW_ATTRS(stdscr));
- }
- }
- 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/contrib/ncurses/ncurses/base/lib_slkset.c b/contrib/ncurses/ncurses/base/lib_slkset.c
deleted file mode 100644
index e19f88e60ac4..000000000000
--- a/contrib/ncurses/ncurses/base/lib_slkset.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer *
- * and: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
- * lib_slkset.c
- * Set soft label text.
- */
-#include <curses.priv.h>
-#include <ctype.h>
-
-#if USE_WIDEC_SUPPORT
-#if HAVE_WCTYPE_H
-#include <wctype.h>
-#endif
-#endif
-
-MODULE_ID("$Id: lib_slkset.c,v 1.17 2007/10/13 20:08:46 tom Exp $")
-
-NCURSES_EXPORT(int)
-slk_set(int i, const char *astr, int format)
-{
- SLK *slk;
- int offset;
- int numchrs;
- int numcols;
- int limit;
- const char *str = astr;
- const char *p;
-
- T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
-
- if (SP == 0
- || (slk = SP->_slk) == 0
- || i < 1
- || i > slk->labcnt
- || format < 0
- || format > 2)
- returnCode(ERR);
- if (str == NULL)
- str = "";
- --i; /* Adjust numbering of labels */
-
- limit = MAX_SKEY_LEN(SP->slk_format);
- while (isspace(UChar(*str)))
- str++; /* skip over leading spaces */
- p = str;
-
-#if USE_WIDEC_SUPPORT
- numcols = 0;
- while (*p != 0) {
- mbstate_t state;
- wchar_t wc;
- size_t need;
-
- init_mb(state);
- need = mbrtowc(0, p, strlen(p), &state);
- if (need == (size_t) -1)
- break;
- mbrtowc(&wc, p, need, &state);
- if (!iswprint((wint_t) wc))
- break;
- if (wcwidth(wc) + numcols > limit)
- break;
- numcols += wcwidth(wc);
- p += need;
- }
- numchrs = (p - str);
-#else
- while (isprint(UChar(*p)))
- p++; /* The first non-print stops */
-
- numcols = (p - str);
- if (numcols > limit)
- numcols = limit;
- numchrs = numcols;
-#endif
-
- FreeIfNeeded(slk->ent[i].ent_text);
- if ((slk->ent[i].ent_text = strdup(str)) == 0)
- returnCode(ERR);
- slk->ent[i].ent_text[numchrs] = '\0';
-
- if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text,
- (unsigned) (limit +
- numchrs + 1))
- ) == 0)
- returnCode(ERR);
-
- switch (format) {
- default:
- case 0: /* left-justified */
- offset = 0;
- break;
- case 1: /* centered */
- offset = (limit - numcols) / 2;
- break;
- case 2: /* right-justified */
- offset = limit - numcols;
- break;
- }
- if (offset <= 0)
- offset = 0;
- else
- memset(slk->ent[i].form_text, ' ', (unsigned) offset);
-
- memcpy(slk->ent[i].form_text + offset,
- slk->ent[i].ent_text,
- (unsigned) numchrs);
-
- if (offset < limit) {
- memset(slk->ent[i].form_text + offset + numchrs,
- ' ',
- (unsigned) (limit - (offset + numcols)));
- }
-
- slk->ent[i].form_text[numchrs - numcols + limit] = 0;
- slk->ent[i].dirty = TRUE;
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_slktouch.c b/contrib/ncurses/ncurses/base/lib_slktouch.c
deleted file mode 100644
index 5eb5df385b82..000000000000
--- a/contrib/ncurses/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: lib_slktouch.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_touch.c b/contrib/ncurses/ncurses/base/lib_touch.c
deleted file mode 100644
index 2ac21f2e0d1f..000000000000
--- a/contrib/ncurses/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: lib_touch.c,v 1.9 2000/12/10 02:43:27 tom Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_ungetch.c b/contrib/ncurses/ncurses/base/lib_ungetch.c
deleted file mode 100644
index 2eda99017bed..000000000000
--- a/contrib/ncurses/ncurses/base/lib_ungetch.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_ungetch.c
-**
-** The routine ungetch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_ungetch.c,v 1.10 2008/05/03 20:20:58 tom Exp $")
-
-#include <fifo_defs.h>
-
-#ifdef TRACE
-NCURSES_EXPORT(void)
-_nc_fifo_dump(SCREEN *sp)
-{
- 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)
-_nc_ungetch(SCREEN *sp, int ch)
-{
- int rc = ERR;
-
- if (tail != -1) {
- 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 (USE_TRACEF(TRACE_IEVENT)) {
- _nc_fifo_dump(sp);
- _nc_unlock_global(tracef);
- }
-#endif
- rc = OK;
- }
- return rc;
-}
-
-NCURSES_EXPORT(int)
-ungetch(int ch)
-{
- T((T_CALLED("ungetch(%s)"), _tracechar(ch)));
- returnCode(_nc_ungetch(SP, ch));
-}
diff --git a/contrib/ncurses/ncurses/base/lib_vline.c b/contrib/ncurses/ncurses/base/lib_vline.c
deleted file mode 100644
index 1a2537e7eb6a..000000000000
--- a/contrib/ncurses/ncurses/base/lib_vline.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_vline.c,v 1.10 2006/03/11 21:52:19 tom Exp $")
-
-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)
- SetChar2(wch, ACS_VLINE);
- else
- SetChar2(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/contrib/ncurses/ncurses/base/lib_wattroff.c b/contrib/ncurses/ncurses/base/lib_wattroff.c
deleted file mode 100644
index bf2020e06027..000000000000
--- a/contrib/ncurses/ncurses/base/lib_wattroff.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_wattroff.c
-**
-** The routine wattr_off().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_wattroff.c,v 1.9 2006/05/27 19:30:33 tom Exp $")
-
-NCURSES_EXPORT(int)
-wattr_off(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
-{
- T((T_CALLED("wattr_off(%p,%s)"), win, _traceattr(at)));
- if (win) {
- T(("... current %s (%d)",
- _traceattr(WINDOW_ATTRS(win)),
- GET_WINDOW_PAIR(win)));
-
- if_EXT_COLORS({
- if (at & A_COLOR)
- win->_color = 0;
- });
- toggle_attr_off(WINDOW_ATTRS(win), at);
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_wattron.c b/contrib/ncurses/ncurses/base/lib_wattron.c
deleted file mode 100644
index 2e17d965e94a..000000000000
--- a/contrib/ncurses/ncurses/base/lib_wattron.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_wattron.c
-**
-** The routines wattr_on().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_wattron.c,v 1.9 2006/05/27 19:30:46 tom Exp $")
-
-NCURSES_EXPORT(int)
-wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
-{
- T((T_CALLED("wattr_on(%p,%s)"), win, _traceattr(at)));
- if (win != 0) {
- T(("... current %s (%d)",
- _traceattr(WINDOW_ATTRS(win)),
- GET_WINDOW_PAIR(win)));
-
- if_EXT_COLORS({
- if (at & A_COLOR)
- win->_color = PAIR_NUMBER(at);
- });
- toggle_attr_on(WINDOW_ATTRS(win), at);
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/base/lib_winch.c b/contrib/ncurses/ncurses/base/lib_winch.c
deleted file mode 100644
index 18da9c594945..000000000000
--- a/contrib/ncurses/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: lib_winch.c,v 1.5 2001/06/02 23:42:08 skimo Exp $")
-
-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/contrib/ncurses/ncurses/base/lib_window.c b/contrib/ncurses/ncurses/base/lib_window.c
deleted file mode 100644
index ac61cb01da99..000000000000
--- a/contrib/ncurses/ncurses/base/lib_window.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_window.c,v 1.24 2008/04/12 22:40:21 tom Exp $")
-
-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 may be outside the child's 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) {
-
- _nc_lock_window(win);
- 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.
- */
-
- WINDOW_ATTRS(nwin) = WINDOW_ATTRS(win);
- 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;
- }
- }
- _nc_unlock_window(win);
- }
- returnWin(nwin);
-}
diff --git a/contrib/ncurses/ncurses/base/memmove.c b/contrib/ncurses/ncurses/base/memmove.c
deleted file mode 100644
index 093ad72954ff..000000000000
--- a/contrib/ncurses/ncurses/base/memmove.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: memmove.c,v 1.5 2007/08/11 17:12:43 tom Exp $")
-
-/****************************************************************************
- * 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];
- s2 = 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/contrib/ncurses/ncurses/base/nc_panel.c b/contrib/ncurses/ncurses/base/nc_panel.c
deleted file mode 100644
index 59bfbbe86ef6..000000000000
--- a/contrib/ncurses/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: nc_panel.c,v 1.4 2000/12/10 02:43:28 tom Exp $")
-
-NCURSES_EXPORT(struct panelhook *)
-_nc_panelhook(void)
-{
- return (SP ? &(SP->_panelHook) : NULL);
-}
diff --git a/contrib/ncurses/ncurses/base/resizeterm.c b/contrib/ncurses/ncurses/base/resizeterm.c
deleted file mode 100644
index cf2c998e239f..000000000000
--- a/contrib/ncurses/ncurses/base/resizeterm.c
+++ /dev/null
@@ -1,455 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: resizeterm.c,v 1.32 2008/05/03 14:28:55 tom Exp $")
-
-#define stolen_lines (screen_lines - SP->_lines_avail)
-
-/*
- * If we're trying to be reentrant, do not want any local statics.
- */
-#if USE_REENTRANT
-#define EXTRA_ARGS , CurLines, CurCols
-#define EXTRA_DCLS , int CurLines, int CurCols
-#else
-static int current_lines;
-static int current_cols;
-#define CurLines current_lines
-#define CurCols current_cols
-#define EXTRA_ARGS /* nothing */
-#define EXTRA_DCLS /* nothing */
-#endif
-
-#ifdef TRACE
-static void
-show_window_sizes(const char *name)
-{
- WINDOWLIST *wp;
-
- _nc_lock_global(windowlist);
- _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS,
- screen_lines, screen_columns);
- for (each_window(wp)) {
- _tracef(" window %p is %2ld x %2ld at %2ld,%2ld",
- &(wp->win),
- (long) wp->win._maxy + 1,
- (long) wp->win._maxx + 1,
- (long) wp->win._begy,
- (long) wp->win._begx);
- }
- _nc_unlock_global(windowlist);
-}
-#endif
-
-/*
- * Return true if the given dimensions do not match the internal terminal
- * structure's size.
- */
-NCURSES_EXPORT(bool)
-is_term_resized(int ToLines, int ToCols)
-{
- T((T_CALLED("is_term_resized(%d, %d)"), ToLines, ToCols));
- returnCode(ToLines > 0
- && ToCols > 0
- && (ToLines != screen_lines
- || ToCols != screen_columns));
-}
-
-/*
- */
-static ripoff_t *
-ripped_window(WINDOW *win)
-{
- ripoff_t *result = 0;
- ripoff_t *rop;
-
- if (win != 0) {
- for (each_ripoff(rop)) {
- if (rop->win == win && rop->line != 0) {
- result = rop;
- break;
- }
- }
- }
- return result;
-}
-
-/*
- * Returns the number of lines from the bottom for the beginning of a ripped
- * off window.
- */
-static int
-ripped_bottom(WINDOW *win)
-{
- int result = 0;
- ripoff_t *rop;
-
- if (win != 0) {
- for (each_ripoff(rop)) {
- if (rop->line < 0) {
- result -= rop->line;
- if (rop->win == win) {
- break;
- }
- }
- }
- }
- return result;
-}
-
-/*
- * 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 (each_window(wp)) {
- 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 EXTRA_DCLS)
-{
- int result;
- int bottom = CurLines + SP->_topstolen - stolen;
- int myLines = win->_maxy + 1;
- int myCols = win->_maxx + 1;
- ripoff_t *rop = ripped_window(win);
-
- T((T_CALLED("adjust_window(%p,%d,%d)%s depth %d/%d currently %ldx%ld at %ld,%ld"),
- win, ToLines, ToCols,
- (rop != 0) ? " (rip)" : "",
- parent_depth(win),
- child_depth(win),
- (long) getmaxy(win), (long) getmaxx(win),
- (long) getbegy(win) + win->_yoffset, (long) getbegx(win)));
-
- if (rop != 0 && rop->line < 0) {
- /*
- * If it is a ripped-off window at the bottom of the screen, simply
- * move it to the same relative position.
- */
- win->_begy = ToLines - ripped_bottom(win) - 0 - win->_yoffset;
- } else if (win->_begy >= bottom) {
- /*
- * If it is below the bottom of the new screen, move up by the same
- * amount that the screen shrank.
- */
- win->_begy += (ToLines - CurLines);
- } else {
- if (myLines == (CurLines - stolen)
- && ToLines != CurLines) {
- myLines = ToLines - stolen;
- } else if (myLines == CurLines
- && ToLines != CurLines) {
- myLines = ToLines;
- }
- }
-
- if (myLines > ToLines) {
- myLines = ToLines;
- }
-
- if (myCols > ToCols)
- myCols = ToCols;
-
- if (myCols == CurCols
- && ToCols != CurCols)
- 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 EXTRA_DCLS)
-{
- 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 (each_window(wp)) {
- WINDOW *win = &(wp->win);
-
- if (!(win->_flags & _ISPAD)) {
- if (child_depth(win) == depth) {
- found = TRUE;
- if (adjust_window(win, ToLines, ToCols,
- stolen EXTRA_ARGS) != 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 EXTRA_DCLS)
-{
- 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 (each_window(wp)) {
- WINDOW *win = &(wp->win);
-
- if (!(win->_flags & _ISPAD)) {
- if (parent_depth(win) == depth) {
- found = TRUE;
- if (adjust_window(win, ToLines, ToCols,
- stolen EXTRA_ARGS) != 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 EXTRA_ARGS;
- int was_stolen;
-
- T((T_CALLED("resize_term(%d,%d) old(%d,%d)"),
- ToLines, ToCols,
- screen_lines, screen_columns));
-
- if (SP == 0) {
- returnCode(ERR);
- }
-
- _nc_lock_global(windowlist);
-
- was_stolen = (screen_lines - SP->_lines_avail);
- if (is_term_resized(ToLines, ToCols)) {
- int myLines = CurLines = screen_lines;
- int myCols = CurCols = screen_columns;
-
-#ifdef TRACE
- if (USE_TRACEF(TRACE_UPDATE)) {
- show_window_sizes("before");
- _nc_unlock_global(tracef);
- }
-#endif
- if (ToLines > screen_lines) {
- increase_size(myLines = ToLines, myCols, was_stolen EXTRA_ARGS);
- CurLines = myLines;
- CurCols = myCols;
- }
-
- if (ToCols > screen_columns) {
- increase_size(myLines, myCols = ToCols, was_stolen EXTRA_ARGS);
- CurLines = myLines;
- CurCols = myCols;
- }
-
- if (ToLines < myLines ||
- ToCols < myCols) {
- decrease_size(ToLines, ToCols, was_stolen EXTRA_ARGS);
- }
-
- 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);
- }
-#ifdef TRACE
- if (USE_TRACEF(TRACE_UPDATE)) {
- SET_LINES(ToLines - was_stolen);
- SET_COLS(ToCols);
- show_window_sizes("after");
- _nc_unlock_global(tracef);
- }
-#endif
- }
-
- /*
- * Always update LINES, to allow for call from lib_doupdate.c which
- * needs to have the count adjusted by the stolen (ripped off) lines.
- */
- SET_LINES(ToLines - was_stolen);
- SET_COLS(ToCols);
-
- _nc_unlock_global(windowlist);
-
- 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 = ERR;
-
- T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
- ToLines, ToCols,
- screen_lines, screen_columns));
-
- if (SP != 0) {
- result = OK;
- SP->_sig_winch = FALSE;
-
- if (is_term_resized(ToLines, ToCols)) {
-#if USE_SIGWINCH
- ripoff_t *rop;
- bool slk_visible = (SP != 0
- && SP->_slk != 0
- && !(SP->_slk->hidden));
-
- if (slk_visible) {
- slk_clear();
- }
-#endif
- result = resize_term(ToLines, ToCols);
-
-#if USE_SIGWINCH
- ungetch(KEY_RESIZE); /* so application can know this */
- clearok(curscr, TRUE); /* screen contents are unknown */
-
- /* ripped-off lines are a special case: if we did not lengthen
- * them, we haven't moved them either. repaint them, too.
- *
- * for the rest - stdscr and other windows - the client has to
- * decide which to repaint, since without panels, ncurses does
- * not know which are really on top.
- */
- for (each_ripoff(rop)) {
- if (rop->win != stdscr
- && rop->win != 0
- && rop->line < 0) {
-
- if (rop->hook != _nc_slk_initialize) {
- touchwin(rop->win);
- wnoutrefresh(rop->win);
- }
- }
- }
-
- /* soft-keys are a special case: we _know_ how to repaint them */
- if (slk_visible) {
- slk_restore();
- slk_touch();
-
- slk_refresh();
- }
-#endif
- }
- }
-
- returnCode(result);
-}
diff --git a/contrib/ncurses/ncurses/base/safe_sprintf.c b/contrib/ncurses/ncurses/base/safe_sprintf.c
deleted file mode 100644
index 8fc5d89dd210..000000000000
--- a/contrib/ncurses/ncurses/base/safe_sprintf.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: safe_sprintf.c,v 1.20 2007/04/21 22:28:06 tom Exp $")
-
-#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;
- size_t fmt_len;
- char fmt_arg[BUFSIZ];
-
- if (fmt == 0 || *fmt == '\0')
- return 0;
- fmt_len = strlen(fmt) + 1;
- if ((format = typeMalloc(char, fmt_len)) == 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(fmt_arg, "%d", ival);
- fmt_len += strlen(fmt_arg);
- if ((format = realloc(format, fmt_len)) == 0) {
- return -1;
- }
- strcpy(&format[--f], fmt_arg);
- 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
-
-#define my_buffer _nc_globals.safeprint_buf
-#define my_length _nc_globals.safeprint_used
-
-/*
- * 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)
-{
- char *result = 0;
-
- if (fmt != 0) {
-#if USE_SAFE_SPRINTF
- int len = _nc_printf_length(fmt, ap);
-
- if ((int) my_length < len + 1) {
- my_length = 2 * (len + 1);
- my_buffer = typeRealloc(char, my_length, my_buffer);
- }
- if (my_buffer != 0) {
- *my_buffer = '\0';
- if (len >= 0) {
- vsprintf(my_buffer, fmt, ap);
- }
- result = my_buffer;
- }
-#else
-#define MyCols _nc_globals.safeprint_cols
-#define MyRows _nc_globals.safeprint_rows
-
- if (screen_lines > MyRows || screen_columns > MyCols) {
- if (screen_lines > MyRows)
- MyRows = screen_lines;
- if (screen_columns > MyCols)
- MyCols = screen_columns;
- my_length = (MyRows * (MyCols + 1)) + 1;
- my_buffer = typeRealloc(char, my_length, my_buffer);
- }
-
- if (my_buffer != 0) {
-# if HAVE_VSNPRINTF
- vsnprintf(my_buffer, my_length, fmt, ap); /* GNU extension */
-# else
- vsprintf(my_buffer, fmt, ap); /* ANSI */
-# endif
- result = my_buffer;
- }
-#endif
- } else if (my_buffer != 0) { /* see _nc_freeall() */
- free(my_buffer);
- my_buffer = 0;
- my_length = 0;
- }
- return result;
-}
diff --git a/contrib/ncurses/ncurses/base/sigaction.c b/contrib/ncurses/ncurses/base/sigaction.c
deleted file mode 100644
index 36442e090a41..000000000000
--- a/contrib/ncurses/ncurses/base/sigaction.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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-2003 *
- ****************************************************************************/
-
-/* This file provides sigaction() emulation using sigvec() */
-/* Use only if this is non POSIX system */
-
-MODULE_ID("$Id: sigaction.c,v 1.14 2003/12/07 01:06:52 tom Exp $")
-
-static int
-_nc_sigaction(int sig, sigaction_t * sigact, sigaction_t * osigact)
-{
- return sigvec(sig, sigact, osigact);
-}
-
-static int
-_nc_sigemptyset(sigset_t * mask)
-{
- *mask = 0;
- return 0;
-}
-
-static int
-_nc_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;
-}
-
-static int
-_nc_sigaddset(sigset_t * mask, int sig)
-{
- *mask |= sigmask(sig);
- return 0;
-}
-
-/* not used in lib_tstp.c */
-#if 0
-static int
-_nc_sigsuspend(sigset_t * mask)
-{
- return sigpause(*mask);
-}
-
-static int
-_nc_sigdelset(sigset_t * mask, int sig)
-{
- *mask &= ~sigmask(sig);
- return 0;
-}
-
-static int
-_nc_sigismember(sigset_t * mask, int sig)
-{
- return (*mask & sigmask(sig)) != 0;
-}
-#endif
diff --git a/contrib/ncurses/ncurses/base/tries.c b/contrib/ncurses/ncurses/base/tries.c
deleted file mode 100644
index 983a75ae7882..000000000000
--- a/contrib/ncurses/ncurses/base/tries.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: tries.c,v 1.25 2007/09/29 20:37:13 tom Exp $")
-
-/*
- * Expand a keycode into the string that it corresponds to, returning null if
- * no match was found, otherwise allocating a string of the result.
- */
-NCURSES_EXPORT(char *)
-_nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len)
-{
- 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 (ptr != 0 && (result[len] = ptr->ch) == 0)
- *((unsigned char *) (result + len)) = 128;
-#ifdef TRACE
- if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) {
- _tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
- _nc_unlock_global(tracef);
- }
-#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(TRIES ** tree, unsigned 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 {
- 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(TRIES ** tree, const 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 (UChar((*tree)->ch) == UChar(*string)) {
- if (string[1] != 0)
- returnCode(_nc_remove_string(&(*tree)->child, string + 1));
- if ((*tree)->child == 0) {
- TRIES *to_free = *tree;
- *tree = (*tree)->sibling;
- free(to_free);
- returnCode(TRUE);
- } else {
- returnCode(FALSE);
- }
- }
- tree = &(*tree)->sibling;
- }
- returnCode(FALSE);
-}
diff --git a/contrib/ncurses/ncurses/base/use_window.c b/contrib/ncurses/ncurses/base/use_window.c
deleted file mode 100644
index 4d0fdf6705be..000000000000
--- a/contrib/ncurses/ncurses/base/use_window.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2007 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: use_window.c,v 1.7 2008/05/03 14:09:38 tom Exp $")
-
-#ifdef USE_PTHREADS
-NCURSES_EXPORT(void)
-_nc_lock_window(const WINDOW *win)
-{
- WINDOWLIST *p;
-
- _nc_lock_global(windowlist);
- for (each_window(p)) {
- if (&(p->win) == win) {
- _nc_mutex_lock(&(p->mutex_use_window));
- break;
- }
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_unlock_window(const WINDOW *win)
-{
- WINDOWLIST *p;
-
- for (each_window(p)) {
- if (&(p->win) == win) {
- _nc_mutex_unlock(&(p->mutex_use_window));
- break;
- }
- }
- _nc_unlock_global(windowlist);
-}
-#endif
-
-NCURSES_EXPORT(int)
-use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data)
-{
- int code = OK;
-
- T((T_CALLED("use_window(%p,%p,%p)"), win, func, data));
- _nc_lock_window(win);
- code = func(win, data);
- _nc_unlock_window(win);
-
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/base/version.c b/contrib/ncurses/ncurses/base/version.c
deleted file mode 100644
index ef83967d46b3..000000000000
--- a/contrib/ncurses/ncurses/base/version.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: version.c,v 1.6 2005/01/02 01:23:54 tom Exp $")
-
-NCURSES_EXPORT(const char *)
-curses_version(void)
-{
- T((T_CALLED("curses_version()")));
- returnCPtr("ncurses " NCURSES_VERSION_STRING);
-}
diff --git a/contrib/ncurses/ncurses/base/vsscanf.c b/contrib/ncurses/ncurses/base/vsscanf.c
deleted file mode 100644
index e6253c3a38a3..000000000000
--- a/contrib/ncurses/ncurses/base/vsscanf.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: vsscanf.c,v 1.18 2004/04/03 20:27:02 tom Exp $")
-
-#if !(HAVE_VFSCANF || HAVE__DOSCAN)
-
-#include <ctype.h>
-
-#define L_SQUARE '['
-#define R_SQUARE ']'
-
-typedef enum {
- cUnknown
- ,cError /* anything that isn't ANSI */
- ,cAssigned
- ,cChar
- ,cInt
- ,cFloat
- ,cDouble
- ,cPointer
- ,cLong
- ,cShort
- ,cRange
- ,cString
-} ChunkType;
-
-typedef enum {
- oUnknown
- ,oShort
- ,oLong
-} OtherType;
-
-typedef enum {
- sUnknown
- ,sPercent /* last was '%' beginning a format */
- ,sNormal /* ...somewhere in the middle */
- ,sLeft /* last was left square bracket beginning a range */
- ,sRange /* ...somewhere in the middle */
- ,sFinal /* last finished a format */
-} ScanState;
-
-static ChunkType
-final_ch(int ch, OtherType other)
-{
- ChunkType result = cUnknown;
-
- switch (ch) {
- case 'c':
- if (other == oUnknown)
- result = cChar;
- else
- result = cError;
- break;
- case 'd':
- case 'i':
- case 'X':
- case 'x':
- switch (other) {
- case oUnknown:
- result = cInt;
- break;
- case oShort:
- result = cShort;
- break;
- case oLong:
- result = cLong;
- break;
- }
- break;
- case 'E':
- case 'e':
- case 'f':
- case 'g':
- switch (other) {
- case oUnknown:
- result = cFloat;
- break;
- case oShort:
- result = cError;
- break;
- case oLong:
- result = cDouble;
- break;
- }
- break;
- case 'n':
- if (other == oUnknown)
- result = cAssigned;
- else
- result = cError;
- break;
- case 'p':
- if (other == oUnknown)
- result = cPointer;
- else
- result = cError;
- break;
- case 's':
- if (other == oUnknown)
- result = cString;
- else
- result = cError;
- break;
- }
- return result;
-}
-
-static OtherType
-other_ch(int ch)
-{
- OtherType result = oUnknown;
- switch (ch) {
- case 'h':
- result = oShort;
- break;
- case 'l':
- result = oLong;
- break;
- }
- return result;
-}
-#endif
-
-/*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 = oUnknown;
- 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(UChar(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/contrib/ncurses/ncurses/base/wresize.c b/contrib/ncurses/ncurses/base/wresize.c
deleted file mode 100644
index ac808c4d2884..000000000000
--- a/contrib/ncurses/ncurses/base/wresize.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: wresize.c,v 1.28 2008/05/03 14:13:51 tom Exp $")
-
-static int
-cleanup_lines(struct ldat *data, int length)
-{
- while (--length >= 0)
- free(data[length].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;
-
- _nc_lock_global(windowlist);
-
- for (each_window(wp)) {
- 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);
- }
- }
- _nc_unlock_global(windowlist);
-}
-
-/*
- * 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 (%ld, %ld), max(%ld,%ld), reg(%ld,%ld)",
- (long) win->_begy, (long) win->_begx,
- (long) win->_maxy, (long) win->_maxx,
- (long) win->_regtop, (long) win->_regbottom));
- if (USE_TRACEF(TRACE_UPDATE)) {
- _tracedump("...before", win);
- _nc_unlock_global(tracef);
- }
- }
-#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 (%ld, %ld), max(%ld,%ld), reg(%ld,%ld)",
- (long) win->_begy, (long) win->_begx,
- (long) win->_maxy, (long) win->_maxx,
- (long) win->_regtop, (long) win->_regbottom));
- if (USE_TRACEF(TRACE_UPDATE)) {
- _tracedump("...after:", win);
- _nc_unlock_global(tracef);
- }
-#endif
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/curses.priv.h b/contrib/ncurses/ncurses/curses.priv.h
deleted file mode 100644
index 422c74cb2a3f..000000000000
--- a/contrib/ncurses/ncurses/curses.priv.h
+++ /dev/null
@@ -1,1666 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: curses.priv.h,v 1.373 2008/05/03 23:30:35 tom Exp $
- *
- * 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
-
-#include <assert.h>
-#include <stdio.h>
-
-#include <errno.h>
-
-#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
-
-#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 1
-#else
-#define USE_EMX_MOUSE 0
-#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.
- */
-
-#define TRIES struct tries
-typedef TRIES {
- TRIES *child; /* ptr to child. NULL if none */
- 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. */
-#undef TRIES
-} TRIES;
-
-/*
- * Common/troublesome character definitions
- */
-#define StringOf(ch) {ch, 0}
-
-#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
-
-#undef NCURSES_OPAQUE
-#define NCURSES_INTERNALS 1
-#define NCURSES_OPAQUE 0
-
-#include <curses.h> /* we'll use -Ipath directive to get the right one! */
-#include <term.h>
-#include <term_entry.h>
-#include <nc_tparm.h>
-
-#if NCURSES_EXT_COLORS && USE_WIDEC_SUPPORT
-#define if_EXT_COLORS(stmt) stmt
-#define NetPair(value,p) (value).ext_color = (p), \
- AttrOf(value) &= ALL_BUT_COLOR, \
- AttrOf(value) |= (A_COLOR & COLOR_PAIR((p > 255) ? 255 : p))
-#define SetPair(value,p) (value).ext_color = (p)
-#define GetPair(value) (value).ext_color
-#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR)
-#define GET_WINDOW_PAIR(w) (w)->_color
-#define SET_WINDOW_PAIR(w,p) (w)->_color = (p)
-#define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b))
-#define VIDATTR(attr, pair) vid_attr(attr, pair, 0)
-#else
-#define if_EXT_COLORS(stmt) /* nothing */
-#define SetPair(value,p) RemAttr(value, A_COLOR), \
- SetAttr(value, AttrOf(value) | (A_COLOR & COLOR_PAIR(p)))
-#define GetPair(value) PAIR_NUMBER(AttrOf(value))
-#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR)
-#define GET_WINDOW_PAIR(w) PAIR_NUMBER(WINDOW_ATTRS(w))
-#define SET_WINDOW_PAIR(w,p) WINDOW_ATTRS(w) &= ALL_BUT_COLOR, \
- WINDOW_ATTRS(w) |= (A_COLOR & COLOR_PAIR(p))
-#define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b))
-#define VIDATTR(attr, pair) vidattr(attr)
-#endif
-
-#define WINDOW_ATTRS(w) ((w)->_attrs)
-
-#define SCREEN_ATTRS(s) (*((s)->_current_attr))
-#define GET_SCREEN_PAIR(s) GetPair(SCREEN_ATTRS(s))
-#define SET_SCREEN_PAIR(s,p) SetPair(SCREEN_ATTRS(s), p)
-
-#if USE_REENTRANT
-#define SET_LINES(value) SP->_LINES = value
-#define SET_COLS(value) SP->_COLS = value
-#else
-#define SET_LINES(value) LINES = value
-#define SET_COLS(value) COLS = value
-#endif
-
-#define TR_MUTEX(data) _tracef("%s@%d: me:%08lX COUNT:%2u/%2d/%6d/%2d/%s%9u: " #data, \
- __FILE__, __LINE__, \
- (unsigned long) (pthread_self()), \
- data.__data.__lock, \
- data.__data.__count, \
- data.__data.__owner, \
- data.__data.__kind, \
- (data.__data.__nusers > 5) ? " OOPS " : "", \
- data.__data.__nusers)
-#define TR_GLOBAL_MUTEX(name) TR_MUTEX(_nc_globals.mutex_##name)
-
-#ifdef USE_PTHREADS
-
-#if USE_REENTRANT
-#include <pthread.h>
-extern NCURSES_EXPORT(void) _nc_mutex_init(pthread_mutex_t *);
-extern NCURSES_EXPORT(int) _nc_mutex_lock(pthread_mutex_t *);
-extern NCURSES_EXPORT(int) _nc_mutex_trylock(pthread_mutex_t *);
-extern NCURSES_EXPORT(int) _nc_mutex_unlock(pthread_mutex_t *);
-#define _nc_lock_global(name) _nc_mutex_lock(&_nc_globals.mutex_##name)
-#define _nc_try_global(name) _nc_mutex_trylock(&_nc_globals.mutex_##name)
-#define _nc_unlock_global(name) _nc_mutex_unlock(&_nc_globals.mutex_##name)
-
-extern NCURSES_EXPORT(void) _nc_lock_window(const WINDOW *);
-extern NCURSES_EXPORT(void) _nc_unlock_window(const WINDOW *);
-
-#else
-#error POSIX threads requires --enable-reentrant option
-#endif
-
-#if HAVE_NANOSLEEP
-#undef HAVE_NANOSLEEP
-#define HAVE_NANOSLEEP 0 /* nanosleep suspends all threads */
-#endif
-
-#else /* !USE_PTHREADS */
-
-#define _nc_mutex_init(obj) /* nothing */
-
-#define _nc_lock_global(name) /* nothing */
-#define _nc_try_global(name) 0
-#define _nc_unlock_global(name) /* nothing */
-
-#define _nc_lock_window(name) (void) TRUE
-#define _nc_unlock_window(name) /* nothing */
-
-#endif /* USE_PTHREADS */
-
-#if HAVE_GETTIMEOFDAY
-# define PRECISE_GETTIME 1
-# define TimeType struct timeval
-#else
-# define PRECISE_GETTIME 0
-# define TimeType time_t
-#endif
-
-/*
- * Definitions for color pairs
- */
-typedef unsigned colorpair_t; /* type big enough to store PAIR_OF() */
-#define C_SHIFT 9 /* we need more bits than there are colors */
-#define C_MASK ((1 << C_SHIFT) - 1)
-#define PAIR_OF(fg, bg) ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
-#define isDefaultColor(c) ((c) >= COLOR_DEFAULT || (c) < 0)
-
-#define COLOR_DEFAULT C_MASK
-
-#if defined(USE_TERMLIB) && !defined(NEED_NCURSES_CH_T)
-
-#undef NCURSES_CH_T /* this is not a termlib feature */
-#define NCURSES_CH_T void /* ...but we need a pointer in SCREEN */
-
-#endif /* USE_TERMLIB */
-
-#ifndef USE_TERMLIB
-struct ldat
-{
- NCURSES_CH_T *text; /* text of the line */
- 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 */
-};
-#endif /* USE_TERMLIB */
-
-typedef enum {
- M_XTERM = -1 /* use xterm's mouse tracking? */
- ,M_NONE = 0 /* no mouse device */
-#if USE_GPM_SUPPORT
- ,M_GPM /* use GPM */
-#endif
-#if USE_SYSMOUSE
- ,M_SYSMOUSE /* FreeBSD sysmouse on console */
-#endif
-} MouseType;
-
-/*
- * Structures for scrolling.
- */
-
-typedef struct {
- unsigned long hashval;
- int oldcount, newcount;
- int oldindex, newindex;
-} HASHMAP;
-
-/*
- * Structures for soft labels.
- */
-
-struct _SLK;
-
-#ifndef USE_TERMLIB
-
-typedef struct
-{
- char *ent_text; /* text for the label */
- char *form_text; /* formatted text (left/center/...) */
- int ent_x; /* x coordinate of this field */
- char dirty; /* this label has changed */
- char visible; /* field is visible */
-} slk_ent;
-
-typedef struct _SLK {
- char dirty; /* all labels have changed */
- char hidden; /* soft labels are hidden */
- WINDOW *win;
- slk_ent *ent;
- short maxlab; /* number of available labels */
- short labcnt; /* number of allocated labels */
- short maxlen; /* length of labels */
- NCURSES_CH_T attr; /* soft label attribute */
-} SLK;
-
-#endif /* USE_TERMLIB */
-
-typedef struct {
- WINDOW *win; /* the window used in the hook */
- int line; /* lines to take, < 0 => from bottom*/
- int (*hook)(WINDOW *, int); /* callback for user */
-} ripoff_t;
-
-#if USE_GPM_SUPPORT
-#undef buttons /* term.h defines this, and gpm uses it! */
-#include <gpm.h>
-
-#ifdef HAVE_LIBDL
-/* link dynamically to GPM */
-typedef int *TYPE_gpm_fd;
-typedef int (*TYPE_Gpm_Open) (Gpm_Connect *, int);
-typedef int (*TYPE_Gpm_Close) (void);
-typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *);
-
-#define my_gpm_fd SP->_mouse_gpm_fd
-#define my_Gpm_Open SP->_mouse_Gpm_Open
-#define my_Gpm_Close SP->_mouse_Gpm_Close
-#define my_Gpm_GetEvent SP->_mouse_Gpm_GetEvent
-#else
-/* link statically to GPM */
-#define my_gpm_fd &gpm_fd
-#define my_Gpm_Open Gpm_Open
-#define my_Gpm_Close Gpm_Close
-#define my_Gpm_GetEvent Gpm_GetEvent
-#endif /* HAVE_LIBDL */
-#endif /* USE_GPM_SUPPORT */
-
-typedef struct {
- long sequence;
- bool last_used;
- char *fix_sgr0; /* this holds the filtered sgr0 string */
- char *last_bufp; /* help with fix_sgr0 leak */
- TERMINAL *last_term;
-} TGETENT_CACHE;
-
-#define TGETENT_MAX 4
-
-/*
- * State of tparm().
- */
-#define STACKSIZE 20
-
-typedef struct {
- union {
- int num;
- char *str;
- } data;
- bool num_type;
-} STACK_FRAME;
-
-#define NUM_VARS 26
-
-typedef struct {
-#ifdef TRACE
- const char *tname;
-#endif
- const char *tparam_base;
-
- STACK_FRAME stack[STACKSIZE];
- int stack_ptr;
-
- char *out_buff;
- size_t out_size;
- size_t out_used;
-
- char *fmt_buff;
- size_t fmt_size;
-
- int dynamic_var[NUM_VARS];
- int static_vars[NUM_VARS];
-} TPARM_STATE;
-
-typedef struct {
- char *text;
- size_t size;
-} TRACEBUF;
-
-/*
- * The filesystem database normally uses a single-letter for the lower level
- * of directories. Use a hexadecimal code for filesystems which do not
- * preserve mixed-case names.
- */
-#if MIXEDCASE_FILENAMES
-#define LEAF_FMT "%c"
-#else
-#define LEAF_FMT "%02x"
-#endif
-
-/*
- * TRACEMSE_FMT is no longer than 80 columns, there are 5 numbers that
- * could at most have 10 digits, and the mask contains no more than 32 bits
- * with each bit representing less than 15 characters. Usually the whole
- * string is less than 80 columns, but this buffer size is an absolute
- * limit.
- */
-#define TRACEMSE_MAX (80 + (5 * 10) + (32 * 15))
-#define TRACEMSE_FMT "id %2d at (%2d, %2d, %2d) state %4lx = {" /* } */
-
-/*
- * Global data which is not specific to a screen.
- */
-typedef struct {
- SIG_ATOMIC_T have_sigwinch;
- SIG_ATOMIC_T cleanup_nested;
-
- bool init_signals;
- bool init_screen;
-
- const char *comp_sourcename;
- char *comp_termtype;
-
- bool have_tic_directory;
- bool keep_tic_directory;
- const char *tic_directory;
-
- char *dbi_list;
- int dbi_size;
-
- char *first_name;
- char **keyname_table;
-
- int slk_format;
-
- char *safeprint_buf;
- size_t safeprint_used;
-
- TGETENT_CACHE tgetent_cache[TGETENT_MAX];
- int tgetent_index;
- long tgetent_sequence;
-
- WINDOWLIST *_nc_windowlist;
-#define _nc_windows _nc_globals._nc_windowlist
-
-#if USE_HOME_TERMINFO
- char *home_terminfo;
-#endif
-
-#if !USE_SAFE_SPRINTF
- int safeprint_cols;
- int safeprint_rows;
-#endif
-
-#ifdef TRACE
- bool init_trace;
- char trace_fname[PATH_MAX];
- int trace_level;
- FILE *trace_fp;
-
- char *tracearg_buf;
- size_t tracearg_used;
-
- TRACEBUF *tracebuf_ptr;
- size_t tracebuf_used;
-
- char tracechr_buf[40];
-
- char *tracedmp_buf;
- size_t tracedmp_used;
-
- char tracemse_buf[TRACEMSE_MAX];
-
- unsigned char *tracetry_buf;
- size_t tracetry_used;
-
- char traceatr_color_buf[2][80];
- int traceatr_color_sel;
- int traceatr_color_last;
-
-#endif /* TRACE */
-
-#ifdef USE_PTHREADS
- pthread_mutex_t mutex_set_SP;
- pthread_mutex_t mutex_use_screen;
- pthread_mutex_t mutex_use_window;
- pthread_mutex_t mutex_windowlist;
- pthread_mutex_t mutex_tst_tracef;
- pthread_mutex_t mutex_tracef;
- int nested_tracef;
-#endif
-} NCURSES_GLOBALS;
-
-extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals;
-
-#define N_RIPS 5
-
-/*
- * Global data which can be swept up into a SCREEN when one is created.
- * It may be modified before the next SCREEN is created.
- */
-typedef struct {
- bool use_env;
- bool filter_mode;
- attr_t previous_attr;
- ripoff_t rippedoff[N_RIPS];
- ripoff_t *rsp;
- TPARM_STATE tparm_state;
- TTY *saved_tty; /* savetty/resetty information */
-#if BROKEN_LINKER || USE_REENTRANT
- chtype *real_acs_map;
- int _LINES;
- int _COLS;
-#ifdef TRACE
- long _outchars;
- const char *_tputs_trace;
-#endif
-#endif
-} NCURSES_PRESCREEN;
-
-#define ripoff_sp _nc_prescreen.rsp
-#define ripoff_stack _nc_prescreen.rippedoff
-
-extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
-
-/*
- * The SCREEN structure.
- */
-
-struct screen {
- int _ifd; /* input file ptr for screen */
- FILE *_ofp; /* output file ptr for screen */
- char *_setbuf; /* buffered I/O for output */
- bool _filtered; /* filter() was called */
- bool _buffered; /* setvbuf uses _setbuf data */
- int _checkfd; /* filedesc for typeahead check */
- TERMINAL *_term; /* terminal type information */
- TTY _saved_tty; /* savetty/resetty information */
- NCURSES_SIZE_T _lines; /* screen lines */
- NCURSES_SIZE_T _columns; /* screen columns */
-
- NCURSES_SIZE_T _lines_avail; /* lines available for stdscr */
- NCURSES_SIZE_T _topstolen; /* lines stolen from top */
-
- WINDOW *_curscr; /* current screen */
- WINDOW *_newscr; /* virtual screen to be updated to */
- WINDOW *_stdscr; /* screen's full-window context */
-
- TRIES *_keytry; /* "Try" for use with keypad mode */
- TRIES *_key_ok; /* Disabled keys via keyok(,FALSE) */
- bool _tried; /* keypad mode was initialized */
- bool _keypad_on; /* keypad mode is currently on */
-
- bool _called_wgetch; /* check for recursion in wgetch() */
- 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? */
- NCURSES_CH_T *_current_attr; /* holds current attributes set */
- int _coloron; /* is color enabled? */
- int _color_defs; /* are colors modified */
- int _cursor; /* visibility of the cursor */
- int _cursrow; /* physical cursor row */
- int _curscol; /* physical cursor column */
- bool _notty; /* true if we cannot switch non-tty */
- 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? */
- struct _SLK *_slk; /* ptr to soft key struct / NULL */
- int slk_format; /* selected format for this screen */
- /* cursor movement costs; units are 10ths of milliseconds */
-#if NCURSES_NO_PADDING
- 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 */
- colorpair_t *_color_pairs; /* screen's color pair list */
- int _pair_count; /* count of color pairs */
-#if NCURSES_EXT_FUNCS
- bool _default_color; /* use default colors */
- bool _has_sgr_39_49; /* has ECMA default color support */
- int _default_fg; /* assumed default foreground */
- int _default_bg; /* assumed default background */
-#endif
- chtype _ok_attributes; /* valid attributes for terminal */
- chtype _xmc_suppress; /* attributes to suppress if xmc */
- chtype _xmc_triggers; /* attributes to process if xmc */
- chtype * _acs_map; /* the real alternate-charset map */
- bool * _screen_acs_map;
-
-
- /* 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.
- */
- bool _mouse_initialized;
- MouseType _mouse_type;
- 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 */
- bool _mouse_active; /* true if initialized */
- mmask_t _mouse_mask;
- NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */
- MEVENT _mouse_events[EV_MAX]; /* hold the last mouse event seen */
- MEVENT *_mouse_eventp; /* next free slot in event queue */
-
-#if USE_GPM_SUPPORT
- bool _mouse_gpm_loaded;
- bool _mouse_gpm_found;
-#ifdef HAVE_LIBDL
- TYPE_gpm_fd _mouse_gpm_fd;
- TYPE_Gpm_Open _mouse_Gpm_Open;
- TYPE_Gpm_Close _mouse_Gpm_Close;
- TYPE_Gpm_GetEvent _mouse_Gpm_GetEvent;
-#endif
- Gpm_Connect _mouse_gpm_connect;
-#endif /* USE_GPM_SUPPORT */
-
-#if USE_EMX_MOUSE
- int _emxmouse_wfd;
- int _emxmouse_thread;
- int _emxmouse_activated;
- char _emxmouse_buttons[4];
-#endif
-
-#if USE_SYSMOUSE
- MEVENT _sysmouse_fifo[FIFO_SIZE];
- int _sysmouse_head;
- int _sysmouse_tail;
- int _sysmouse_char_width; /* character width */
- int _sysmouse_char_height; /* character height */
- int _sysmouse_old_buttons;
- int _sysmouse_new_buttons;
-#endif
-
- /*
- * 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;
-
- bool _sig_winch;
- SCREEN *_next_screen;
-
- /* hashes for old and new lines */
- unsigned long *oldhash, *newhash;
- HASHMAP *hashtab;
- int hashtab_len;
- int *_oldnum_list;
- int _oldnum_size;
-
- bool _cleanup; /* cleanup after int/quit signal */
- int (*_outch)(int); /* output handler if not putc */
-
- int _legacy_coding; /* see use_legacy_coding() */
-
-#if USE_REENTRANT
- char _ttytype[NAMESIZE];
- int _ESCDELAY;
- int _TABSIZE;
- int _LINES;
- int _COLS;
-#ifdef TRACE
- long _outchars;
- const char *_tputs_trace;
-#endif
-#endif
- /*
- * ncurses/ncursesw are the same up to this point.
- */
-#if USE_WIDEC_SUPPORT
- /* recent versions of 'screen' have partially-working support for
- * UTF-8, but do not permit ACS at the same time (see tty_update.c).
- */
- bool _screen_acs_fix;
-#endif
-};
-
-extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
-extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
-
- WINDOWLIST {
- WINDOW win; /* first, so WINDOW_EXT() works */
- WINDOWLIST *next;
-#ifdef _XOPEN_SOURCE_EXTENDED
- char addch_work[(MB_LEN_MAX * 9) + 1];
- unsigned addch_used; /* number of bytes in addch_work[] */
- int addch_x; /* x-position for addch_work[] */
- int addch_y; /* y-position for addch_work[] */
-#endif
-#ifdef USE_PTHREADS
- pthread_mutex_t mutex_use_window;
-#endif
-};
-
-#define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field)
-
-/* usually in <limits.h> */
-#ifndef UCHAR_MAX
-#define UCHAR_MAX 255
-#endif
-
-/* The terminfo source is assumed to be 7-bit ASCII */
-#define is7bits(c) ((unsigned)(c) < 128)
-
-/* Checks for isprint() should be done on 8-bit characters (non-wide) */
-#define is8bits(c) ((unsigned)(c) <= UCHAR_MAX)
-
-#ifndef min
-#define min(a,b) ((a) > (b) ? (b) : (a))
-#endif
-
-#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
-
-#ifdef TRACE
-#if USE_REENTRANT
-#define COUNT_OUTCHARS(n) _nc_count_outchars(n);
-#else
-#define COUNT_OUTCHARS(n) _nc_outchars += (n);
-#endif
-#else
-#define COUNT_OUTCHARS(n) /* nothing */
-#endif
-
-#define RESET_OUTCHARS() COUNT_OUTCHARS(-_nc_outchars)
-
-#define UChar(c) ((unsigned char)(c))
-#define ChCharOf(c) ((c) & (chtype)A_CHARTEXT)
-#define ChAttrOf(c) ((c) & (chtype)A_ATTRIBUTES)
-
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
-#if USE_WIDEC_SUPPORT /* { */
-#define isEILSEQ(status) (((size_t)status == (size_t)-1) && (errno == EILSEQ))
-
-#define init_mb(state) memset(&state, 0, sizeof(state))
-
-#if NCURSES_EXT_COLORS
-#define NulColor , 0
-#else
-#define NulColor /* nothing */
-#endif
-
-#define NulChar 0,0,0,0 /* FIXME: see CCHARW_MAX */
-#define CharOf(c) ((c).chars[0])
-#define AttrOf(c) ((c).attr)
-
-#define AddAttr(c,a) AttrOf(c) |= ((a) & A_ATTRIBUTES)
-#define RemAttr(c,a) AttrOf(c) &= ~((a) & A_ATTRIBUTES)
-#define SetAttr(c,a) AttrOf(c) = ((a) & A_ATTRIBUTES) | WidecExt(c)
-
-#define NewChar2(c,a) { a, { c, NulChar } NulColor }
-#define NewChar(ch) NewChar2(ChCharOf(ch), ChAttrOf(ch))
-
-#if CCHARW_MAX == 5
-#define CharEq(a,b) (((a).attr == (b).attr) \
- && (a).chars[0] == (b).chars[0] \
- && (a).chars[1] == (b).chars[1] \
- && (a).chars[2] == (b).chars[2] \
- && (a).chars[3] == (b).chars[3] \
- && (a).chars[4] == (b).chars[4] \
- if_EXT_COLORS(&& (a).ext_color == (b).ext_color))
-#else
-#define CharEq(a,b) (!memcmp(&(a), &(b), sizeof(a)))
-#endif
-
-#define SetChar(ch,c,a) do { \
- NCURSES_CH_T *_cp = &ch; \
- memset(_cp, 0, sizeof(ch)); \
- _cp->chars[0] = (c); \
- _cp->attr = (a); \
- if_EXT_COLORS(SetPair(ch, PAIR_NUMBER(a))); \
- } while (0)
-#define CHREF(wch) (&wch)
-#define CHDEREF(wch) (*wch)
-#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_INIT init_mb (PUT_st)
-#define PUTC(ch,b) do { if(!isWidecExt(ch)) { \
- if (Charable(ch)) { \
- fputc(CharOf(ch), b); \
- COUNT_OUTCHARS(1); \
- } else { \
- PUTC_INIT; \
- for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) { \
- PUTC_ch = (ch).chars[PUTC_i]; \
- if (PUTC_ch == L'\0') \
- break; \
- PUTC_n = wcrtomb(PUTC_buf, \
- (ch).chars[PUTC_i], &PUT_st); \
- if (PUTC_n <= 0) { \
- if (PUTC_ch && is8bits(PUTC_ch) && PUTC_i == 0) \
- putc(PUTC_ch,b); \
- break; \
- } \
- fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b); \
- } \
- COUNT_OUTCHARS(PUTC_i); \
- } } } while (0)
-
-#define BLANK NewChar2(' ', WA_NORMAL)
-#define ZEROS NewChar2('\0', WA_NORMAL)
-#define ISBLANK(ch) ((ch).chars[0] == L' ' && (ch).chars[1] == L'\0')
-
- /*
- * Wide characters cannot be represented in the A_CHARTEXT mask of
- * attr_t's but an application might have set a narrow character there.
- * But even in that case, it would only be a printable character, or
- * zero. Otherwise we can use those bits to tell if a cell is the
- * first or extension part of a wide character.
- */
-#define WidecExt(ch) (AttrOf(ch) & A_CHARTEXT)
-#define isWidecBase(ch) (WidecExt(ch) == 1)
-#define isWidecExt(ch) (WidecExt(ch) > 1 && WidecExt(ch) < 32)
-#define SetWidecExt(dst, ext) AttrOf(dst) &= ~A_CHARTEXT, \
- AttrOf(dst) |= (ext + 1)
-
-#define if_WIDEC(code) code
-#define Charable(ch) ((SP != 0 && SP->_legacy_coding) \
- || (AttrOf(ch) & A_ALTCHARSET) \
- || (!isWidecExt(ch) && \
- (ch).chars[1] == L'\0' && \
- _nc_is_charable(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(ch,b) do { data = CharOf(ch); putc(data,b); } while (0)
-
-#define BLANK (' '|A_NORMAL)
-#define ZEROS ('\0'|A_NORMAL)
-#define ISBLANK(ch) (CharOf(ch) == ' ')
-
-#define isWidecExt(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 LEGALYX(w, y, x) \
- ((w) != 0 && \
- ((x) >= 0 && (x) <= (w)->_maxx && \
- (y) >= 0 && (y) <= (w)->_maxy))
-
-#define CHANGED_CELL(line,col) \
- if (line->firstchar == _NOCHANGE) \
- line->firstchar = line->lastchar = col; \
- 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>
-
-/*
- * TTY bit definition for converting tabs to spaces.
- */
-#ifdef TAB3
-# define OFLAGS_TABS TAB3 /* POSIX specifies TAB3 */
-#else
-# ifdef XTABS
-# define OFLAGS_TABS XTABS /* XTABS is usually the "same" */
-# else
-# ifdef OXTABS
-# define OFLAGS_TABS OXTABS /* the traditional BSD equivalent */
-# else
-# define OFLAGS_TABS 0
-# endif
-# endif
-#endif
-
-/*
- * Standardize/simplify common loops
- */
-#define each_screen(p) p = _nc_screen_chain; p != 0; p = (p)->_next_screen
-#define each_window(p) p = _nc_windows; p != 0; p = (p)->next
-#define each_ripoff(p) p = ripoff_stack; (p - ripoff_stack) < N_RIPS; ++p
-
-/*
- * 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
-
-#if USE_REENTRANT
-#define TPUTS_TRACE(s) _nc_set_tputs_trace(s);
-#else
-#define TPUTS_TRACE(s) _nc_tputs_trace = s;
-#endif
-
-#define START_TRACE() \
- if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \
- int t = _nc_getenv_num("NCURSES_TRACE"); \
- if (t >= 0) \
- trace((unsigned) t); \
- }
-
-/*
- * Many of the _tracef() calls use static buffers; lock the trace state before
- * trying to fill them.
- */
-#if USE_REENTRANT
-#define USE_TRACEF(mask) _nc_use_tracef(mask)
-extern NCURSES_EXPORT(int) _nc_use_tracef (unsigned);
-extern NCURSES_EXPORT(void) _nc_locked_tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
-#else
-#define USE_TRACEF(mask) (_nc_tracing & (mask))
-#define _nc_locked_tracef _tracef
-#endif
-
-#define TR(n, a) if (USE_TRACEF(n)) _nc_locked_tracef a
-#define T(a) TR(TRACE_CALLS, a)
-#define TRACE_RETURN(value,type) return _nc_retrace_##type(value)
-
-#define returnAttr(code) TRACE_RETURN(code,attr_t)
-#define returnBits(code) TRACE_RETURN(code,unsigned)
-#define returnBool(code) TRACE_RETURN(code,bool)
-#define returnCPtr(code) TRACE_RETURN(code,cptr)
-#define returnCVoidPtr(code) TRACE_RETURN(code,cvoid_ptr)
-#define returnChar(code) TRACE_RETURN(code,chtype)
-#define returnCode(code) TRACE_RETURN(code,int)
-#define returnPtr(code) TRACE_RETURN(code,ptr)
-#define returnSP(code) TRACE_RETURN(code,sp)
-#define returnVoid T((T_RETURN(""))); return
-#define returnVoidPtr(code) TRACE_RETURN(code,void_ptr)
-#define returnWin(code) TRACE_RETURN(code,win)
-
-extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (NCURSES_BOOL);
-extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *);
-extern NCURSES_EXPORT(SCREEN *) _nc_retrace_sp (SCREEN *);
-extern NCURSES_EXPORT(WINDOW *) _nc_retrace_win (WINDOW *);
-extern NCURSES_EXPORT(attr_t) _nc_retrace_attr_t (attr_t);
-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(const char *) _nc_retrace_cptr (const char *);
-extern NCURSES_EXPORT(int) _nc_retrace_int (int);
-extern NCURSES_EXPORT(unsigned) _nc_retrace_unsigned (unsigned);
-extern NCURSES_EXPORT(void *) _nc_retrace_void_ptr (void *);
-extern NCURSES_EXPORT(void) _nc_fifo_dump (SCREEN *);
-
-#if USE_REENTRANT
-NCURSES_WRAPPED_VAR(long, _nc_outchars);
-NCURSES_WRAPPED_VAR(const char *, _nc_tputs_trace);
-#define _nc_outchars NCURSES_PUBLIC_VAR(_nc_outchars())
-#define _nc_tputs_trace NCURSES_PUBLIC_VAR(_nc_tputs_trace())
-extern NCURSES_EXPORT(void) _nc_set_tputs_trace (const char *);
-extern NCURSES_EXPORT(void) _nc_count_outchars (long);
-#else
-extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
-extern NCURSES_EXPORT_VAR(long) _nc_outchars;
-#endif
-
-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);
-#endif
-
-extern NCURSES_EXPORT(const char *) _nc_viscbuf2 (int, const NCURSES_CH_T *, int);
-extern NCURSES_EXPORT(const char *) _nc_viscbuf (const NCURSES_CH_T *, int);
-
-#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 returnCPtr(code) return code
-#define returnCVoidPtr(code) return code
-#define returnChar(code) return code
-#define returnCode(code) return code
-#define returnPtr(code) return code
-#define returnSP(code) return code
-#define returnVoid return
-#define returnVoidPtr(code) return code
-#define returnWin(code) return code
-
-#endif /* TRACE/!TRACE */
-
-/*
- * Return-codes for tgetent() and friends.
- */
-#define TGETENT_YES 1 /* entry is found */
-#define TGETENT_NO 0 /* entry is not found */
-#define TGETENT_ERR -1 /* an error occurred */
-
-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 NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK)
-#define XMC_CHANGES(c) ((c) & SP->_xmc_suppress)
-
-#define toggle_attr_on(S,at) {\
- if (PAIR_NUMBER(at) > 0) {\
- (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 (PAIR_NUMBER(at) > 0) {\
- (S) &= ~(at|A_COLOR);\
- } else {\
- (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 + SP->_ip_cost) * count) \
- : INFINITY)))
-
-#if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (!SameAttrOf(SCREEN_ATTRS(SP), c)) { \
- attr_t chg = AttrOf(SCREEN_ATTRS(SP)); \
- VIDATTR(AttrOf(c), GetPair(c)); \
- if (magic_cookie_glitch > 0 \
- && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(SP))))) { \
- T(("%s @%d before glitch %d,%d", \
- __FILE__, __LINE__, \
- SP->_cursrow, \
- SP->_curscol)); \
- _nc_do_xmc_glitch(chg); \
- } \
- }
-#else
-#define UpdateAttrs(c) if (!SameAttrOf(SCREEN_ATTRS(SP), c)) \
- VIDATTR(AttrOf(c), GetPair(c));
-#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 (NCURSES_CH_T);
-
-#else
-
-extern NCURSES_EXPORT(void) _nc_expanded (void);
-
-#endif
-
-#if !HAVE_GETCWD
-#define getcwd(buf,len) getwd(buf)
-#endif
-
-/* charable.c */
-#if USE_WIDEC_SUPPORT
-extern NCURSES_EXPORT(bool) _nc_is_charable(wchar_t);
-extern NCURSES_EXPORT(int) _nc_to_char(wint_t);
-extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int);
-#endif
-
-/* comp_captab.c */
-typedef struct {
- short nte_name; /* offset of 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 */
-} name_table_data;
-
-typedef struct
-{
- short from;
- short to;
- short source;
-} alias_table_data;
-
-/* 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_addch.c */
-#if USE_WIDEC_SUPPORT
-NCURSES_EXPORT(int) _nc_build_wch(WINDOW *win, ARG_CH_T ch);
-#endif
-
-/* lib_addstr.c */
-#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
-extern NCURSES_EXPORT(int) _nc_wchstrlen(const cchar_t *);
-#endif
-
-/* 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_insch.c */
-extern NCURSES_EXPORT(int) _nc_insert_ch(WINDOW *, chtype);
-
-/* 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 */
-#define BAUDBYTE 9 /* 9 = 7 bits + 1 parity + 1 stop */
-
-/* lib_setup.c */
-extern NCURSES_EXPORT(char *) _nc_get_locale(void);
-extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
-extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void);
-extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
-extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *);
-
-/* lib_tstp.c */
-#if USE_SIGWINCH
-extern NCURSES_EXPORT(int) _nc_handle_sigwinch(SCREEN *);
-#else
-#define _nc_handle_sigwinch(a) /* nothing */
-#endif
-
-/* lib_ungetch.c */
-extern NCURSES_EXPORT(int) _nc_ungetch (SCREEN *, int);
-
-/* lib_wacs.c */
-#if USE_WIDEC_SUPPORT
-extern NCURSES_EXPORT(void) _nc_init_wacs(void);
-#endif
-
-typedef struct {
- char *s_head; /* beginning of the string (may be null) */
- char *s_tail; /* end of the string (may be null) */
- size_t s_size; /* current remaining size available */
- size_t s_init; /* total size available */
-} 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 *);
-
-#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(int) _nc_add_to_try (TRIES **, const char *, unsigned);
-extern NCURSES_EXPORT(char *) _nc_expand_try (TRIES *, unsigned, int *, size_t);
-extern NCURSES_EXPORT(int) _nc_remove_key (TRIES **, unsigned);
-extern NCURSES_EXPORT(int) _nc_remove_string (TRIES **, const char *);
-
-/* elsewhere ... */
-extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry(ENTRY *, TERMTYPE *);
-extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
-extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
-extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *);
-extern NCURSES_EXPORT(int) _nc_access (const char *, int);
-extern NCURSES_EXPORT(int) _nc_baudrate (int);
-extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);
-extern NCURSES_EXPORT(int) _nc_getenv_num (const char *);
-extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, bool);
-extern NCURSES_EXPORT(int) _nc_ospeed (int);
-extern NCURSES_EXPORT(int) _nc_outch (int);
-extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);
-extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, bool, int);
-extern NCURSES_EXPORT(int) _nc_timed_wait(SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
-extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, int (*)(int));
-extern NCURSES_EXPORT(void) _nc_flush (void);
-extern NCURSES_EXPORT(void) _nc_free_entry(ENTRY *, TERMTYPE *);
-extern NCURSES_EXPORT(void) _nc_freeall (void);
-extern NCURSES_EXPORT(void) _nc_hash_map (void);
-extern NCURSES_EXPORT(void) _nc_init_keytry (SCREEN *);
-extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *);
-extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);
-extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot);
-extern NCURSES_EXPORT(void) _nc_scroll_optimize (void);
-extern NCURSES_EXPORT(void) _nc_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 (TRIES *);
-
-#if NO_LEAKS
-extern NCURSES_EXPORT(void) _nc_alloc_entry_leaks(void);
-extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);
-extern NCURSES_EXPORT(void) _nc_codes_leaks(void);
-extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void);
-extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
-extern NCURSES_EXPORT(void) _nc_keyname_leaks(void);
-extern NCURSES_EXPORT(void) _nc_names_leaks(void);
-extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void);
-#endif
-
-#ifndef USE_TERMLIB
-extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
-extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);
-extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, NCURSES_SIZE_T const, NCURSES_SIZE_T const, NCURSES_CH_T);
-#endif
-
-#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
-extern NCURSES_EXPORT(size_t) _nc_wcrtomb (char *, wchar_t, mbstate_t *);
-#endif
-
-#if USE_SIZECHANGE
-extern NCURSES_EXPORT(void) _nc_update_screensize (SCREEN *);
-#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) _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(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/contrib/ncurses/ncurses/fifo_defs.h b/contrib/ncurses/ncurses/fifo_defs.h
deleted file mode 100644
index 9655b417d6e7..000000000000
--- a/contrib/ncurses/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: fifo_defs.h,v 1.5 2008/05/03 20:08:16 tom Exp $
- */
-
-#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(sp);}
-#define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;}
-
-#define cooked_key_in_fifo() ((head != -1) && (peek != head))
-#define raw_key_in_fifo() ((head != -1) && (peek != tail))
-
-#undef HIDE_EINTR
-
-#endif /* FIFO_DEFS_H */
diff --git a/contrib/ncurses/ncurses/llib-lncurses b/contrib/ncurses/ncurses/llib-lncurses
deleted file mode 100644
index bca3288b9df8..000000000000
--- a/contrib/ncurses/ncurses/llib-lncurses
+++ /dev/null
@@ -1,3359 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-2007 *
- ****************************************************************************/
-/* 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>
-
-#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 _nc_reset_colors
-NCURSES_BOOL _nc_reset_colors(void)
- { return(*(NCURSES_BOOL *)0); }
-
-#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(
- short old_pair,
- short 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,
- const 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 getattrs
-int getattrs(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getcurx
-int getcurx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getcury
-int getcury(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getbegx
-int getbegx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getbegy
-int getbegy(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getmaxx
-int getmaxx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getmaxy
-int getmaxy(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getparx
-int getparx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getpary
-int getpary(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef wgetparent
-WINDOW *wgetparent(
- const WINDOW *z)
- { return(*(WINDOW **)0); }
-
-#undef is_cleared
-NCURSES_BOOL is_cleared(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_idcok
-NCURSES_BOOL is_idcok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_idlok
-NCURSES_BOOL is_idlok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_immedok
-NCURSES_BOOL is_immedok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_keypad
-NCURSES_BOOL is_keypad(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_leaveok
-NCURSES_BOOL is_leaveok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_nodelay
-NCURSES_BOOL is_nodelay(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_notimeout
-NCURSES_BOOL is_notimeout(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_scrollok
-NCURSES_BOOL is_scrollok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_syncok
-NCURSES_BOOL is_syncok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef wgetscrreg
-int wgetscrreg(
- const WINDOW *a1,
- int *a2,
- int *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 _nc_insert_ch
-int _nc_insert_ch(
- WINDOW *win,
- chtype ch)
- { return(*(int *)0); }
-
-#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_insnstr.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 nofilter
-void nofilter(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(
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef wprintw
-int wprintw(
- WINDOW *win,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvprintw
-int mvprintw(
- int y,
- int x,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvwprintw
-int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef vwprintw
-int vwprintw(
- WINDOW *win,
- const 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(
- int slines,
- int scolumns,
- FILE *output,
- NCURSES_BOOL filtered,
- int slk_format)
- { 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_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_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/vsscanf.c */
-
-#undef _nc_vsscanf
-void _nc_vsscanf(void)
- { /* void */ }
-
-/* ./base/lib_freeall.c */
-
-#include <term_entry.h>
-
-#undef _nc_freeall
-void _nc_freeall(void)
- { /* void */ }
-
-/* ./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/legacy_coding.c */
-
-#undef use_legacy_coding
-int use_legacy_coding(
- int level)
- { 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); }
-
-/* ./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/wresize.c */
-
-#undef wresize
-int wresize(
- WINDOW *win,
- int ToLines,
- int ToCols)
- { return(*(int *)0); }
-
-/* ./tinfo/access.c */
-
-#include <sys/stat.h>
-#include <nc_alloc.h>
-
-#undef _nc_rootname
-char *_nc_rootname(
- char *path)
- { return(*(char **)0); }
-
-#undef _nc_is_abs_path
-NCURSES_BOOL _nc_is_abs_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_pathlast
-unsigned _nc_pathlast(
- const char *path)
- { return(*(unsigned *)0); }
-
-#undef _nc_basename
-char *_nc_basename(
- char *path)
- { return(*(char **)0); }
-
-#undef _nc_access
-int _nc_access(
- const char *path,
- int mode)
- { return(*(int *)0); }
-
-#undef _nc_is_dir_path
-NCURSES_BOOL _nc_is_dir_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_is_file_path
-NCURSES_BOOL _nc_is_file_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_env_access
-int _nc_env_access(void)
- { return(*(int *)0); }
-
-/* ./tinfo/add_tries.c */
-
-#undef _nc_add_to_try
-int _nc_add_to_try(
- TRIES **tree,
- const char *str,
- unsigned code)
- { return(*(int *)0); }
-
-/* ./tinfo/alloc_ttype.c */
-
-#undef _nc_align_termtype
-void _nc_align_termtype(
- TERMTYPE *to,
- TERMTYPE *from)
- { /* void */ }
-
-#undef _nc_copy_termtype
-void _nc_copy_termtype(
- TERMTYPE *dst,
- TERMTYPE *src)
- { /* void */ }
-
-/* ./codes.c */
-
-#undef boolcodes
-char *const boolcodes[] = {0};
-#undef numcodes
-char *const numcodes[] = {0};
-#undef strcodes
-char *const strcodes[] = {0};
-
-/* ./tinfo/comp_error.c */
-#undef _nc_suppress_warnings
-NCURSES_BOOL _nc_suppress_warnings;
-#undef _nc_curr_line
-int _nc_curr_line;
-#undef _nc_curr_col
-int _nc_curr_col;
-
-#undef _nc_get_source
-const char *_nc_get_source(void)
- { return(*(const char **)0); }
-
-#undef _nc_set_source
-void _nc_set_source(
- const char *const name)
- { /* void */ }
-
-#undef _nc_set_type
-void _nc_set_type(
- const char *const name)
- { /* void */ }
-
-#undef _nc_get_type
-void _nc_get_type(
- char *name)
- { /* void */ }
-
-#undef _nc_warning
-void _nc_warning(
- const char *const fmt,
- ...)
- { /* void */ }
-
-#undef _nc_err_abort
-void _nc_err_abort(
- const char *const fmt,
- ...)
- { /* void */ }
-
-#undef _nc_syserr_abort
-void _nc_syserr_abort(
- const char *const fmt,
- ...)
- { /* void */ }
-
-/* ./tinfo/db_iterator.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_last_db
-void _nc_last_db(void)
- { /* void */ }
-
-#undef _nc_next_db
-const char *_nc_next_db(
- DBDIRS *state,
- int *offset)
- { return(*(const char **)0); }
-
-#undef _nc_first_db
-void _nc_first_db(
- DBDIRS *state,
- int *offset)
- { /* void */ }
-
-/* ./tinfo/doalloc.c */
-
-#undef _nc_doalloc
-void *_nc_doalloc(
- void *oldp,
- size_t amount)
- { return(*(void **)0); }
-
-/* ./tinfo/entries.c */
-
-#undef _nc_head
-ENTRY *_nc_head;
-#undef _nc_tail
-ENTRY *_nc_tail;
-
-#undef _nc_free_entry
-void _nc_free_entry(
- ENTRY *headp,
- TERMTYPE *tterm)
- { /* void */ }
-
-#undef _nc_free_entries
-void _nc_free_entries(
- ENTRY *headp)
- { /* void */ }
-
-#undef _nc_delink_entry
-ENTRY *_nc_delink_entry(
- ENTRY *headp,
- TERMTYPE *tterm)
- { return(*(ENTRY **)0); }
-
-#undef _nc_leaks_tinfo
-void _nc_leaks_tinfo(void)
- { /* void */ }
-
-/* ./fallback.c */
-
-#undef _nc_fallback
-const TERMTYPE *_nc_fallback(
- const char *name)
- { return(*(const TERMTYPE **)0); }
-
-/* ./tinfo/free_ttype.c */
-
-#undef _nc_free_termtype
-void _nc_free_termtype(
- TERMTYPE *ptr)
- { /* void */ }
-
-#undef _nc_user_definable
-NCURSES_BOOL _nc_user_definable;
-
-#undef use_extended_names
-int use_extended_names(
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
-/* ./tinfo/getenv_num.c */
-
-#undef _nc_getenv_num
-int _nc_getenv_num(
- const char *name)
- { return(*(int *)0); }
-
-/* ./tinfo/home_terminfo.c */
-
-#undef _nc_home_terminfo
-char *_nc_home_terminfo(void)
- { return(*(char **)0); }
-
-/* ./tinfo/init_keytry.c */
-
-#if 0
-
-#include <init_keytry.h>
-
-#undef _nc_tinfo_fkeys
-const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
-
-#endif
-
-#undef _nc_init_keytry
-void _nc_init_keytry(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;
-#undef _nc_globals
-NCURSES_GLOBALS _nc_globals;
-#undef _nc_prescreen
-NCURSES_PRESCREEN _nc_prescreen;
-
-/* ./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 */
-
-struct kn { short offset; int code; };
-
-#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 <locale.h>
-#include <sys/ioctl.h>
-#include <langinfo.h>
-
-#undef ttytype
-char ttytype[256];
-#undef LINES
-int LINES;
-#undef COLS
-int COLS;
-#undef TABSIZE
-int TABSIZE;
-
-#undef _nc_handle_sigwinch
-int _nc_handle_sigwinch(
- int update)
- { return(*(int *)0); }
-
-#undef use_env
-void use_env(
- NCURSES_BOOL f)
- { /* void */ }
-
-#undef _nc_get_screensize
-void _nc_get_screensize(
- int *linep,
- int *colp)
- { /* void */ }
-
-#undef _nc_update_screensize
-void _nc_update_screensize(void)
- { /* void */ }
-
-#undef _nc_get_locale
-char *_nc_get_locale(void)
- { return(*(char **)0); }
-
-#undef _nc_unicode_locale
-int _nc_unicode_locale(void)
- { return(*(int *)0); }
-
-#undef _nc_locale_breaks_acs
-int _nc_locale_breaks_acs(void)
- { return(*(int *)0); }
-
-#undef _nc_setupterm
-int _nc_setupterm(
- char *tname,
- int Filedes,
- int *errret,
- NCURSES_BOOL reuse)
- { return(*(int *)0); }
-
-#undef setupterm
-int setupterm(
- char *tname,
- int Filedes,
- 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 */
-
-#undef _nc_tparm_err
-int _nc_tparm_err;
-
-#undef _nc_tparm_analyze
-int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
- int *popcount)
- { return(*(int *)0); }
-
-#undef tparm
-char *tparm(
- char *string,
- ...)
- { return(*(char **)0); }
-
-/* ./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_bool
-NCURSES_BOOL _nc_retrace_bool(
- NCURSES_BOOL code)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_retrace_int
-int _nc_retrace_int(
- int code)
- { return(*(int *)0); }
-
-#undef _nc_retrace_unsigned
-unsigned _nc_retrace_unsigned(
- unsigned code)
- { return(*(unsigned *)0); }
-
-#undef _nc_retrace_ptr
-char *_nc_retrace_ptr(
- char *code)
- { return(*(char **)0); }
-
-#undef _nc_retrace_cptr
-const char *_nc_retrace_cptr(
- const char *code)
- { return(*(const char **)0); }
-
-#undef _nc_retrace_cvoid_ptr
-void *_nc_retrace_cvoid_ptr(
- void *code)
- { return(*(void **)0); }
-
-#undef _nc_retrace_void_ptr
-void *_nc_retrace_void_ptr(
- void *code)
- { return(*(void **)0); }
-
-#undef _nc_retrace_sp
-SCREEN *_nc_retrace_sp(
- SCREEN *code)
- { return(*(SCREEN **)0); }
-
-#undef _nc_retrace_win
-WINDOW *_nc_retrace_win(
- WINDOW *code)
- { return(*(WINDOW **)0); }
-
-/* ./trace/lib_traceatr.c */
-
-#undef _traceattr2
-char *_traceattr2(
- int bufnum,
- chtype newmode)
- { return(*(char **)0); }
-
-#undef _traceattr
-char *_traceattr(
- attr_t newmode)
- { return(*(char **)0); }
-
-#undef _nc_retrace_attr_t
-attr_t _nc_retrace_attr_t(
- attr_t code)
- { return(*(attr_t *)0); }
-
-#undef _nc_altcharset_name
-const char *_nc_altcharset_name(
- attr_t attr,
- chtype ch)
- { return(*(const char **)0); }
-
-#undef _tracechtype2
-char *_tracechtype2(
- int bufnum,
- chtype ch)
- { return(*(char **)0); }
-
-#undef _tracechtype
-char *_tracechtype(
- chtype ch)
- { return(*(char **)0); }
-
-#undef _nc_retrace_chtype
-chtype _nc_retrace_chtype(
- chtype code)
- { return(*(chtype *)0); }
-
-/* ./trace/lib_tracebits.c */
-
-typedef struct {
- unsigned int val;
- const char *name;
-} BITNAMES;
-
-#undef _nc_trace_ttymode
-char *_nc_trace_ttymode(
- struct termios *tty)
- { return(*(char **)0); }
-
-#undef _nc_tracebits
-char *_nc_tracebits(void)
- { return(*(char **)0); }
-
-/* ./trace/lib_tracechr.c */
-
-#undef _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/read_entry.c */
-
-#include <hashed_db.h>
-
-#undef _nc_read_termtype
-int _nc_read_termtype(
- TERMTYPE *ptr,
- char *buffer,
- int limit)
- { return(*(int *)0); }
-
-#undef _nc_read_file_entry
-int _nc_read_file_entry(
- const char *const filename,
- TERMTYPE *ptr)
- { return(*(int *)0); }
-
-#undef _nc_read_entry
-int _nc_read_entry(
- const char *const name,
- char *const filename,
- TERMTYPE *const tp)
- { return(*(int *)0); }
-
-/* ./tinfo/read_termcap.c */
-
-#include <sys/types.h>
-
-#undef _nc_read_termcap_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 */
-
-#undef _nc_trace_buf
-char *_nc_trace_buf(
- int bufnum,
- size_t want)
- { return(*(char **)0); }
-
-#undef _nc_trace_bufcat
-char *_nc_trace_bufcat(
- int bufnum,
- const char *value)
- { return(*(char **)0); }
-
-/* ./trace/trace_tries.c */
-
-#undef _nc_trace_tries
-void _nc_trace_tries(
- TRIES *tree)
- { /* void */ }
-
-/* ./base/tries.c */
-
-#undef _nc_expand_try
-char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
- size_t len)
- { return(*(char **)0); }
-
-#undef _nc_remove_key
-int _nc_remove_key(
- TRIES **tree,
- unsigned code)
- { return(*(int *)0); }
-
-#undef _nc_remove_string
-int _nc_remove_string(
- TRIES **tree,
- const char *string)
- { return(*(int *)0); }
-
-/* ./tinfo/trim_sgr0.c */
-
-#undef _nc_trim_sgr0
-char *_nc_trim_sgr0(
- TERMTYPE *tp)
- { return(*(char **)0); }
-
-/* ./unctrl.c */
-
-#undef unctrl
-char *unctrl(
- chtype ch)
- { return(*(char **)0); }
-
-/* ./trace/visbuf.c */
-
-#undef _nc_visbuf2
-const char *_nc_visbuf2(
- int bufnum,
- const char *buf)
- { return(*(const char **)0); }
-
-#undef _nc_visbuf
-const char *_nc_visbuf(
- const char *buf)
- { return(*(const char **)0); }
-
-#undef _nc_visbufn
-const char *_nc_visbufn(
- const char *buf,
- int len)
- { return(*(const char **)0); }
-
-#undef _nc_viscbuf2
-const char *_nc_viscbuf2(
- int bufnum,
- const chtype *buf,
- int len)
- { return(*(const char **)0); }
-
-#undef _nc_viscbuf
-const char *_nc_viscbuf(
- const chtype *buf,
- int len)
- { return(*(const char **)0); }
-
-/* ./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/captoinfo.c */
-
-#undef _nc_captoinfo
-char *_nc_captoinfo(
- const char *cap,
- const char *s,
- int const parameterized)
- { return(*(char **)0); }
-
-#undef _nc_infotocap
-char *_nc_infotocap(
- const char *cap,
- const char *str,
- int const parameterized)
- { return(*(char **)0); }
-
-/* ./comp_captab.c */
-
-#include <hashsize.h>
-
-#undef _nc_get_table
-const struct name_table_entry *_nc_get_table(
- NCURSES_BOOL termcap)
- { return(*(const struct name_table_entry **)0); }
-
-#undef _nc_get_hash_table
-const short *_nc_get_hash_table(
- NCURSES_BOOL termcap)
- { return(*(const short **)0); }
-
-#undef _nc_get_alias_table
-const struct alias *_nc_get_alias_table(
- NCURSES_BOOL termcap)
- { return(*(const struct alias **)0); }
-
-/* ./tinfo/comp_expand.c */
-
-#undef _nc_tic_expand
-char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
- int numbers)
- { return(*(char **)0); }
-
-/* ./tinfo/comp_hash.c */
-
-#undef _nc_find_entry
-struct name_table_entry const *_nc_find_entry(
- const char *string,
- const short *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_termtype2
-void (*_nc_check_termtype2)(
- TERMTYPE *p1,
- NCURSES_BOOL p2);
-#undef _nc_check_termtype
-void (*_nc_check_termtype)(
- TERMTYPE *p1);
-
-#undef _nc_entry_match
-NCURSES_BOOL _nc_entry_match(
- char *n1,
- char *n2)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_read_entry_source
-void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
- NCURSES_BOOL (*hook)(
- ENTRY *p1))
- { /* void */ }
-
-#undef _nc_resolve_uses2
-int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
- NCURSES_BOOL literal)
- { return(*(int *)0); }
-
-#undef _nc_resolve_uses
-int _nc_resolve_uses(
- NCURSES_BOOL fullresolve)
- { return(*(int *)0); }
-
-/* ./tinfo/comp_scan.c */
-
-#undef _nc_syntax
-int _nc_syntax;
-#undef _nc_curr_file_pos
-long _nc_curr_file_pos;
-#undef _nc_comment_start
-long _nc_comment_start;
-#undef _nc_comment_end
-long _nc_comment_end;
-#undef _nc_start_line
-long _nc_start_line;
-#undef _nc_curr_token
-struct token _nc_curr_token;
-#undef _nc_disable_period
-NCURSES_BOOL _nc_disable_period;
-
-#undef _nc_reset_input
-void _nc_reset_input(
- FILE *fp,
- char *buf)
- { /* void */ }
-
-#undef _nc_get_token
-int _nc_get_token(
- NCURSES_BOOL silent)
- { return(*(int *)0); }
-
-#undef _nc_trans_string
-int _nc_trans_string(
- char *ptr,
- char *last)
- { return(*(int *)0); }
-
-#undef _nc_push_token
-void _nc_push_token(
- int tokclass)
- { /* void */ }
-
-#undef _nc_panic_mode
-void _nc_panic_mode(
- char ch)
- { /* void */ }
-
-/* ./tinfo/parse_entry.c */
-
-#undef _nc_parse_entry
-int _nc_parse_entry(
- struct entry *entryp,
- int literal,
- NCURSES_BOOL silent)
- { return(*(int *)0); }
-
-#undef _nc_capcmp
-int _nc_capcmp(
- const char *s,
- const char *t)
- { return(*(int *)0); }
-
-typedef struct {
- const char *from;
- const char *to;
-} assoc;
-
-/* ./tinfo/write_entry.c */
-
-#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); }
-
-/* ./base/define_key.c */
-
-#undef define_key
-int define_key(
- const char *str,
- int keycode)
- { return(*(int *)0); }
-
-/* ./tinfo/hashed_db.c */
-
-#undef _nc_hashed_db
-void _nc_hashed_db(void)
- { /* void */ }
-
-/* ./base/key_defined.c */
-
-#undef key_defined
-int key_defined(
- const char *str)
- { return(*(int *)0); }
-
-/* ./base/keybound.c */
-
-#undef keybound
-char *keybound(
- int code,
- int count)
- { return(*(char **)0); }
-
-/* ./base/keyok.c */
-
-#undef keyok
-int keyok(
- int c,
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
-/* ./base/version.c */
-
-#undef curses_version
-const char *curses_version(void)
- { return(*(const char **)0); }
diff --git a/contrib/ncurses/ncurses/llib-lncursest b/contrib/ncurses/ncurses/llib-lncursest
deleted file mode 100644
index 48acb8c51fa4..000000000000
--- a/contrib/ncurses/ncurses/llib-lncursest
+++ /dev/null
@@ -1,3493 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2008 *
- ****************************************************************************/
-/* 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>
-
-#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 _nc_COLOR_PAIRS
-int _nc_COLOR_PAIRS(void)
- { return(*(int *)0); }
-
-#undef _nc_COLORS
-int _nc_COLORS(void)
- { return(*(int *)0); }
-
-#undef _nc_reset_colors
-NCURSES_BOOL _nc_reset_colors(void)
- { return(*(NCURSES_BOOL *)0); }
-
-#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(
- short old_pair,
- short 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,
- const char *a2,
- va_list z)
- { return(*(int *)0); }
-
-#undef vw_scanw
-int vw_scanw(
- WINDOW *a1,
- const 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 getattrs
-int getattrs(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getcurx
-int getcurx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getcury
-int getcury(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getbegx
-int getbegx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getbegy
-int getbegy(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getmaxx
-int getmaxx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getmaxy
-int getmaxy(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getparx
-int getparx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getpary
-int getpary(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef wgetparent
-WINDOW *wgetparent(
- const WINDOW *z)
- { return(*(WINDOW **)0); }
-
-#undef is_cleared
-NCURSES_BOOL is_cleared(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_idcok
-NCURSES_BOOL is_idcok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_idlok
-NCURSES_BOOL is_idlok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_immedok
-NCURSES_BOOL is_immedok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_keypad
-NCURSES_BOOL is_keypad(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_leaveok
-NCURSES_BOOL is_leaveok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_nodelay
-NCURSES_BOOL is_nodelay(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_notimeout
-NCURSES_BOOL is_notimeout(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_scrollok
-NCURSES_BOOL is_scrollok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_syncok
-NCURSES_BOOL is_syncok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef wgetscrreg
-int wgetscrreg(
- const WINDOW *a1,
- int *a2,
- int *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 _nc_ESCDELAY
-int _nc_ESCDELAY(void)
- { return(*(int *)0); }
-
-#undef set_escdelay
-int set_escdelay(
- int value)
- { return(*(int *)0); }
-
-#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 _nc_insert_ch
-int _nc_insert_ch(
- WINDOW *win,
- chtype ch)
- { return(*(int *)0); }
-
-#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_insnstr.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 nofilter
-void nofilter(void)
- { /* void */ }
-
-#undef newterm
-SCREEN *newterm(
- const 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(
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef wprintw
-int wprintw(
- WINDOW *win,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvprintw
-int mvprintw(
- int y,
- int x,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvwprintw
-int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef vwprintw
-int vwprintw(
- WINDOW *win,
- const 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(
- const char *termp,
- int filenum,
- int *errret)
- { return(*(int *)0); }
-
-/* ./base/lib_scanw.c */
-
-#undef vwscanw
-int vwscanw(
- WINDOW *win,
- const char *fmt,
- va_list argp)
- { return(*(int *)0); }
-
-#undef scanw
-int scanw(
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef wscanw
-int wscanw(
- WINDOW *win,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvscanw
-int mvscanw(
- int y,
- int x,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvwscanw
-int mvwscanw(
- WINDOW *win,
- int y,
- int x,
- const 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,
- int const top,
- int 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(
- int slines,
- int scolumns,
- FILE *output,
- NCURSES_BOOL filtered,
- int slk_format)
- { 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_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_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 */ }
-
-/* ./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/vsscanf.c */
-
-#undef _nc_vsscanf
-void _nc_vsscanf(void)
- { /* void */ }
-
-/* ./base/lib_freeall.c */
-
-#include <term_entry.h>
-
-#undef _nc_freeall
-void _nc_freeall(void)
- { /* void */ }
-
-#undef _nc_free_and_exit
-void _nc_free_and_exit(
- int code)
- { /* void */ }
-
-/* ./expanded.c */
-
-#undef _nc_expanded
-void _nc_expanded(void)
- { /* void */ }
-
-/* ./base/legacy_coding.c */
-
-#undef use_legacy_coding
-int use_legacy_coding(
- int level)
- { 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); }
-
-/* ./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 */ }
-
-/* ./tinfo/use_screen.c */
-
-#undef use_screen
-int use_screen(
- SCREEN *screen,
- NCURSES_CALLBACK func,
- void *data)
- { return(*(int *)0); }
-
-/* ./base/use_window.c */
-
-#undef _nc_lock_window
-void _nc_lock_window(
- WINDOW *win)
- { /* void */ }
-
-#undef _nc_unlock_window
-void _nc_unlock_window(
- WINDOW *win)
- { /* void */ }
-
-#undef use_window
-int use_window(
- WINDOW *win,
- NCURSES_CALLBACK func,
- void *data)
- { return(*(int *)0); }
-
-/* ./base/wresize.c */
-
-#undef wresize
-int wresize(
- WINDOW *win,
- int ToLines,
- int ToCols)
- { return(*(int *)0); }
-
-/* ./tinfo/access.c */
-
-#include <sys/stat.h>
-#include <nc_alloc.h>
-
-#undef _nc_rootname
-char *_nc_rootname(
- char *path)
- { return(*(char **)0); }
-
-#undef _nc_is_abs_path
-NCURSES_BOOL _nc_is_abs_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_pathlast
-unsigned _nc_pathlast(
- const char *path)
- { return(*(unsigned *)0); }
-
-#undef _nc_basename
-char *_nc_basename(
- char *path)
- { return(*(char **)0); }
-
-#undef _nc_access
-int _nc_access(
- const char *path,
- int mode)
- { return(*(int *)0); }
-
-#undef _nc_is_dir_path
-NCURSES_BOOL _nc_is_dir_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_is_file_path
-NCURSES_BOOL _nc_is_file_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-/* ./tinfo/add_tries.c */
-
-#undef _nc_add_to_try
-int _nc_add_to_try(
- TRIES **tree,
- const char *str,
- unsigned code)
- { return(*(int *)0); }
-
-/* ./tinfo/alloc_ttype.c */
-
-#undef _nc_align_termtype
-void _nc_align_termtype(
- TERMTYPE *to,
- TERMTYPE *from)
- { /* void */ }
-
-#undef _nc_copy_termtype
-void _nc_copy_termtype(
- TERMTYPE *dst,
- TERMTYPE *src)
- { /* void */ }
-
-/* ./codes.c */
-
-#undef _nc_boolcodes
-const char *const *_nc_boolcodes(void)
- { return(*(const char **)0); }
-
-#undef _nc_numcodes
-const char *const *_nc_numcodes(void)
- { return(*(const char **)0); }
-
-#undef _nc_strcodes
-const char *const *_nc_strcodes(void)
- { return(*(const char **)0); }
-
-#undef _nc_codes_leaks
-void _nc_codes_leaks(void)
- { /* void */ }
-
-/* ./tinfo/comp_error.c */
-
-#undef _nc_suppress_warnings
-NCURSES_BOOL _nc_suppress_warnings;
-#undef _nc_curr_line
-int _nc_curr_line;
-#undef _nc_curr_col
-int _nc_curr_col;
-
-#undef _nc_get_source
-const char *_nc_get_source(void)
- { return(*(const char **)0); }
-
-#undef _nc_set_source
-void _nc_set_source(
- const char *const name)
- { /* void */ }
-
-#undef _nc_set_type
-void _nc_set_type(
- const char *const name)
- { /* void */ }
-
-#undef _nc_get_type
-void _nc_get_type(
- char *name)
- { /* void */ }
-
-#undef _nc_warning
-void _nc_warning(
- const char *const fmt,
- ...)
- { /* void */ }
-
-#undef _nc_err_abort
-void _nc_err_abort(
- const char *const fmt,
- ...)
- { /* void */ }
-
-#undef _nc_syserr_abort
-void _nc_syserr_abort(
- const char *const fmt,
- ...)
- { /* void */ }
-
-/* ./tinfo/db_iterator.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_last_db
-void _nc_last_db(void)
- { /* void */ }
-
-#undef _nc_next_db
-const char *_nc_next_db(
- DBDIRS *state,
- int *offset)
- { return(*(const char **)0); }
-
-#undef _nc_first_db
-void _nc_first_db(
- DBDIRS *state,
- int *offset)
- { /* void */ }
-
-/* ./tinfo/doalloc.c */
-
-#undef _nc_doalloc
-void *_nc_doalloc(
- void *oldp,
- size_t amount)
- { return(*(void **)0); }
-
-/* ./tinfo/entries.c */
-
-#undef _nc_head
-ENTRY *_nc_head;
-#undef _nc_tail
-ENTRY *_nc_tail;
-
-#undef _nc_free_entry
-void _nc_free_entry(
- ENTRY *headp,
- TERMTYPE *tterm)
- { /* void */ }
-
-#undef _nc_free_entries
-void _nc_free_entries(
- ENTRY *headp)
- { /* void */ }
-
-#undef _nc_delink_entry
-ENTRY *_nc_delink_entry(
- ENTRY *headp,
- TERMTYPE *tterm)
- { return(*(ENTRY **)0); }
-
-#undef _nc_leaks_tinfo
-void _nc_leaks_tinfo(void)
- { /* void */ }
-
-#undef _nc_free_tinfo
-void _nc_free_tinfo(
- int code)
- { /* void */ }
-
-/* ./fallback.c */
-
-#undef _nc_fallback
-const TERMTYPE *_nc_fallback(
- const char *name)
- { return(*(const TERMTYPE **)0); }
-
-/* ./tinfo/free_ttype.c */
-
-#undef _nc_free_termtype
-void _nc_free_termtype(
- TERMTYPE *ptr)
- { /* void */ }
-
-#undef _nc_user_definable
-NCURSES_BOOL _nc_user_definable;
-
-#undef use_extended_names
-int use_extended_names(
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
-/* ./tinfo/getenv_num.c */
-
-#undef _nc_getenv_num
-int _nc_getenv_num(
- const char *name)
- { return(*(int *)0); }
-
-/* ./tinfo/home_terminfo.c */
-
-#undef _nc_home_terminfo
-char *_nc_home_terminfo(void)
- { return(*(char **)0); }
-
-/* ./tinfo/init_keytry.c */
-
-#if 0
-
-#include <init_keytry.h>
-
-#undef _nc_tinfo_fkeys
-const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
-
-#endif
-
-#undef _nc_init_keytry
-void _nc_init_keytry(void)
- { /* void */ }
-
-/* ./tinfo/lib_acs.c */
-
-#undef _nc_acs_map
-chtype *_nc_acs_map(void)
- { return(*(chtype **)0); }
-
-#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 _nc_stdscr
-WINDOW *_nc_stdscr(void)
- { return(*(WINDOW **)0); }
-
-#undef _nc_curscr
-WINDOW *_nc_curscr(void)
- { return(*(WINDOW **)0); }
-
-#undef _nc_newscr
-WINDOW *_nc_newscr(void)
- { return(*(WINDOW **)0); }
-
-#undef _nc_screen_chain
-SCREEN *_nc_screen_chain;
-#undef SP
-SCREEN *SP;
-#undef _nc_globals
-NCURSES_GLOBALS _nc_globals;
-#undef _nc_prescreen
-NCURSES_PRESCREEN _nc_prescreen;
-
-#undef _nc_mutex_lock
-int _nc_mutex_lock(
- pthread_mutex_t *obj)
- { return(*(int *)0); }
-
-#undef _nc_mutex_trylock
-int _nc_mutex_trylock(
- pthread_mutex_t *obj)
- { return(*(int *)0); }
-
-#undef _nc_mutex_unlock
-int _nc_mutex_unlock(
- pthread_mutex_t *obj)
- { return(*(int *)0); }
-
-/* ./tinfo/lib_has_cap.c */
-
-#undef has_ic
-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 */
-
-struct kn { short offset; int code; };
-
-#undef keyname
-const char *keyname(
- int c)
- { return(*(const char **)0); }
-
-#undef _nc_keyname_leaks
-void _nc_keyname_leaks(void)
- { /* void */ }
-
-/* ./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 <locale.h>
-#include <sys/ioctl.h>
-#include <langinfo.h>
-
-#undef _nc_ttytype
-char *_nc_ttytype(void)
- { return(*(char **)0); }
-
-#undef _nc_LINES
-int _nc_LINES(void)
- { return(*(int *)0); }
-
-#undef _nc_COLS
-int _nc_COLS(void)
- { return(*(int *)0); }
-
-#undef _nc_TABSIZE
-int _nc_TABSIZE(void)
- { return(*(int *)0); }
-
-#undef set_tabsize
-int set_tabsize(
- int value)
- { return(*(int *)0); }
-
-#undef _nc_handle_sigwinch
-int _nc_handle_sigwinch(
- int update)
- { return(*(int *)0); }
-
-#undef use_env
-void use_env(
- NCURSES_BOOL f)
- { /* void */ }
-
-#undef _nc_get_screensize
-void _nc_get_screensize(
- int *linep,
- int *colp)
- { /* void */ }
-
-#undef _nc_update_screensize
-void _nc_update_screensize(void)
- { /* void */ }
-
-#undef _nc_get_locale
-char *_nc_get_locale(void)
- { return(*(char **)0); }
-
-#undef _nc_unicode_locale
-int _nc_unicode_locale(void)
- { return(*(int *)0); }
-
-#undef _nc_locale_breaks_acs
-int _nc_locale_breaks_acs(void)
- { return(*(int *)0); }
-
-#undef _nc_setupterm
-int _nc_setupterm(
- const char *tname,
- int Filedes,
- int *errret,
- NCURSES_BOOL reuse)
- { return(*(int *)0); }
-
-#undef setupterm
-int setupterm(
- const 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(
- const char *id)
- { return(*(int *)0); }
-
-#undef tgetnum
-int tgetnum(
- const char *id)
- { return(*(int *)0); }
-
-#undef tgetstr
-char *tgetstr(
- const char *id,
- char **area)
- { return(*(char **)0); }
-
-#undef _nc_tgetent_leaks
-void _nc_tgetent_leaks(void)
- { /* void */ }
-
-/* ./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(
- const char *str)
- { return(*(int *)0); }
-
-#undef tigetnum
-int tigetnum(
- const char *str)
- { return(*(int *)0); }
-
-#undef tigetstr
-char *tigetstr(
- const char *str)
- { return(*(char **)0); }
-
-/* ./tinfo/lib_tparm.c */
-
-#undef _nc_tparm_err
-int _nc_tparm_err;
-
-#undef _nc_free_tparm
-void _nc_free_tparm(void)
- { /* void */ }
-
-#undef _nc_tparm_analyze
-int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
- int *popcount)
- { return(*(int *)0); }
-
-#undef tparm
-char *tparm(
- const 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__nc_tputs_trace
-const char *_nc__nc_tputs_trace(void)
- { return(*(const char **)0); }
-
-#undef _nc__nc_outchars
-long _nc__nc_outchars(void)
- { return(*(long *)0); }
-
-#undef _nc_set_tputs_trace
-void _nc_set_tputs_trace(
- const char *s)
- { /* void */ }
-
-#undef _nc_count_outchars
-void _nc_count_outchars(
- long increment)
- { /* void */ }
-
-#undef trace
-void trace(
- const unsigned int tracelevel)
- { /* void */ }
-
-#undef _tracef
-void _tracef(
- const char *fmt,
- ...)
- { /* void */ }
-
-#undef _nc_retrace_bool
-NCURSES_BOOL _nc_retrace_bool(
- NCURSES_BOOL code)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_retrace_int
-int _nc_retrace_int(
- int code)
- { return(*(int *)0); }
-
-#undef _nc_retrace_unsigned
-unsigned _nc_retrace_unsigned(
- unsigned code)
- { return(*(unsigned *)0); }
-
-#undef _nc_retrace_ptr
-char *_nc_retrace_ptr(
- char *code)
- { return(*(char **)0); }
-
-#undef _nc_retrace_cptr
-const char *_nc_retrace_cptr(
- const char *code)
- { return(*(const char **)0); }
-
-#undef _nc_retrace_cvoid_ptr
-const void *_nc_retrace_cvoid_ptr(
- const void *code)
- { return(*(const void **)0); }
-
-#undef _nc_retrace_void_ptr
-void *_nc_retrace_void_ptr(
- void *code)
- { return(*(void **)0); }
-
-#undef _nc_retrace_sp
-SCREEN *_nc_retrace_sp(
- SCREEN *code)
- { return(*(SCREEN **)0); }
-
-#undef _nc_retrace_win
-WINDOW *_nc_retrace_win(
- WINDOW *code)
- { return(*(WINDOW **)0); }
-
-#undef _nc_use_tracef
-int _nc_use_tracef(
- unsigned mask)
- { return(*(int *)0); }
-
-#undef _nc_locked_tracef
-void _nc_locked_tracef(
- const char *fmt,
- ...)
- { /* void */ }
-
-/* ./trace/lib_traceatr.c */
-
-#undef _traceattr2
-char *_traceattr2(
- int bufnum,
- chtype newmode)
- { return(*(char **)0); }
-
-#undef _traceattr
-char *_traceattr(
- attr_t newmode)
- { return(*(char **)0); }
-
-#undef _nc_retrace_attr_t
-attr_t _nc_retrace_attr_t(
- attr_t code)
- { return(*(attr_t *)0); }
-
-#undef _nc_altcharset_name
-const char *_nc_altcharset_name(
- attr_t attr,
- chtype ch)
- { return(*(const char **)0); }
-
-#undef _tracechtype2
-char *_tracechtype2(
- int bufnum,
- chtype ch)
- { return(*(char **)0); }
-
-#undef _tracechtype
-char *_tracechtype(
- chtype ch)
- { return(*(char **)0); }
-
-#undef _nc_retrace_chtype
-chtype _nc_retrace_chtype(
- chtype code)
- { return(*(chtype *)0); }
-
-/* ./trace/lib_tracebits.c */
-
-typedef struct {
- unsigned int val;
- const char *name;
-} BITNAMES;
-
-#undef _nc_trace_ttymode
-char *_nc_trace_ttymode(
- struct termios *tty)
- { return(*(char **)0); }
-
-#undef _nc_tracebits
-char *_nc_tracebits(void)
- { return(*(char **)0); }
-
-/* ./trace/lib_tracechr.c */
-
-#undef _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 _nc_boolnames
-const char *const *_nc_boolnames(void)
- { return(*(const char **)0); }
-
-#undef _nc_boolfnames
-const char *const *_nc_boolfnames(void)
- { return(*(const char **)0); }
-
-#undef _nc_numnames
-const char *const *_nc_numnames(void)
- { return(*(const char **)0); }
-
-#undef _nc_numfnames
-const char *const *_nc_numfnames(void)
- { return(*(const char **)0); }
-
-#undef _nc_strnames
-const char *const *_nc_strnames(void)
- { return(*(const char **)0); }
-
-#undef _nc_strfnames
-const char *const *_nc_strfnames(void)
- { return(*(const char **)0); }
-
-#undef _nc_names_leaks
-void _nc_names_leaks(void)
- { /* void */ }
-
-/* ./tinfo/read_entry.c */
-
-#include <hashed_db.h>
-
-#undef _nc_read_termtype
-int _nc_read_termtype(
- TERMTYPE *ptr,
- char *buffer,
- int limit)
- { return(*(int *)0); }
-
-#undef _nc_read_file_entry
-int _nc_read_file_entry(
- const char *const filename,
- TERMTYPE *ptr)
- { return(*(int *)0); }
-
-#undef _nc_read_entry
-int _nc_read_entry(
- const char *const name,
- char *const filename,
- TERMTYPE *const tp)
- { return(*(int *)0); }
-
-/* ./tinfo/read_termcap.c */
-
-#include <sys/types.h>
-
-#undef _nc_read_termcap
-void _nc_read_termcap(void)
- { /* void */ }
-
-/* ./tinfo/setbuf.c */
-
-#undef _nc_set_buffer
-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 */
-
-#undef _nc_trace_buf
-char *_nc_trace_buf(
- int bufnum,
- size_t want)
- { return(*(char **)0); }
-
-#undef _nc_trace_bufcat
-char *_nc_trace_bufcat(
- int bufnum,
- const char *value)
- { return(*(char **)0); }
-
-/* ./trace/trace_tries.c */
-
-#undef _nc_trace_tries
-void _nc_trace_tries(
- TRIES *tree)
- { /* void */ }
-
-/* ./base/tries.c */
-
-#undef _nc_expand_try
-char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
- size_t len)
- { return(*(char **)0); }
-
-#undef _nc_remove_key
-int _nc_remove_key(
- TRIES **tree,
- unsigned code)
- { return(*(int *)0); }
-
-#undef _nc_remove_string
-int _nc_remove_string(
- TRIES **tree,
- const char *string)
- { return(*(int *)0); }
-
-/* ./tinfo/trim_sgr0.c */
-
-#undef _nc_trim_sgr0
-char *_nc_trim_sgr0(
- TERMTYPE *tp)
- { return(*(char **)0); }
-
-/* ./unctrl.c */
-
-#undef unctrl
-const char *unctrl(
- chtype ch)
- { return(*(const char **)0); }
-
-/* ./trace/visbuf.c */
-
-#undef _nc_visbuf2
-const char *_nc_visbuf2(
- int bufnum,
- const char *buf)
- { return(*(const char **)0); }
-
-#undef _nc_visbuf
-const char *_nc_visbuf(
- const char *buf)
- { return(*(const char **)0); }
-
-#undef _nc_visbufn
-const char *_nc_visbufn(
- const char *buf,
- int len)
- { return(*(const char **)0); }
-
-#undef _nc_viscbuf2
-const char *_nc_viscbuf2(
- int bufnum,
- const chtype *buf,
- int len)
- { return(*(const char **)0); }
-
-#undef _nc_viscbuf
-const char *_nc_viscbuf(
- const chtype *buf,
- int len)
- { return(*(const char **)0); }
-
-/* ./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 */ }
-
-#undef _nc_alloc_entry_leaks
-void _nc_alloc_entry_leaks(void)
- { /* void */ }
-
-/* ./tinfo/captoinfo.c */
-
-#undef _nc_captoinfo
-char *_nc_captoinfo(
- const char *cap,
- const char *s,
- int const parameterized)
- { return(*(char **)0); }
-
-#undef _nc_infotocap
-char *_nc_infotocap(
- const char *cap,
- const char *str,
- int const parameterized)
- { return(*(char **)0); }
-
-#undef _nc_captoinfo_leaks
-void _nc_captoinfo_leaks(void)
- { /* void */ }
-
-/* ./comp_captab.c */
-
-#include <hashsize.h>
-
-#undef _nc_get_table
-const struct name_table_entry *_nc_get_table(
- NCURSES_BOOL termcap)
- { return(*(const struct name_table_entry **)0); }
-
-#undef _nc_get_hash_table
-const short *_nc_get_hash_table(
- NCURSES_BOOL termcap)
- { return(*(const short **)0); }
-
-#undef _nc_get_alias_table
-const struct alias *_nc_get_alias_table(
- NCURSES_BOOL termcap)
- { return(*(const struct alias **)0); }
-
-#undef _nc_comp_captab_leaks
-void _nc_comp_captab_leaks(void)
- { /* 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 */
-
-#undef _nc_find_entry
-struct name_table_entry const *_nc_find_entry(
- const char *string,
- const short *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_termtype2
-void (*_nc_check_termtype2)(
- TERMTYPE *p1,
- NCURSES_BOOL p2);
-#undef _nc_check_termtype
-void (*_nc_check_termtype)(
- TERMTYPE *p1);
-
-#undef _nc_entry_match
-NCURSES_BOOL _nc_entry_match(
- char *n1,
- char *n2)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_read_entry_source
-void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
- NCURSES_BOOL (*hook)(
- ENTRY *p1))
- { /* void */ }
-
-#undef _nc_resolve_uses2
-int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
- NCURSES_BOOL literal)
- { return(*(int *)0); }
-
-#undef _nc_resolve_uses
-int _nc_resolve_uses(
- NCURSES_BOOL fullresolve)
- { return(*(int *)0); }
-
-#undef _nc_leaks_tic
-void _nc_leaks_tic(void)
- { /* void */ }
-
-#undef _nc_free_tic
-void _nc_free_tic(
- int code)
- { /* void */ }
-
-/* ./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_reset_input
-void _nc_reset_input(
- FILE *fp,
- char *buf)
- { /* void */ }
-
-#undef _nc_get_token
-int _nc_get_token(
- NCURSES_BOOL silent)
- { return(*(int *)0); }
-
-#undef _nc_trans_string
-int _nc_trans_string(
- char *ptr,
- char *last)
- { return(*(int *)0); }
-
-#undef _nc_push_token
-void _nc_push_token(
- int tokclass)
- { /* void */ }
-
-#undef _nc_panic_mode
-void _nc_panic_mode(
- char ch)
- { /* void */ }
-
-#undef _nc_comp_scan_leaks
-void _nc_comp_scan_leaks(void)
- { /* void */ }
-
-/* ./tinfo/parse_entry.c */
-
-#undef _nc_parse_entry
-int _nc_parse_entry(
- struct entry *entryp,
- int literal,
- NCURSES_BOOL silent)
- { return(*(int *)0); }
-
-#undef _nc_capcmp
-int _nc_capcmp(
- const char *s,
- const char *t)
- { return(*(int *)0); }
-
-typedef struct {
- const char *from;
- const char *to;
-} assoc;
-
-/* ./tinfo/write_entry.c */
-
-#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); }
-
-/* ./base/define_key.c */
-
-#undef define_key
-int define_key(
- const char *str,
- int keycode)
- { return(*(int *)0); }
-
-/* ./tinfo/hashed_db.c */
-
-#undef _nc_hashed_db
-void _nc_hashed_db(void)
- { /* void */ }
-
-/* ./base/key_defined.c */
-
-#undef key_defined
-int key_defined(
- const char *str)
- { return(*(int *)0); }
-
-/* ./base/keybound.c */
-
-#undef keybound
-char *keybound(
- int code,
- int count)
- { return(*(char **)0); }
-
-/* ./base/keyok.c */
-
-#undef keyok
-int keyok(
- int c,
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
-/* ./base/version.c */
-
-#undef curses_version
-const char *curses_version(void)
- { return(*(const char **)0); }
diff --git a/contrib/ncurses/ncurses/llib-lncursesw b/contrib/ncurses/ncurses/llib-lncursesw
deleted file mode 100644
index 12522e123c59..000000000000
--- a/contrib/ncurses/ncurses/llib-lncursesw
+++ /dev/null
@@ -1,4138 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2001-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-2006 *
- ****************************************************************************/
-/* 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>
-
-#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_build_wch
-int _nc_build_wch(
- WINDOW *win,
- cchar_t *ch)
- { return(*(int *)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); }
-
-/* ./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 *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 _nc_reset_colors
-NCURSES_BOOL _nc_reset_colors(void)
- { return(*(NCURSES_BOOL *)0); }
-
-#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(
- short old_pair,
- short 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,
- const 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 getattrs
-int getattrs(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getcurx
-int getcurx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getcury
-int getcury(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getbegx
-int getbegx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getbegy
-int getbegy(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getmaxx
-int getmaxx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getmaxy
-int getmaxy(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getparx
-int getparx(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef getpary
-int getpary(
- const WINDOW *z)
- { return(*(int *)0); }
-
-#undef wgetparent
-WINDOW *wgetparent(
- const WINDOW *z)
- { return(*(WINDOW **)0); }
-
-#undef is_cleared
-NCURSES_BOOL is_cleared(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_idcok
-NCURSES_BOOL is_idcok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_idlok
-NCURSES_BOOL is_idlok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_immedok
-NCURSES_BOOL is_immedok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_keypad
-NCURSES_BOOL is_keypad(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_leaveok
-NCURSES_BOOL is_leaveok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_nodelay
-NCURSES_BOOL is_nodelay(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_notimeout
-NCURSES_BOOL is_notimeout(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_scrollok
-NCURSES_BOOL is_scrollok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef is_syncok
-NCURSES_BOOL is_syncok(
- const WINDOW *z)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef wgetscrreg
-int wgetscrreg(
- const WINDOW *a1,
- int *a2,
- int *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 wgetbkgrnd
-int wgetbkgrnd(
- WINDOW *a1,
- cchar_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 _nc_insert_ch
-int _nc_insert_ch(
- WINDOW *win,
- chtype ch)
- { return(*(int *)0); }
-
-#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_insnstr.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 nofilter
-void nofilter(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(
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef wprintw
-int wprintw(
- WINDOW *win,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvprintw
-int mvprintw(
- int y,
- int x,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef mvwprintw
-int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
- ...)
- { return(*(int *)0); }
-
-#undef vwprintw
-int vwprintw(
- WINDOW *win,
- const 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(
- int slines,
- int scolumns,
- FILE *output,
- NCURSES_BOOL filtered,
- int slk_format)
- { 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 */
-
-#include <wctype.h>
-
-#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_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_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/vsscanf.c */
-
-#undef _nc_vsscanf
-void _nc_vsscanf(void)
- { /* void */ }
-
-/* ./base/lib_freeall.c */
-
-#include <term_entry.h>
-
-#undef _nc_freeall
-void _nc_freeall(void)
- { /* void */ }
-
-/* ./widechar/charable.c */
-
-#undef _nc_is_charable
-NCURSES_BOOL _nc_is_charable(
- wchar_t ch)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_to_char
-int _nc_to_char(
- wint_t ch)
- { return(*(int *)0); }
-
-#undef _nc_to_widechar
-wint_t _nc_to_widechar(
- int ch)
- { return(*(wint_t *)0); }
-
-/* ./widechar/lib_add_wch.c */
-
-#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); }
-
-/* ./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_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_wch.c */
-
-#undef wget_wch
-int wget_wch(
- WINDOW *win,
- wint_t *result)
- { 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_wch.c */
-
-#undef wins_wch
-int wins_wch(
- WINDOW *win,
- const cchar_t *wch)
- { return(*(int *)0); }
-
-#undef wins_nwstr
-int wins_nwstr(
- WINDOW *win,
- const wchar_t *wstr,
- int n)
- { 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_key_name.c */
-
-#undef key_name
-char *key_name(
- wchar_t c)
- { return(*(char **)0); }
-
-/* ./widechar/lib_pecho_wchar.c */
-
-#undef pecho_wchar
-int pecho_wchar(
- WINDOW *pad,
- const cchar_t *wch)
- { return(*(int *)0); }
-
-/* ./widechar/lib_slk_wset.c */
-
-#undef slk_wset
-int slk_wset(
- int i,
- const wchar_t *astr,
- int format)
- { return(*(int *)0); }
-
-/* ./widechar/lib_unget_wch.c */
-
-#undef _nc_wcrtomb
-size_t _nc_wcrtomb(
- char *target,
- wchar_t source,
- mbstate_t *state)
- { return(*(size_t *)0); }
-
-#undef unget_wch
-int unget_wch(
- const wchar_t wch)
- { 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); }
-
-/* ./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(
- cchar_t c)
- { /* void */ }
-
-/* ./base/legacy_coding.c */
-
-#undef use_legacy_coding
-int use_legacy_coding(
- int level)
- { 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); }
-
-/* ./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/wresize.c */
-
-#undef wresize
-int wresize(
- WINDOW *win,
- int ToLines,
- int ToCols)
- { return(*(int *)0); }
-
-/* ./tinfo/access.c */
-
-#include <sys/stat.h>
-#include <nc_alloc.h>
-
-#undef _nc_rootname
-char *_nc_rootname(
- char *path)
- { return(*(char **)0); }
-
-#undef _nc_is_abs_path
-NCURSES_BOOL _nc_is_abs_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_pathlast
-unsigned _nc_pathlast(
- const char *path)
- { return(*(unsigned *)0); }
-
-#undef _nc_basename
-char *_nc_basename(
- char *path)
- { return(*(char **)0); }
-
-#undef _nc_access
-int _nc_access(
- const char *path,
- int mode)
- { return(*(int *)0); }
-
-#undef _nc_is_dir_path
-NCURSES_BOOL _nc_is_dir_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_is_file_path
-NCURSES_BOOL _nc_is_file_path(
- const char *path)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_env_access
-int _nc_env_access(void)
- { return(*(int *)0); }
-
-/* ./tinfo/add_tries.c */
-
-#undef _nc_add_to_try
-int _nc_add_to_try(
- TRIES **tree,
- const char *str,
- unsigned code)
- { return(*(int *)0); }
-
-/* ./tinfo/alloc_ttype.c */
-
-#undef _nc_align_termtype
-void _nc_align_termtype(
- TERMTYPE *to,
- TERMTYPE *from)
- { /* void */ }
-
-#undef _nc_copy_termtype
-void _nc_copy_termtype(
- TERMTYPE *dst,
- TERMTYPE *src)
- { /* void */ }
-
-/* ./codes.c */
-
-#undef boolcodes
-char *const boolcodes[] = {0};
-#undef numcodes
-char *const numcodes[] = {0};
-#undef strcodes
-char *const strcodes[] = {0};
-
-/* ./tinfo/comp_error.c */
-#undef _nc_suppress_warnings
-NCURSES_BOOL _nc_suppress_warnings;
-#undef _nc_curr_line
-int _nc_curr_line;
-#undef _nc_curr_col
-int _nc_curr_col;
-
-#undef _nc_get_source
-const char *_nc_get_source(void)
- { return(*(const char **)0); }
-
-#undef _nc_set_source
-void _nc_set_source(
- const char *const name)
- { /* void */ }
-
-#undef _nc_set_type
-void _nc_set_type(
- const char *const name)
- { /* void */ }
-
-#undef _nc_get_type
-void _nc_get_type(
- char *name)
- { /* void */ }
-
-#undef _nc_warning
-void _nc_warning(
- const char *const fmt,
- ...)
- { /* void */ }
-
-#undef _nc_err_abort
-void _nc_err_abort(
- const char *const fmt,
- ...)
- { /* void */ }
-
-#undef _nc_syserr_abort
-void _nc_syserr_abort(
- const char *const fmt,
- ...)
- { /* void */ }
-
-/* ./tinfo/db_iterator.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_last_db
-void _nc_last_db(void)
- { /* void */ }
-
-#undef _nc_next_db
-const char *_nc_next_db(
- DBDIRS *state,
- int *offset)
- { return(*(const char **)0); }
-
-#undef _nc_first_db
-void _nc_first_db(
- DBDIRS *state,
- int *offset)
- { /* void */ }
-
-/* ./tinfo/doalloc.c */
-
-#undef _nc_doalloc
-void *_nc_doalloc(
- void *oldp,
- size_t amount)
- { return(*(void **)0); }
-
-/* ./tinfo/entries.c */
-
-#undef _nc_head
-ENTRY *_nc_head;
-#undef _nc_tail
-ENTRY *_nc_tail;
-
-#undef _nc_free_entry
-void _nc_free_entry(
- ENTRY *headp,
- TERMTYPE *tterm)
- { /* void */ }
-
-#undef _nc_free_entries
-void _nc_free_entries(
- ENTRY *headp)
- { /* void */ }
-
-#undef _nc_delink_entry
-ENTRY *_nc_delink_entry(
- ENTRY *headp,
- TERMTYPE *tterm)
- { return(*(ENTRY **)0); }
-
-#undef _nc_leaks_tinfo
-void _nc_leaks_tinfo(void)
- { /* void */ }
-
-/* ./fallback.c */
-
-#undef _nc_fallback
-const TERMTYPE *_nc_fallback(
- const char *name)
- { return(*(const TERMTYPE **)0); }
-
-/* ./tinfo/free_ttype.c */
-
-#undef _nc_free_termtype
-void _nc_free_termtype(
- TERMTYPE *ptr)
- { /* void */ }
-
-#undef _nc_user_definable
-NCURSES_BOOL _nc_user_definable;
-
-#undef use_extended_names
-int use_extended_names(
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
-/* ./tinfo/getenv_num.c */
-
-#undef _nc_getenv_num
-int _nc_getenv_num(
- const char *name)
- { return(*(int *)0); }
-
-/* ./tinfo/home_terminfo.c */
-
-#undef _nc_home_terminfo
-char *_nc_home_terminfo(void)
- { return(*(char **)0); }
-
-/* ./tinfo/init_keytry.c */
-
-#if 0
-
-#include <init_keytry.h>
-
-#undef _nc_tinfo_fkeys
-const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
-
-#endif
-
-#undef _nc_init_keytry
-void _nc_init_keytry(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;
-#undef _nc_globals
-NCURSES_GLOBALS _nc_globals;
-#undef _nc_prescreen
-NCURSES_PRESCREEN _nc_prescreen;
-
-/* ./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 */
-
-struct kn { short offset; int code; };
-
-#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 <locale.h>
-#include <sys/ioctl.h>
-#include <langinfo.h>
-
-#undef ttytype
-char ttytype[256];
-#undef LINES
-int LINES;
-#undef COLS
-int COLS;
-#undef TABSIZE
-int TABSIZE;
-
-#undef _nc_handle_sigwinch
-int _nc_handle_sigwinch(
- int update)
- { return(*(int *)0); }
-
-#undef use_env
-void use_env(
- NCURSES_BOOL f)
- { /* void */ }
-
-#undef _nc_get_screensize
-void _nc_get_screensize(
- int *linep,
- int *colp)
- { /* void */ }
-
-#undef _nc_update_screensize
-void _nc_update_screensize(void)
- { /* void */ }
-
-#undef _nc_get_locale
-char *_nc_get_locale(void)
- { return(*(char **)0); }
-
-#undef _nc_unicode_locale
-int _nc_unicode_locale(void)
- { return(*(int *)0); }
-
-#undef _nc_locale_breaks_acs
-int _nc_locale_breaks_acs(void)
- { return(*(int *)0); }
-
-#undef _nc_setupterm
-int _nc_setupterm(
- char *tname,
- int Filedes,
- int *errret,
- NCURSES_BOOL reuse)
- { return(*(int *)0); }
-
-#undef setupterm
-int setupterm(
- char *tname,
- int Filedes,
- 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 */
-
-#undef _nc_tparm_err
-int _nc_tparm_err;
-
-#undef _nc_tparm_analyze
-int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
- int *popcount)
- { return(*(int *)0); }
-
-#undef tparm
-char *tparm(
- char *string,
- ...)
- { return(*(char **)0); }
-
-/* ./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_bool
-NCURSES_BOOL _nc_retrace_bool(
- NCURSES_BOOL code)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_retrace_int
-int _nc_retrace_int(
- int code)
- { return(*(int *)0); }
-
-#undef _nc_retrace_unsigned
-unsigned _nc_retrace_unsigned(
- unsigned code)
- { return(*(unsigned *)0); }
-
-#undef _nc_retrace_ptr
-char *_nc_retrace_ptr(
- char *code)
- { return(*(char **)0); }
-
-#undef _nc_retrace_cptr
-const char *_nc_retrace_cptr(
- const char *code)
- { return(*(const char **)0); }
-
-#undef _nc_retrace_cvoid_ptr
-void *_nc_retrace_cvoid_ptr(
- void *code)
- { return(*(void **)0); }
-
-#undef _nc_retrace_void_ptr
-void *_nc_retrace_void_ptr(
- void *code)
- { return(*(void **)0); }
-
-#undef _nc_retrace_sp
-SCREEN *_nc_retrace_sp(
- SCREEN *code)
- { return(*(SCREEN **)0); }
-
-#undef _nc_retrace_win
-WINDOW *_nc_retrace_win(
- WINDOW *code)
- { return(*(WINDOW **)0); }
-
-/* ./trace/lib_traceatr.c */
-
-#undef _traceattr2
-char *_traceattr2(
- int bufnum,
- chtype newmode)
- { return(*(char **)0); }
-
-#undef _traceattr
-char *_traceattr(
- attr_t newmode)
- { return(*(char **)0); }
-
-#undef _nc_retrace_attr_t
-attr_t _nc_retrace_attr_t(
- attr_t code)
- { return(*(attr_t *)0); }
-
-#undef _nc_altcharset_name
-const char *_nc_altcharset_name(
- attr_t attr,
- chtype ch)
- { return(*(const char **)0); }
-
-#undef _tracechtype2
-char *_tracechtype2(
- int bufnum,
- chtype ch)
- { return(*(char **)0); }
-
-#undef _tracechtype
-char *_tracechtype(
- chtype ch)
- { return(*(char **)0); }
-
-#undef _nc_retrace_chtype
-chtype _nc_retrace_chtype(
- chtype code)
- { return(*(chtype *)0); }
-
-#undef _tracecchar_t2
-char *_tracecchar_t2(
- int bufnum,
- const cchar_t *ch)
- { return(*(char **)0); }
-
-#undef _tracecchar_t
-char *_tracecchar_t(
- const cchar_t *ch)
- { return(*(char **)0); }
-
-/* ./trace/lib_tracebits.c */
-
-typedef struct {
- unsigned int val;
- const char *name;
-} BITNAMES;
-
-#undef _nc_trace_ttymode
-char *_nc_trace_ttymode(
- struct termios *tty)
- { return(*(char **)0); }
-
-#undef _nc_tracebits
-char *_nc_tracebits(void)
- { return(*(char **)0); }
-
-/* ./trace/lib_tracechr.c */
-
-#undef _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/read_entry.c */
-
-#include <hashed_db.h>
-
-#undef _nc_read_termtype
-int _nc_read_termtype(
- TERMTYPE *ptr,
- char *buffer,
- int limit)
- { return(*(int *)0); }
-
-#undef _nc_read_file_entry
-int _nc_read_file_entry(
- const char *const filename,
- TERMTYPE *ptr)
- { return(*(int *)0); }
-
-#undef _nc_read_entry
-int _nc_read_entry(
- const char *const name,
- char *const filename,
- TERMTYPE *const tp)
- { return(*(int *)0); }
-
-/* ./tinfo/read_termcap.c */
-
-#include <sys/types.h>
-
-#undef _nc_read_termcap_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 */
-
-#undef _nc_trace_buf
-char *_nc_trace_buf(
- int bufnum,
- size_t want)
- { return(*(char **)0); }
-
-#undef _nc_trace_bufcat
-char *_nc_trace_bufcat(
- int bufnum,
- const char *value)
- { return(*(char **)0); }
-
-/* ./trace/trace_tries.c */
-
-#undef _nc_trace_tries
-void _nc_trace_tries(
- TRIES *tree)
- { /* void */ }
-
-/* ./base/tries.c */
-
-#undef _nc_expand_try
-char *_nc_expand_try(
- TRIES *tree,
- unsigned code,
- int *count,
- size_t len)
- { return(*(char **)0); }
-
-#undef _nc_remove_key
-int _nc_remove_key(
- TRIES **tree,
- unsigned code)
- { return(*(int *)0); }
-
-#undef _nc_remove_string
-int _nc_remove_string(
- TRIES **tree,
- const char *string)
- { return(*(int *)0); }
-
-/* ./tinfo/trim_sgr0.c */
-
-#undef _nc_trim_sgr0
-char *_nc_trim_sgr0(
- TERMTYPE *tp)
- { return(*(char **)0); }
-
-/* ./unctrl.c */
-
-#undef unctrl
-char *unctrl(
- chtype ch)
- { return(*(char **)0); }
-
-/* ./trace/visbuf.c */
-
-#undef _nc_visbuf2
-const char *_nc_visbuf2(
- int bufnum,
- const char *buf)
- { return(*(const char **)0); }
-
-#undef _nc_visbuf
-const char *_nc_visbuf(
- const char *buf)
- { return(*(const char **)0); }
-
-#undef _nc_visbufn
-const char *_nc_visbufn(
- const char *buf,
- int len)
- { return(*(const char **)0); }
-
-#undef _nc_viswbuf2
-const char *_nc_viswbuf2(
- int bufnum,
- const wchar_t *buf)
- { return(*(const char **)0); }
-
-#undef _nc_viswbuf
-const char *_nc_viswbuf(
- const wchar_t *buf)
- { return(*(const char **)0); }
-
-#undef _nc_viswbufn
-const char *_nc_viswbufn(
- const wchar_t *buf,
- int len)
- { return(*(const char **)0); }
-
-#undef _nc_viswibuf
-const char *_nc_viswibuf(
- const wint_t *buf)
- { return(*(const char **)0); }
-
-#undef _nc_viscbuf2
-const char *_nc_viscbuf2(
- int bufnum,
- const cchar_t *buf,
- int len)
- { return(*(const char **)0); }
-
-#undef _nc_viscbuf
-const char *_nc_viscbuf(
- const cchar_t *buf,
- int len)
- { return(*(const char **)0); }
-
-/* ./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/captoinfo.c */
-
-#undef _nc_captoinfo
-char *_nc_captoinfo(
- const char *cap,
- const char *s,
- int const parameterized)
- { return(*(char **)0); }
-
-#undef _nc_infotocap
-char *_nc_infotocap(
- const char *cap,
- const char *str,
- int const parameterized)
- { return(*(char **)0); }
-
-/* ./comp_captab.c */
-
-#include <hashsize.h>
-
-#undef _nc_get_table
-const struct name_table_entry *_nc_get_table(
- NCURSES_BOOL termcap)
- { return(*(const struct name_table_entry **)0); }
-
-#undef _nc_get_hash_table
-const short *_nc_get_hash_table(
- NCURSES_BOOL termcap)
- { return(*(const short **)0); }
-
-#undef _nc_get_alias_table
-const struct alias *_nc_get_alias_table(
- NCURSES_BOOL termcap)
- { return(*(const struct alias **)0); }
-
-/* ./tinfo/comp_expand.c */
-
-#undef _nc_tic_expand
-char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
- int numbers)
- { return(*(char **)0); }
-
-/* ./tinfo/comp_hash.c */
-
-#undef _nc_find_entry
-struct name_table_entry const *_nc_find_entry(
- const char *string,
- const short *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_termtype2
-void (*_nc_check_termtype2)(
- TERMTYPE *p1,
- NCURSES_BOOL p2);
-#undef _nc_check_termtype
-void (*_nc_check_termtype)(
- TERMTYPE *p1);
-
-#undef _nc_entry_match
-NCURSES_BOOL _nc_entry_match(
- char *n1,
- char *n2)
- { return(*(NCURSES_BOOL *)0); }
-
-#undef _nc_read_entry_source
-void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
- NCURSES_BOOL (*hook)(
- ENTRY *p1))
- { /* void */ }
-
-#undef _nc_resolve_uses2
-int _nc_resolve_uses2(
- NCURSES_BOOL fullresolve,
- NCURSES_BOOL literal)
- { return(*(int *)0); }
-
-#undef _nc_resolve_uses
-int _nc_resolve_uses(
- NCURSES_BOOL fullresolve)
- { return(*(int *)0); }
-
-/* ./tinfo/comp_scan.c */
-
-#undef _nc_syntax
-int _nc_syntax;
-#undef _nc_curr_file_pos
-long _nc_curr_file_pos;
-#undef _nc_comment_start
-long _nc_comment_start;
-#undef _nc_comment_end
-long _nc_comment_end;
-#undef _nc_start_line
-long _nc_start_line;
-#undef _nc_curr_token
-struct token _nc_curr_token;
-#undef _nc_disable_period
-NCURSES_BOOL _nc_disable_period;
-
-#undef _nc_reset_input
-void _nc_reset_input(
- FILE *fp,
- char *buf)
- { /* void */ }
-
-#undef _nc_get_token
-int _nc_get_token(
- NCURSES_BOOL silent)
- { return(*(int *)0); }
-
-#undef _nc_trans_string
-int _nc_trans_string(
- char *ptr,
- char *last)
- { return(*(int *)0); }
-
-#undef _nc_push_token
-void _nc_push_token(
- int tokclass)
- { /* void */ }
-
-#undef _nc_panic_mode
-void _nc_panic_mode(
- char ch)
- { /* void */ }
-
-/* ./tinfo/parse_entry.c */
-
-#undef _nc_parse_entry
-int _nc_parse_entry(
- struct entry *entryp,
- int literal,
- NCURSES_BOOL silent)
- { return(*(int *)0); }
-
-#undef _nc_capcmp
-int _nc_capcmp(
- const char *s,
- const char *t)
- { return(*(int *)0); }
-
-typedef struct {
- const char *from;
- const char *to;
-} assoc;
-
-/* ./tinfo/write_entry.c */
-
-#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); }
-
-/* ./base/define_key.c */
-
-#undef define_key
-int define_key(
- const char *str,
- int keycode)
- { return(*(int *)0); }
-
-/* ./tinfo/hashed_db.c */
-
-#undef _nc_hashed_db
-void _nc_hashed_db(void)
- { /* void */ }
-
-/* ./base/key_defined.c */
-
-#undef key_defined
-int key_defined(
- const char *str)
- { return(*(int *)0); }
-
-/* ./base/keybound.c */
-
-#undef keybound
-char *keybound(
- int code,
- int count)
- { return(*(char **)0); }
-
-/* ./base/keyok.c */
-
-#undef keyok
-int keyok(
- int c,
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
-/* ./base/version.c */
-
-#undef curses_version
-const char *curses_version(void)
- { return(*(const char **)0); }
diff --git a/contrib/ncurses/ncurses/modules b/contrib/ncurses/ncurses/modules
deleted file mode 100644
index f28ef81a3b33..000000000000
--- a/contrib/ncurses/ncurses/modules
+++ /dev/null
@@ -1,232 +0,0 @@
-# $Id: modules,v 1.112 2007/09/08 22:03:34 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-
-@ 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_insnstr 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_tracedmp lib $(trace)
-lib_tracemse lib $(trace)
-lib_tstp lib $(serial) $(srcdir)/SigAction.h
-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)
-vsscanf lib $(base)
-
-# actually an extension, but with its own configure option (--disable-leaks)
-lib_freeall lib $(base)
-
-# XSI extensions to the base library (wide-character)
-@ widechar
-charable lib $(wide)
-lib_add_wch lib $(wide)
-lib_box_set lib $(wide)
-lib_cchar lib $(wide)
-lib_erasewchar lib $(wide)
-lib_get_wch lib $(wide)
-lib_get_wstr lib $(wide)
-lib_hline_set lib $(wide)
-lib_in_wch lib $(wide)
-lib_in_wchnstr lib $(wide)
-lib_ins_wch lib $(wide)
-lib_inwstr lib $(wide)
-lib_key_name lib $(wide)
-lib_pecho_wchar lib $(wide)
-lib_slk_wset 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
-expanded lib .
-legacy_coding lib $(base) ../include/term.h
-lib_dft_fgbg lib $(base) ../include/term.h
-lib_print lib $(tinfo) ../include/term.h
-resizeterm lib $(base) ../include/term.h
-trace_xnames lib $(trace) ../include/term.h $(INCDIR)/term_entry.h
-use_screen lib $(tinfo)
-use_window 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_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-codes lib .
-comp_error lib $(tinfo) $(INCDIR)/tic.h
-db_iterator lib $(tinfo) $(INCDIR)/tic.h
-doalloc lib $(tinfo)
-entries lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-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_traceatr lib $(trace) ../include/term.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 .
-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)
-tries lib $(base)
-trim_sgr0 lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-unctrl lib .
-visbuf lib $(trace) $(INCDIR)/tic.h
-
-# Modules used only for tic, other programs using internal interfaces
-@ ticlib
-alloc_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-captoinfo lib $(tinfo) $(INCDIR)/tic.h
-comp_captab lib . $(INCDIR)/tic.h ../include/term.h ../include/hashsize.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
-parse_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
-write_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-
-# Extensions to the termlib library
-@ ext_tinfo
-define_key lib $(base)
-hashed_db lib $(tinfo)
-key_defined lib $(base)
-keybound lib $(base)
-keyok lib $(base)
-version lib $(base)
-
-# vile:makemode
diff --git a/contrib/ncurses/ncurses/tinfo/MKcaptab.awk b/contrib/ncurses/ncurses/tinfo/MKcaptab.awk
deleted file mode 100644
index 56d3d17754d1..000000000000
--- a/contrib/ncurses/ncurses/tinfo/MKcaptab.awk
+++ /dev/null
@@ -1,94 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKcaptab.awk,v 1.20 2007/08/12 00:26:15 tom Exp $
-function add_string(text) {
- if (text != "IGNORE") {
- offsets[num_strings] = offset;
- offset = offset + length(text) + 1;
- printf "%s\\0", text;
- } else {
- offsets[num_strings] = -1;
- }
- num_strings = num_strings + 1;
- if ((num_strings % 3) == 0) {
- printf "\\\n";
- }
- return offsets[num_strings - 1];
-}
-BEGIN {
- first = 1;
- num_aliases = 0;
- num_strings = 0;
- offset = 0;
-}
-
-/^[^#]/ {
- if (first) {
- printf "/* generated by MKcaptab.awk %s(%d) */\n", tablename, bigstrings;
- print ""
- if (bigstrings) {
- printf "static struct alias *_nc_%s_table = 0;\n", tablename;
- print "";
- printf "static const char %s_text[] = \"\\\n", tablename;
- } else {
- printf "static const struct alias _nc_%s_table[] =\n", tablename;
- printf "{\n";
- }
- first = 0;
- }
- if ($1 == tablename) {
- if ($3 == "IGNORE") {
- to = "(char *)NULL";
- } else {
- to = "\"" $3 "\"";
- }
- if (bigstrings) {
- c1 = add_string($2);
- c2 = add_string($3);
- c3 = add_string($4);
- aliases[num_aliases] = sprintf("\t{%5d, %5d, %5d},\t /* %s */", c1, c2, c3, $5);
- num_aliases = num_aliases + 1;
- } else {
- printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n", $2, to, $4, $5;
- }
- }
- }
-END {
- if (bigstrings) {
- printf "\";\n\n";
- printf "static const alias_table_data %s_data[] = {\n", tablename;
- for (n = 0; n < num_aliases; ++n) {
- printf "%s\n", aliases[n];
- }
- printf "};\n\n";
- } else {
- printf "\t{(char *)NULL, (char *)NULL, (char *)NULL}\n";
- printf "};\n\n";
- }
- }
-# vile:sw=4:
diff --git a/contrib/ncurses/ncurses/tinfo/MKcaptab.sh b/contrib/ncurses/ncurses/tinfo/MKcaptab.sh
deleted file mode 100644
index 98c04e884309..000000000000
--- a/contrib/ncurses/ncurses/tinfo/MKcaptab.sh
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKcaptab.sh,v 1.8 2007/08/12 13:13:51 tom Exp $
-AWK=${1-awk}
-OPT1=${2-0}
-OPT2=${3-tinfo/MKcaptab.awk}
-DATA=${4-../include/Caps}
-
-cat <<'EOF'
-/*
- * comp_captab.c -- The names of the capabilities indexed via a hash
- * table for the compiler.
- *
- */
-
-#include <curses.priv.h>
-#include <tic.h>
-#include <hashsize.h>
-
-EOF
-
-./make_hash 1 info $OPT1 <$DATA
-./make_hash 3 cap $OPT1 <$DATA
-
-$AWK -f $OPT2 bigstrings=$OPT1 tablename=capalias <$DATA
-
-$AWK -f $OPT2 bigstrings=$OPT1 tablename=infoalias <$DATA
-
-cat <<EOF
-
-#if $OPT1
-static void
-next_string(const char *strings, unsigned *offset)
-{
- *offset += strlen(strings + *offset) + 1;
-}
-
-static const struct name_table_entry *
-_nc_build_names(struct name_table_entry **actual,
- const name_table_data *source,
- const char *strings)
-{
- if (*actual == 0) {
- *actual = typeCalloc(struct name_table_entry, CAPTABSIZE);
- if (*actual != 0) {
- unsigned n;
- unsigned len = 0;
- for (n = 0; n < CAPTABSIZE; ++n) {
- (*actual)[n].nte_name = strings + len;
- (*actual)[n].nte_type = source[n].nte_type;
- (*actual)[n].nte_index = source[n].nte_index;
- (*actual)[n].nte_link = source[n].nte_link;
- next_string(strings, &len);
- }
- }
- }
- return *actual;
-}
-
-#define add_alias(field) \\
- if (source[n].field >= 0) { \\
- (*actual)[n].field = strings + source[n].field; \\
- }
-
-static const struct alias *
-_nc_build_alias(struct alias **actual,
- const alias_table_data *source,
- const char *strings,
- unsigned tablesize)
-{
- if (*actual == 0) {
- *actual = typeCalloc(struct alias, tablesize + 1);
- if (*actual != 0) {
- unsigned n;
- for (n = 0; n < tablesize; ++n) {
- add_alias(from);
- add_alias(to);
- add_alias(source);
- }
- }
- }
- return *actual;
-}
-
-#define build_names(root) _nc_build_names(&_nc_##root##_table, \\
- root##_names_data, \\
- root##_names_text)
-#define build_alias(root) _nc_build_alias(&_nc_##root##alias_table, \\
- root##alias_data, \\
- root##alias_text, \\
- SIZEOF(root##alias_data))
-#else
-#define build_names(root) _nc_ ## root ## _table
-#define build_alias(root) _nc_ ## root ## alias_table
-#endif
-
-NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
-{
- return termcap ? build_names(cap) : build_names(info) ;
-}
-
-NCURSES_EXPORT(const short *) _nc_get_hash_table (bool termcap)
-{
- return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
-}
-
-NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool termcap)
-{
- return termcap ? build_alias(cap) : build_alias(info) ;
-}
-
-#if NO_LEAKS
-NCURSES_EXPORT(void) _nc_comp_captab_leaks(void)
-{
-#if $OPT1
- FreeIfNeeded(_nc_cap_table);
- FreeIfNeeded(_nc_info_table);
- FreeIfNeeded(_nc_capalias_table);
- FreeIfNeeded(_nc_infoalias_table);
-#endif
-}
-#endif /* NO_LEAKS */
-EOF
diff --git a/contrib/ncurses/ncurses/tinfo/MKcodes.awk b/contrib/ncurses/ncurses/tinfo/MKcodes.awk
deleted file mode 100644
index db8ad5541841..000000000000
--- a/contrib/ncurses/ncurses/tinfo/MKcodes.awk
+++ /dev/null
@@ -1,161 +0,0 @@
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKcodes.awk,v 1.4 2007/11/03 20:24:15 tom Exp $
-function large_item(value) {
- result = sprintf("%d,", offset);
- offset = offset + length(value) + 1;
- offcol = offcol + length(result) + 2;
- if (offcol > 70) {
- result = result "\n";
- offcol = 0;
- } else {
- result = result " ";
- }
- bigstr = bigstr sprintf("\"%s\\0\" ", value);
- bigcol = bigcol + length(value) + 5;
- if (bigcol > 70) {
- bigstr = bigstr "\\\n";
- bigcol = 0;
- }
- return result;
-}
-
-function small_item(value) {
- return sprintf("\t\t\"%s\",\n", value);
-}
-
-function print_strings(name,value) {
- printf "DCL(%s) = {\n", name
- print value
- print "\t\t(NCURSES_CONST char *)0,"
- print "};"
- print ""
-}
-
-function print_offsets(name,value) {
- printf "static const short _nc_offset_%s[] = {\n", name
- printf "%s", value
- print "};"
- print ""
- printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name
- print ""
-}
-
-BEGIN {
- print "/* This file was generated by MKcodes.awk */"
- print ""
- print "#include <curses.priv.h>"
- print ""
- print "#define IT NCURSES_CONST char * const"
- print ""
- offset = 0;
- offcol = 0;
- bigcol = 0;
- }
-
-$1 ~ /^#/ {next;}
-
-$1 == "SKIPWARN" {next;}
-
-$3 == "bool" {
- small_boolcodes = small_boolcodes small_item($4);
- large_boolcodes = large_boolcodes large_item($4);
- }
-
-$3 == "num" {
- small_numcodes = small_numcodes small_item($4);
- large_numcodes = large_numcodes large_item($4);
- }
-
-$3 == "str" {
- small_strcodes = small_strcodes small_item($4);
- large_strcodes = large_strcodes large_item($4);
- }
-
-END {
- print ""
- print "#if BROKEN_LINKER || USE_REENTRANT"
- print ""
- print "#include <term.h>"
- print ""
- if (bigstrings) {
- printf "static const char _nc_code_blob[] = \n"
- printf "%s;\n", bigstr;
- print_offsets("boolcodes", large_boolcodes);
- print_offsets("numcodes", large_numcodes);
- print_offsets("strcodes", large_strcodes);
- print ""
- print "static IT *"
- print "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)"
- print "{"
- print " if (*value == 0) {"
- print " if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
- print " unsigned n;"
- print " for (n = 0; n < size; ++n) {"
- print " (*value)[n] = _nc_code_blob + offsets[n];"
- print " }"
- print " }"
- print " }"
- print " return *value;"
- print "}"
- print ""
- print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
- } else {
- print "#define DCL(it) static IT data##it[]"
- print ""
- print_strings("boolcodes", small_boolcodes);
- print_strings("numcodes", small_numcodes);
- print_strings("strcodes", small_strcodes);
- print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
- }
- print ""
- print "FIX(boolcodes)"
- print "FIX(numcodes)"
- print "FIX(strcodes)"
- print ""
- print "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
- print ""
- print "NCURSES_EXPORT(void)"
- print "_nc_codes_leaks(void)"
- print "{"
- if (bigstrings) {
- print "FREE_FIX(boolcodes)"
- print "FREE_FIX(numcodes)"
- print "FREE_FIX(strcodes)"
- }
- print "}"
- print "#else"
- print ""
- print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
- print ""
- print_strings("boolcodes", small_boolcodes);
- print_strings("numcodes", small_numcodes);
- print_strings("strcodes", small_strcodes);
- print ""
- print "#endif /* BROKEN_LINKER */"
- }
diff --git a/contrib/ncurses/ncurses/tinfo/MKfallback.sh b/contrib/ncurses/ncurses/tinfo/MKfallback.sh
deleted file mode 100755
index 9feab3507cc0..000000000000
--- a/contrib/ncurses/ncurses/tinfo/MKfallback.sh
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKfallback.sh,v 1.13 2006/07/15 16:54:20 tom Exp $
-#
-# 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 -x $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/contrib/ncurses/ncurses/tinfo/MKkeys_list.sh b/contrib/ncurses/ncurses/tinfo/MKkeys_list.sh
deleted file mode 100755
index 14017b016896..000000000000
--- a/contrib/ncurses/ncurses/tinfo/MKkeys_list.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#! /bin/sh
-# $Id: MKkeys_list.sh,v 1.4 2003/10/25 16:19:54 tom Exp $
-##############################################################################
-# Copyright (c) 2001,2003 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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 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/contrib/ncurses/ncurses/tinfo/MKnames.awk b/contrib/ncurses/ncurses/tinfo/MKnames.awk
deleted file mode 100644
index 93e682c2d28d..000000000000
--- a/contrib/ncurses/ncurses/tinfo/MKnames.awk
+++ /dev/null
@@ -1,183 +0,0 @@
-##############################################################################
-# Copyright (c) 2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: MKnames.awk,v 1.18 2007/11/03 20:24:15 tom Exp $
-function large_item(value) {
- result = sprintf("%d,", offset);
- offset = offset + length(value) + 1;
- offcol = offcol + length(result) + 2;
- if (offcol > 70) {
- result = result "\n";
- offcol = 0;
- } else {
- result = result " ";
- }
- bigstr = bigstr sprintf("\"%s\\0\" ", value);
- bigcol = bigcol + length(value) + 5;
- if (bigcol > 70) {
- bigstr = bigstr "\\\n";
- bigcol = 0;
- }
- return result;
-}
-
-function small_item(value) {
- return sprintf("\t\t\"%s\",\n", value);
-}
-
-function print_strings(name,value) {
- printf "DCL(%s) = {\n", name
- print value
- print "\t\t(NCURSES_CONST char *)0,"
- print "};"
- print ""
-}
-
-function print_offsets(name,value) {
- printf "static const short _nc_offset_%s[] = {\n", name
- printf "%s", value
- print "};"
- print ""
- printf "static NCURSES_CONST char ** ptr_%s = 0;\n", name
- print ""
-}
-
-BEGIN {
- print "/* This file was generated by MKnames.awk */"
- print ""
- print "#include <curses.priv.h>"
- print ""
- print "#define IT NCURSES_CONST char * const"
- print ""
- offset = 0;
- offcol = 0;
- bigcol = 0;
- }
-
-$1 ~ /^#/ {next;}
-
-$1 == "SKIPWARN" {next;}
-
-$3 == "bool" {
- small_boolnames = small_boolnames small_item($2);
- large_boolnames = large_boolnames large_item($2);
- small_boolfnames = small_boolfnames small_item($1);
- large_boolfnames = large_boolfnames large_item($1);
- }
-
-$3 == "num" {
- small_numnames = small_numnames small_item($2);
- large_numnames = large_numnames large_item($2);
- small_numfnames = small_numfnames small_item($1);
- large_numfnames = large_numfnames large_item($1);
- }
-
-$3 == "str" {
- small_strnames = small_strnames small_item($2);
- large_strnames = large_strnames large_item($2);
- small_strfnames = small_strfnames small_item($1);
- large_strfnames = large_strfnames large_item($1);
- }
-
-END {
- print ""
- print "#if BROKEN_LINKER || USE_REENTRANT"
- print ""
- print "#include <term.h>"
- print ""
- if (bigstrings) {
- printf "static const char _nc_name_blob[] = \n"
- printf "%s;\n", bigstr;
- print_offsets("boolfnames", large_boolfnames);
- print_offsets("boolnames", large_boolnames);
- print_offsets("numfnames", large_numfnames);
- print_offsets("numnames", large_numnames);
- print_offsets("strfnames", large_strfnames);
- print_offsets("strnames", large_strnames);
- print ""
- print "static IT *"
- print "alloc_array(NCURSES_CONST char ***value, const short *offsets, unsigned size)"
- print "{"
- print " if (*value == 0) {"
- print " if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
- print " unsigned n;"
- print " for (n = 0; n < size; ++n) {"
- print " (*value)[n] = _nc_name_blob + offsets[n];"
- print " }"
- print " }"
- print " }"
- print " return *value;"
- print "}"
- print ""
- print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
- } else {
- print "#define DCL(it) static IT data##it[]"
- print ""
- print_strings("boolnames", small_boolnames);
- print_strings("boolfnames", small_boolfnames);
- print_strings("numnames", small_numnames);
- print_strings("numfnames", small_numfnames);
- print_strings("strnames", small_strnames);
- print_strings("strfnames", small_strfnames);
- print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
- }
- print ""
- print "FIX(boolnames)"
- print "FIX(boolfnames)"
- print "FIX(numnames)"
- print "FIX(numfnames)"
- print "FIX(strnames)"
- print "FIX(strfnames)"
- print ""
- print ""
- print "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
- print ""
- print "NCURSES_EXPORT(void)"
- print "_nc_names_leaks(void)"
- print "{"
- if (bigstrings) {
- print "FREE_FIX(boolnames)"
- print "FREE_FIX(boolfnames)"
- print "FREE_FIX(numnames)"
- print "FREE_FIX(numfnames)"
- print "FREE_FIX(strnames)"
- print "FREE_FIX(strfnames)"
- }
- print "}"
- print "#else"
- print ""
- print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]"
- print ""
- print_strings("boolnames", small_boolnames);
- print_strings("boolfnames", small_boolfnames);
- print_strings("numnames", small_numnames);
- print_strings("numfnames", small_numfnames);
- print_strings("strnames", small_strnames);
- print_strings("strfnames", small_strfnames);
- print ""
- print "#endif /* BROKEN_LINKER */"
- }
diff --git a/contrib/ncurses/ncurses/tinfo/README b/contrib/ncurses/ncurses/tinfo/README
deleted file mode 100644
index 14c4220c4431..000000000000
--- a/contrib/ncurses/ncurses/tinfo/README
+++ /dev/null
@@ -1,36 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README,v 1.2 2006/04/22 22:19:37 tom Exp $
--------------------------------------------------------------------------------
-
-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/contrib/ncurses/ncurses/tinfo/access.c b/contrib/ncurses/ncurses/tinfo/access.c
deleted file mode 100644
index ce8ccdac53f6..000000000000
--- a/contrib/ncurses/ncurses/tinfo/access.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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 <sys/stat.h>
-
-#include <tic.h>
-#include <nc_alloc.h>
-
-MODULE_ID("$Id: access.c,v 1.14 2007/11/18 00:57:53 tom Exp $")
-
-#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 !MIXEDCASE_FILENAMES || defined(PROG_EXT)
- static char *temp;
- char *s;
-
- temp = strdup(result);
- result = temp;
-#if !MIXEDCASE_FILENAMES
- 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;
-}
-
-/*
- * Check if a string appears to be an absolute pathname.
- */
-NCURSES_EXPORT(bool)
-_nc_is_abs_path(const char *path)
-{
-#if defined(__EMX__) || defined(__DJGPP__)
-#define is_pathname(s) ((((s) != 0) && ((s)[0] == '/')) \
- || (((s)[0] != 0) && ((s)[1] == ':')))
-#else
-#define is_pathname(s) ((s) != 0 && (s)[0] == '/')
-#endif
- return is_pathname(path);
-}
-
-/*
- * Return index of the basename
- */
-NCURSES_EXPORT(unsigned)
-_nc_pathlast(const char *path)
-{
- const char *test = strrchr(path, '/');
-#ifdef __EMX__
- if (test == 0)
- test = strrchr(path, '\\');
-#endif
- if (test == 0)
- test = path;
- else
- test++;
- return (test - path);
-}
-
-NCURSES_EXPORT(char *)
-_nc_basename(char *path)
-{
- return path + _nc_pathlast(path);
-}
-
-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;
-}
-
-NCURSES_EXPORT(bool)
-_nc_is_dir_path(const char *path)
-{
- bool result = FALSE;
- struct stat sb;
-
- if (stat(path, &sb) == 0
- && (sb.st_mode & S_IFMT) == S_IFDIR) {
- result = TRUE;
- }
- return result;
-}
-
-NCURSES_EXPORT(bool)
-_nc_is_file_path(const char *path)
-{
- bool result = FALSE;
- struct stat sb;
-
- if (stat(path, &sb) == 0
- && (sb.st_mode & S_IFMT) == S_IFREG) {
- result = TRUE;
- }
- return result;
-}
-
-#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/contrib/ncurses/ncurses/tinfo/add_tries.c b/contrib/ncurses/ncurses/tinfo/add_tries.c
deleted file mode 100644
index 455d142edc8e..000000000000
--- a/contrib/ncurses/ncurses/tinfo/add_tries.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1998-on *
- ****************************************************************************/
-
-/*
-** add_tries.c
-**
-** Add keycode/string to tries-tree.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: add_tries.c,v 1.8 2006/12/30 23:15:26 tom Exp $")
-
-#define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
-#define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
-
-NCURSES_EXPORT(int)
-_nc_add_to_try(TRIES ** tree, const char *str, unsigned code)
-{
- TRIES *ptr, *savedptr;
- unsigned const char *txt = (unsigned const char *) str;
-
- T((T_CALLED("_nc_add_to_try(%p, %s, %u)"), *tree, _nc_visbuf(str), code));
- if (txt == 0 || *txt == '\0' || code == 0)
- returnCode(ERR);
-
- 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;
- returnCode(OK);
- }
- if (ptr->child != 0)
- ptr = ptr->child;
- else
- break;
- } else {
- if ((ptr->sibling = typeCalloc(TRIES, 1)) == 0) {
- returnCode(ERR);
- }
-
- 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(TRIES, 1);
-
- if (ptr == 0) {
- returnCode(ERR);
- }
-
- SET_TRY(ptr, txt);
- ptr->value = 0;
- }
-
- /* at this point, we are adding to the try. ptr->child == 0 */
-
- while (*txt) {
- ptr->child = typeCalloc(TRIES, 1);
-
- ptr = ptr->child;
-
- if (ptr == 0) {
- while ((ptr = savedptr) != 0) {
- savedptr = ptr->child;
- free(ptr);
- }
- returnCode(ERR);
- }
-
- SET_TRY(ptr, txt);
- ptr->value = 0;
- }
-
- ptr->value = code;
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/alloc_entry.c b/contrib/ncurses/ncurses/tinfo/alloc_entry.c
deleted file mode 100644
index 1496752f1956..000000000000
--- a/contrib/ncurses/ncurses/tinfo/alloc_entry.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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: alloc_entry.c,v 1.47 2006/12/16 19:06:58 tom Exp $")
-
-#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 */
-{
- unsigned i;
-
-#if NO_LEAKS
- if (tp == 0 && stringbuf != 0) {
- FreeAndNull(stringbuf);
- return;
- }
-#endif
-
- if (stringbuf == 0)
- stringbuf = (char *) malloc(MAX_STRTAB);
-
-#if NCURSES_XNAMES
- tp->num_Booleans = BOOLCOUNT;
- tp->num_Numbers = NUMCOUNT;
- tp->num_Strings = STRCOUNT;
- tp->ext_Booleans = 0;
- tp->ext_Numbers = 0;
- tp->ext_Strings = 0;
-#endif
- if (tp->Booleans == 0)
- tp->Booleans = typeMalloc(NCURSES_SBOOL, BOOLCOUNT);
- if (tp->Numbers == 0)
- tp->Numbers = typeMalloc(short, NUMCOUNT);
- if (tp->Strings == 0)
- tp->Strings = typeMalloc(char *, STRCOUNT);
-
- for_each_boolean(i, tp)
- tp->Booleans[i] = FALSE;
-
- for_each_number(i, tp)
- tp->Numbers[i] = ABSENT_NUMERIC;
-
- for_each_string(i, tp)
- tp->Strings[i] = ABSENT_STRING;
-
- 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;
-}
-
-/* save a copy of string in the string buffer */
-NCURSES_EXPORT(char *)
-_nc_save_str(const char *const string)
-{
- char *result = 0;
- size_t old_next_free = next_free;
- size_t len = strlen(string) + 1;
-
- if (len == 1 && next_free != 0) {
- /*
- * Cheat a little by making an empty string point to the end of the
- * previous string.
- */
- if (next_free < MAX_STRTAB) {
- result = (stringbuf + next_free - 1);
- }
- } else if (next_free + len < MAX_STRTAB) {
- strcpy(&stringbuf[next_free], string);
- DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
- DEBUG(7, ("at location %d", (int) next_free));
- next_free += len;
- result = (stringbuf + old_next_free);
- } else {
- _nc_warning("Too much data, some is lost");
- }
- return result;
-}
-
-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];
- unsigned i, n;
- unsigned nuses = ep->nuses;
- 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 < 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 < 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 < 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 */
-{
- unsigned i;
-
-#if NCURSES_XNAMES
- _nc_align_termtype(to, from);
-#endif
- for_each_boolean(i, from) {
- if (to->Booleans[i] != (char) CANCELLED_BOOLEAN) {
- 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) {
- if (to->Numbers[i] != CANCELLED_NUMERIC) {
- 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) {
- if (to->Strings[i] != CANCELLED_STRING) {
- char *mergestring = from->Strings[i];
-
- if (mergestring == CANCELLED_STRING)
- to->Strings[i] = ABSENT_STRING;
- else if (mergestring != ABSENT_STRING)
- to->Strings[i] = mergestring;
- }
- }
-}
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_alloc_entry_leaks(void)
-{
- if (stringbuf != 0) {
- FreeAndNull(stringbuf);
- }
- next_free = 0;
-}
-#endif
diff --git a/contrib/ncurses/ncurses/tinfo/alloc_ttype.c b/contrib/ncurses/ncurses/tinfo/alloc_ttype.c
deleted file mode 100644
index 9f31ed3ffab7..000000000000
--- a/contrib/ncurses/ncurses/tinfo/alloc_ttype.c
+++ /dev/null
@@ -1,495 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2003,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-on *
- ****************************************************************************/
-
-/*
- * 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: alloc_ttype.c,v 1.16 2006/07/08 19:18:38 tom Exp $")
-
-#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(NCURSES_SBOOL, to->num_Booleans, to->Booleans);
- for (n = to->ext_Booleans - 1,
- m = ext_Booleans - 1,
- base = to->num_Booleans - (m + 1); m >= 0; m--) {
- 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(NCURSES_SBOOL, 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;
- bool used_ext_Names = FALSE;
-
- 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));
- used_ext_Names = TRUE;
- }
- 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));
- }
- if (!used_ext_Names)
- free(ext_Names);
- }
-}
-#endif
-
-NCURSES_EXPORT(void)
-_nc_copy_termtype(TERMTYPE *dst, TERMTYPE *src)
-{
- unsigned i;
-
- *dst = *src; /* ...to copy the sizes and string-tables */
- dst->Booleans = typeMalloc(NCURSES_SBOOL, NUM_BOOLEANS(dst));
- dst->Numbers = typeMalloc(short, NUM_NUMBERS(dst));
- dst->Strings = typeMalloc(char *, NUM_STRINGS(dst));
-
- /* FIXME: use memcpy for these and similar loops */
- for_each_boolean(i, dst)
- dst->Booleans[i] = src->Booleans[i];
- for_each_number(i, dst)
- dst->Numbers[i] = src->Numbers[i];
- for_each_string(i, dst)
- dst->Strings[i] = src->Strings[i];
-
- /* 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/contrib/ncurses/ncurses/tinfo/captoinfo.c b/contrib/ncurses/ncurses/tinfo/captoinfo.c
deleted file mode 100644
index 0e3baa845693..000000000000
--- a/contrib/ncurses/ncurses/tinfo/captoinfo.c
+++ /dev/null
@@ -1,847 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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, parameterized)
- *
- * 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: captoinfo.c,v 1.49 2006/12/16 19:16:53 tom Exp $")
-
-#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 NCURSES_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.
- * 'parameterized' tells what type of translations to do:
- * % translations if 1
- * pad translations if >=0
- */
-NCURSES_EXPORT(char *)
-_nc_captoinfo(const char *cap, const char *s, int const parameterized)
-{
- 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 (parameterized >= 0 && isdigit(UChar(*s)))
- for (capstart = s;; s++)
- if (!(isdigit(UChar(*s)) || *s == '*' || *s == '.'))
- break;
-
- while (*s != '\0') {
- switch (*s) {
- case '%':
- s++;
- if (parameterized < 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().
- */
-NCURSES_EXPORT(char *)
-_nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameterized)
-{
- int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0;
- 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 > str && *padding == '>' && *--padding == '/') {
- --padding;
- while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
- padding--;
- if (padding > str && *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, "%%");
- ++str;
- } else if (*str != '%' || (parameterized < 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 */
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_captoinfo_leaks(void)
-{
- if (my_string != 0) {
- FreeAndNull(my_string);
- }
- my_length = 0;
-}
-#endif
diff --git a/contrib/ncurses/ncurses/tinfo/comp_error.c b/contrib/ncurses/ncurses/tinfo/comp_error.c
deleted file mode 100644
index 56c362a4f7dd..000000000000
--- a/contrib/ncurses/ncurses/tinfo/comp_error.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * comp_error.c -- Error message routines
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-
-MODULE_ID("$Id: comp_error.c,v 1.31 2007/04/21 23:38:32 tom Exp $")
-
-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 */
-
-#define SourceName _nc_globals.comp_sourcename
-#define TermType _nc_globals.comp_termtype
-
-NCURSES_EXPORT(const char *)
-_nc_get_source(void)
-{
- return SourceName;
-}
-
-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)
-{
-#if NO_LEAKS
- if (name == 0 && TermType != 0) {
- FreeAndNull(TermType);
- return;
- }
-#endif
- if (name != 0)
- strcpy(name, TermType != 0 ? TermType : "");
-}
-
-static NCURSES_INLINE void
-where_is_problem(void)
-{
- fprintf(stderr, "\"%s\"", SourceName ? 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/contrib/ncurses/ncurses/tinfo/comp_expand.c b/contrib/ncurses/ncurses/tinfo/comp_expand.c
deleted file mode 100644
index ef419d84cd2c..000000000000
--- a/contrib/ncurses/ncurses/tinfo/comp_expand.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: comp_expand.c,v 1.18 2006/06/17 19:37:14 tom Exp $")
-
-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 NO_LEAKS
- if (srcp == 0) {
- if (buffer != 0) {
- FreeAndNull(buffer);
- length = 0;
- }
- return 0;
- }
-#endif
- 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/contrib/ncurses/ncurses/tinfo/comp_hash.c b/contrib/ncurses/ncurses/tinfo/comp_hash.c
deleted file mode 100644
index 8b85eee6ced8..000000000000
--- a/contrib/ncurses/ncurses/tinfo/comp_hash.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * comp_hash.c --- Routines to deal with the hashtable of capability
- * names.
- *
- */
-
-#define USE_TERMLIB 1
-#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: comp_hash.c,v 1.33 2007/08/18 21:42:25 tom Exp $")
-
-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,
- short *hash_table)
-{
- int i;
- int hashvalue;
- int collisions = 0;
-
- for (i = 0; i < HASHTABSIZE; i++) {
- hash_table[i] = -1;
- }
- for (i = 0; i < CAPTABSIZE; i++) {
- hashvalue = hash_function(table[i].nte_name);
-
- if (hash_table[hashvalue] >= 0)
- collisions++;
-
- if (hash_table[hashvalue] != 0)
- table[i].nte_link = hash_table[hashvalue];
- hash_table[hashvalue] = 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 short *hash_table)
-{
- int hashvalue;
- struct name_table_entry const *ptr = 0;
- struct name_table_entry const *real_table;
-
- hashvalue = hash_function(string);
-
- if (hash_table[hashvalue] >= 0) {
- real_table = _nc_get_table(hash_table != _nc_get_hash_table(FALSE));
- ptr = real_table + hash_table[hashvalue];
- while (strcmp(ptr->nte_name, string) != 0) {
- if (ptr->nte_link < 0)
- return 0;
- ptr = real_table + (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);
- short *hash_table = typeCalloc(short, HASHTABSIZE);
- const char *root_name = "";
- int column = 0;
- int bigstring = 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 <= 3
- || (column = atoi(argv[1])) <= 0
- || (column >= MAX_COLUMNS)
- || *(root_name = argv[2]) == 0
- || (bigstring = atoi(argv[3])) < 0) {
- fprintf(stderr, "usage: make_hash column root_name bigstring\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
- */
- if (bigstring) {
- int len = 0;
- int nxt;
-
- printf("static const char %s_names_text[] = \\\n", root_name);
- for (n = 0; n < CAPTABSIZE; n++) {
- nxt = strlen(name_table[n].nte_name) + 5;
- if (nxt + len > 72) {
- printf("\\\n");
- len = 0;
- }
- printf("\"%s\\0\" ", name_table[n].nte_name);
- len += nxt;
- }
- printf(";\n\n");
-
- len = 0;
- printf("static name_table_data const %s_names_data[] =\n",
- root_name);
- printf("{\n");
- for (n = 0; n < CAPTABSIZE; n++) {
- printf("\t{ %15d,\t%10s,\t%3d, %3d }%c\n",
- len,
- typenames[name_table[n].nte_type],
- name_table[n].nte_index,
- name_table[n].nte_link,
- n < CAPTABSIZE - 1 ? ',' : ' ');
- len += strlen(name_table[n].nte_name) + 1;
- }
- printf("};\n\n");
- printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name);
- } else {
-
- printf("static struct name_table_entry %s _nc_%s_table[] =\n",
- bigstring ? "" : "const",
- 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("static const short _nc_%s_hash_table[%d] =\n",
- root_name,
- HASHTABSIZE + 1);
- printf("{\n");
- for (n = 0; n < HASHTABSIZE; n++) {
- printf("\t%3d,\n", hash_table[n]);
- }
- printf("\t0\t/* base-of-table */\n");
- 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/contrib/ncurses/ncurses/tinfo/comp_parse.c b/contrib/ncurses/ncurses/tinfo/comp_parse.c
deleted file mode 100644
index aa60047b0aad..000000000000
--- a/contrib/ncurses/ncurses/tinfo/comp_parse.c
+++ /dev/null
@@ -1,490 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * comp_parse.c -- parser driver loop and use handling.
- *
- * _nc_read_entry_source(FILE *, literal, bool, bool (*hook)())
- * _nc_resolve_uses2(void)
- * _nc_free_entries(void)
- *
- * Use this code by calling _nc_read_entry_source() on as many source
- * files as you like (either terminfo or termcap syntax). If you
- * want use-resolution, call _nc_resolve_uses2(). To free the list
- * storage, do _nc_free_entries().
- *
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id: comp_parse.c,v 1.68 2007/11/03 20:41:46 tom Exp $")
-
-static void sanity_check2(TERMTYPE *, bool);
-NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
-
-/* obsolete: 20040705 */
-static void sanity_check(TERMTYPE *);
-NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
-
-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;
-}
-
-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. That avoids consuming a lot of memory when the
- * resolution code could fetch entries off disk.
- */
- if (hook != NULLHOOK && (*hook) (&thisentry)) {
- immediate++;
- } else {
- enqueue(&thisentry);
- /*
- * The enqueued entry is copied with _nc_copy_termtype(), so we can
- * free some of the data from thisentry, i.e., the arrays.
- */
- FreeIfNeeded(thisentry.tterm.Booleans);
- FreeIfNeeded(thisentry.tterm.Numbers);
- FreeIfNeeded(thisentry.tterm.Strings);
-#if NCURSES_XNAMES
- FreeIfNeeded(thisentry.tterm.ext_Names);
-#endif
- }
- }
-
- 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_uses2(bool fullresolve, bool literal)
-/* try to resolve all use capabilities */
-{
- ENTRY *qp, *rp, *lastread = 0;
- bool keepgoing;
- int i, 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 is 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);
-#if NCURSES_XNAMES
- FreeIfNeeded(qp->tterm.ext_Names);
-#endif
- 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"));
- }
-
- /*
- * 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_termtype2(&qp->tterm, literal);
- }
- DEBUG(2, ("SANITY CHECK FINISHED"));
- }
-
- return (TRUE);
-}
-
-/* obsolete: 20040705 */
-NCURSES_EXPORT(int)
-_nc_resolve_uses(bool fullresolve)
-{
- return _nc_resolve_uses2(fullresolve, FALSE);
-}
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed.
- */
-
-#undef CUR
-#define CUR tp->
-
-static void
-sanity_check2(TERMTYPE *tp, bool literal)
-{
- 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 (!literal) {
- if (acs_chars == 0
- && enter_alt_charset_mode != 0
- && exit_alt_charset_mode != 0)
- acs_chars = strdup(VT_ACSC);
- ANDMISSING(enter_alt_charset_mode, acs_chars);
- ANDMISSING(exit_alt_charset_mode, acs_chars);
- }
-
- /* listed in structure-member order of first argument */
- PAIRED(enter_alt_charset_mode, exit_alt_charset_mode);
- ANDMISSING(enter_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);
-}
-
-/* obsolete: 20040705 */
-static void
-sanity_check(TERMTYPE *tp)
-{
- sanity_check2(tp, FALSE);
-}
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_leaks_tic(void)
-{
- _nc_alloc_entry_leaks();
- _nc_captoinfo_leaks();
- _nc_comp_captab_leaks();
- _nc_comp_scan_leaks();
-#if BROKEN_LINKER || USE_REENTRANT
- _nc_names_leaks();
- _nc_codes_leaks();
-#endif
- _nc_tic_expand(0, FALSE, 0);
-}
-
-NCURSES_EXPORT(void)
-_nc_free_tic(int code)
-{
- _nc_leaks_tic();
- _nc_free_tinfo(code);
-}
-#endif
diff --git a/contrib/ncurses/ncurses/tinfo/comp_scan.c b/contrib/ncurses/ncurses/tinfo/comp_scan.c
deleted file mode 100644
index e937f7eb5ada..000000000000
--- a/contrib/ncurses/ncurses/tinfo/comp_scan.c
+++ /dev/null
@@ -1,915 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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: comp_scan.c,v 1.78 2006/12/16 19:17:01 tom Exp $")
-
-/*
- * 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 bool had_newline;
-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
-
-/*****************************************************************************
- *
- * Character-stream handling
- *
- *****************************************************************************/
-
-#define LEXBUFSIZ 1024
-
-static char *bufptr; /* otherwise, the input buffer pointer */
-static char *bufstart; /* start of buffer so we can compute offsets */
-static FILE *yyin; /* scanner's input file descriptor */
-
-/*
- * _nc_reset_input()
- *
- * Resets the input-reading routines. Used on initialization,
- * or after a seek has been done. Exactly one argument must be
- * non-null.
- */
-
-NCURSES_EXPORT(void)
-_nc_reset_input(FILE *fp, char *buf)
-{
- pushtype = NO_PUSHBACK;
- if (pushname != 0)
- pushname[0] = '\0';
- yyin = fp;
- bufstart = bufptr = buf;
- _nc_curr_file_pos = 0L;
- if (fp != 0)
- _nc_curr_line = 0;
- _nc_curr_col = 0;
-}
-
-/*
- * int last_char()
- *
- * Returns the final nonblank character on the current input buffer
- */
-static int
-last_char(void)
-{
- size_t len = strlen(bufptr);
- while (len--) {
- if (!isspace(UChar(bufptr[len])))
- return bufptr[len];
- }
- return 0;
-}
-
-/*
- * int next_char()
- *
- * Returns the next character in the input stream. Comments and leading
- * white space are stripped.
- *
- * The global state variable 'firstcolumn' is set TRUE if the character
- * returned is from the first column of the input line.
- *
- * The global variable _nc_curr_line is incremented for each new line.
- * The global variable _nc_curr_file_pos is set to the file offset of the
- * beginning of each line.
- */
-
-static int
-next_char(void)
-{
- static char *result;
- static size_t allocated;
- int the_char;
-
- if (!yyin) {
- if (result != 0) {
- FreeAndNull(result);
- FreeAndNull(pushname);
- allocated = 0;
- }
- /*
- * An string with an embedded null will truncate the input. This is
- * intentional (we don't read binary files here).
- */
- if (bufptr == 0 || *bufptr == '\0')
- return (EOF);
- if (*bufptr == '\n') {
- _nc_curr_line++;
- _nc_curr_col = 0;
- } else if (*bufptr == '\t') {
- _nc_curr_col = (_nc_curr_col | 7);
- }
- } else if (!bufptr || !*bufptr) {
- /*
- * In theory this could be recoded to do its I/O one character at a
- * time, saving the buffer space. In practice, this turns out to be
- * quite hard to get completely right. Try it and see. If you
- * succeed, don't forget to hack push_back() correspondingly.
- */
- size_t used;
- size_t len;
-
- do {
- bufstart = 0;
- used = 0;
- do {
- if (used + (LEXBUFSIZ / 4) >= allocated) {
- allocated += (allocated + LEXBUFSIZ);
- result = typeRealloc(char, allocated, result);
- if (result == 0)
- return (EOF);
- }
- if (used == 0)
- _nc_curr_file_pos = ftell(yyin);
-
- if (fgets(result + used, (int) (allocated - used), yyin) != 0) {
- bufstart = result;
- if (used == 0) {
- _nc_curr_line++;
- _nc_curr_col = 0;
- }
- } else {
- if (used != 0)
- strcat(result, "\n");
- }
- if ((bufptr = bufstart) != 0) {
- used = strlen(bufptr);
- while (iswhite(*bufptr)) {
- if (*bufptr == '\t') {
- _nc_curr_col = (_nc_curr_col | 7) + 1;
- } else {
- _nc_curr_col++;
- }
- bufptr++;
- }
-
- /*
- * Treat a trailing <cr><lf> the same as a <newline> so we
- * can read files on OS/2, etc.
- */
- if ((len = strlen(bufptr)) > 1) {
- if (bufptr[len - 1] == '\n'
- && bufptr[len - 2] == '\r') {
- len--;
- bufptr[len - 1] = '\n';
- bufptr[len] = '\0';
- }
- }
- } else {
- return (EOF);
- }
- } while (bufptr[len - 1] != '\n'); /* complete a line */
- } while (result[0] == '#'); /* ignore comments */
- } else if (*bufptr == '\t') {
- _nc_curr_col = (_nc_curr_col | 7);
- }
-
- first_column = (bufptr == bufstart);
- if (first_column)
- had_newline = FALSE;
-
- _nc_curr_col++;
- the_char = *bufptr++;
- return UChar(the_char);
-}
-
-static void
-push_back(char c)
-/* push a character back onto the input stream */
-{
- if (bufptr == bufstart)
- _nc_syserr_abort("Can't backspace off beginning of line");
- *--bufptr = c;
- _nc_curr_col--;
-}
-
-static long
-stream_pos(void)
-/* return our current character position in the input stream */
-{
- return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
-}
-
-static bool
-end_of_stream(void)
-/* are we at end of input? */
-{
- return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
- ? TRUE : FALSE);
-}
-
-/* Assume we may be looking at a termcap-style continuation */
-static NCURSES_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 *after_list;
- char *after_name;
- char *numchk;
- char *ptr;
- char *s;
- char numbuf[80];
- int ch;
- int dot_flag = FALSE;
- int type;
- long number;
- long token_start;
- unsigned found;
-#ifdef TRACE
- int old_line;
- int old_col;
-#endif
-
- 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()) {
- yyin = 0;
- next_char(); /* frees its allocated memory */
- if (buffer != 0) {
- if (_nc_curr_token.tk_name == buffer)
- _nc_curr_token.tk_name = 0;
- FreeAndNull(buffer);
- }
- return (EOF);
- }
-
- start_token:
- token_start = stream_pos();
- while ((ch = next_char()) == '\n' || iswhite(ch)) {
- if (ch == '\n')
- had_newline = TRUE;
- continue;
- }
-
- ch = eat_escaped_newline(ch);
-
-#ifdef TRACE
- old_line = _nc_curr_line;
- old_col = _nc_curr_col;
-#endif
- 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(UChar(ch))
-#if NCURSES_EXT_FUNCS
- && !(ch == '.' && _nc_disable_period)
-#endif
- && !strchr(terminfo_punct, (char) ch)) {
- if (!silent)
- _nc_warning("Illegal character (expected alphanumeric or %s) - '%s'",
- terminfo_punct, unctrl((chtype) ch));
- _nc_panic_mode(separator);
- goto start_token;
- }
-
- if (buffer == 0)
- buffer = typeMalloc(char, MAX_ENTRY_SIZE);
-
-#ifdef TRACE
- old_line = _nc_curr_line;
- old_col = _nc_curr_col;
-#endif
- ptr = buffer;
- *(ptr++) = ch;
-
- if (first_column) {
- _nc_comment_start = token_start;
- _nc_comment_end = _nc_curr_file_pos;
- _nc_start_line = _nc_curr_line;
-
- _nc_syntax = ERR;
- after_name = 0;
- after_list = 0;
- while ((ch = next_char()) != '\n') {
- if (ch == EOF) {
- _nc_err_abort(MSG_NO_INPUTS);
- } else if (ch == '|') {
- after_list = ptr;
- if (after_name == 0)
- after_name = ptr;
- } else if (ch == ':' && last_char() != ',') {
- _nc_syntax = SYN_TERMCAP;
- separator = ':';
- break;
- } else if (ch == ',') {
- _nc_syntax = SYN_TERMINFO;
- separator = ',';
- /*
- * If we did not see a '|', then we found a name with no
- * aliases or description.
- */
- if (after_name == 0)
- break;
- /*
- * If we see a comma, we assume this is terminfo unless we
- * subsequently run into a colon. But we don't stop
- * looking for a colon until hitting a newline. This
- * allows commas to be embedded in description fields of
- * either syntax.
- */
- } 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. If there's no '|', then there
- * is no description.
- */
- if (after_name != 0) {
- ch = *after_name;
- *after_name = '\0';
- _nc_set_type(buffer);
- *after_name = ch;
- }
-
- /*
- * Compute the boundary between the aliases and the description
- * field for syntax-checking purposes.
- */
- if (after_list != 0) {
- if (!silent) {
- if (*after_list == '\0')
- _nc_warning("empty longname field");
- else if (strchr(after_list, ' ') == 0)
- _nc_warning("older tic versions may treat the description field as an alias");
- }
- } else {
- after_list = buffer + strlen(buffer);
- DEBUG(1, ("missing description"));
- }
-
- /*
- * 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 (s = buffer; s < after_list; ++s) {
- if (isspace(UChar(*s))) {
- if (!silent)
- _nc_warning("whitespace in name or alias field");
- break;
- } else if (*s == '/') {
- if (!silent)
- _nc_warning("slashes aren't allowed in names or aliases");
- break;
- } else if (strchr("$[]!*?", *s)) {
- if (!silent)
- _nc_warning("dubious character `%c' in name or alias field", *s);
- break;
- }
- }
-
- _nc_curr_token.tk_name = buffer;
- type = NAMES;
- } else {
- if (had_newline && _nc_syntax == SYN_TERMCAP) {
- _nc_warning("Missing backslash before newline");
- had_newline = FALSE;
- }
- while ((ch = next_char()) != EOF) {
- if (!isalnum(UChar(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(8)) {
- _tracef("parsed %d.%d to %d.%d",
- old_line, old_col,
- _nc_curr_line, _nc_curr_col);
- }
- if (_nc_tracing >= DEBUG_LEVEL(7)) {
- switch (type) {
- case BOOLEAN:
- _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(int)
-_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));
- /* FALLTHRU */
- case '|':
- *(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, provided
- * that the next line begins with whitespace.
- */
- ignored = TRUE;
- } else {
- *(ptr++) = (char) ch;
- }
-
- if (!ignored) {
- if (_nc_curr_col <= 1) {
- push_back(ch);
- ch = '\n';
- break;
- }
- last_ch = ch;
- count++;
- }
- 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 != 0)
- ? _nc_curr_token.tk_name
- : "<null>"),
- 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;
- }
-}
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_comp_scan_leaks(void)
-{
- if (pushname != 0) {
- FreeAndNull(pushname);
- }
-}
-#endif
diff --git a/contrib/ncurses/ncurses/tinfo/db_iterator.c b/contrib/ncurses/ncurses/tinfo/db_iterator.c
deleted file mode 100644
index fdc2bb09eadc..000000000000
--- a/contrib/ncurses/ncurses/tinfo/db_iterator.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
- * Iterators for terminal databases.
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-
-MODULE_ID("$Id: db_iterator.c,v 1.6 2007/04/22 00:00:26 tom Exp $")
-
-#define HaveTicDirectory _nc_globals.have_tic_directory
-#define KeepTicDirectory _nc_globals.keep_tic_directory
-#define TicDirectory _nc_globals.tic_directory
-
-/*
- * 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)
-{
- if (!KeepTicDirectory) {
- if (path != 0) {
- TicDirectory = path;
- HaveTicDirectory = TRUE;
- } else if (!HaveTicDirectory && use_terminfo_vars()) {
- char *envp;
- if ((envp = getenv("TERMINFO")) != 0)
- return _nc_tic_dir(envp);
- }
- }
- return TicDirectory;
-}
-
-/*
- * 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);
- KeepTicDirectory = TRUE;
-}
-
-/*
- * Process the list of :-separated directories, looking for the terminal type.
- * We don't use strtok because it does not show us empty tokens.
- */
-#define ThisDbList _nc_globals.dbi_list
-#define ThisDbSize _nc_globals.dbi_size
-
-/*
- * Cleanup.
- */
-NCURSES_EXPORT(void)
-_nc_last_db(void)
-{
- if (ThisDbList != 0) {
- FreeAndNull(ThisDbList);
- }
- ThisDbSize = 0;
-}
-
-/* The TERMINFO_DIRS value, if defined by the configure script, begins with a
- * ":", which will be interpreted as TERMINFO.
- */
-static const char *
-next_list_item(const char *source, int *offset)
-{
- if (source != 0) {
- FreeIfNeeded(ThisDbList);
- ThisDbList = strdup(source);
- ThisDbSize = strlen(source);
- }
-
- if (ThisDbList != 0 && ThisDbSize && *offset < ThisDbSize) {
- static char system_db[] = TERMINFO;
- char *result = ThisDbList + *offset;
- char *marker = strchr(result, NCURSES_PATHSEP);
-
- /*
- * Put a null on the marker if a separator was found. Set the offset
- * to the next position after the marker so we can call this function
- * again, using the data at the offset.
- */
- if (marker == 0) {
- *offset += strlen(result) + 1;
- marker = result + *offset;
- } else {
- *marker++ = 0;
- *offset = marker - ThisDbList;
- }
- if (*result == 0 && result != (ThisDbList + ThisDbSize))
- result = system_db;
- return result;
- }
- return 0;
-}
-
-#define NEXT_DBD(var, offset) next_list_item((*offset == 0) ? var : 0, offset)
-
-/*
- * This is a simple iterator which allows the caller to step through the
- * possible locations for a terminfo directory. ncurses uses this to find
- * terminfo files to read.
- */
-NCURSES_EXPORT(const char *)
-_nc_next_db(DBDIRS * state, int *offset)
-{
- const char *result;
- char *envp;
-
- while (*state < dbdLAST) {
- DBDIRS next = (DBDIRS) ((int) (*state) + 1);
-
- result = 0;
-
- switch (*state) {
- case dbdTIC:
- if (HaveTicDirectory)
- result = _nc_tic_dir(0);
- break;
-#if USE_DATABASE
- case dbdEnvOnce:
- if (use_terminfo_vars()) {
- if ((envp = getenv("TERMINFO")) != 0)
- result = _nc_tic_dir(envp);
- }
- break;
- case dbdHome:
- if (use_terminfo_vars()) {
- result = _nc_home_terminfo();
- }
- break;
- case dbdEnvList:
- if (use_terminfo_vars()) {
- if ((result = NEXT_DBD(getenv("TERMINFO_DIRS"), offset)) != 0)
- next = *state;
- }
- break;
- case dbdCfgList:
-#ifdef TERMINFO_DIRS
- if ((result = NEXT_DBD(TERMINFO_DIRS, offset)) != 0)
- next = *state;
-#endif
- break;
- case dbdCfgOnce:
-#ifndef TERMINFO_DIRS
- result = TERMINFO;
-#endif
- break;
-#endif /* USE_DATABASE */
-#if USE_TERMCAP
- case dbdEnvOnce2:
- if (use_terminfo_vars()) {
- if ((envp = getenv("TERMCAP")) != 0)
- result = _nc_tic_dir(envp);
- }
- break;
- case dbdEnvList2:
- if (use_terminfo_vars()) {
- if ((result = NEXT_DBD(getenv("TERMPATH"), offset)) != 0)
- next = *state;
- }
- break;
- case dbdCfgList2:
- if ((result = NEXT_DBD(TERMPATH, offset)) != 0)
- next = *state;
- break;
-#endif /* USE_TERMCAP */
- case dbdLAST:
- break;
- }
- if (*state != next) {
- *state = next;
- *offset = 0;
- _nc_last_db();
- }
- if (result != 0) {
- return result;
- }
- }
- return 0;
-}
-
-NCURSES_EXPORT(void)
-_nc_first_db(DBDIRS * state, int *offset)
-{
- *state = dbdTIC;
- *offset = 0;
-}
diff --git a/contrib/ncurses/ncurses/tinfo/doalloc.c b/contrib/ncurses/ncurses/tinfo/doalloc.c
deleted file mode 100644
index fe2a009d19b4..000000000000
--- a/contrib/ncurses/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: doalloc.c,v 1.8 2002/08/31 21:48:11 Philippe.Blain Exp $")
-
-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/contrib/ncurses/ncurses/tinfo/entries.c b/contrib/ncurses/ncurses/tinfo/entries.c
deleted file mode 100644
index 8b63f0d8965c..000000000000
--- a/contrib/ncurses/ncurses/tinfo/entries.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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 <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id: entries.c,v 1.4 2007/11/03 21:00:27 tom Exp $")
-
-/****************************************************************************
- *
- * 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;
-
-NCURSES_EXPORT(void)
-_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
-/* free the allocated storage consumed by the given list entry */
-{
- ENTRY *ep;
-
- if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
- free(ep);
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_free_entries(ENTRY * headp)
-/* free the allocated storage consumed by list entries */
-{
- (void) headp; /* unused - _nc_head is altered here! */
-
- while (_nc_head != 0) {
- _nc_free_termtype(&(_nc_head->tterm));
- }
-}
-
-NCURSES_EXPORT(ENTRY *)
-_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
-/* delink the allocated storage for the given list entry */
-{
- ENTRY *ep, *last;
-
- for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) {
- if (&(ep->tterm) == tterm) {
- if (last != 0) {
- last->next = ep->next;
- }
- if (ep == _nc_head) {
- _nc_head = ep->next;
- }
- if (ep == _nc_tail) {
- _nc_tail = last;
- }
- break;
- }
- }
- return ep;
-}
-
-NCURSES_EXPORT(void)
-_nc_leaks_tinfo(void)
-{
- char *s;
-
- T((T_CALLED("_nc_free_tinfo()")));
-#if NO_LEAKS
- _nc_free_tparm();
- _nc_tgetent_leaks();
-#endif
- _nc_free_entries(_nc_head);
- _nc_get_type(0);
- _nc_first_name(0);
-#if NO_LEAKS
- _nc_keyname_leaks();
-#endif
-#if BROKEN_LINKER || USE_REENTRANT
- _nc_names_leaks();
- _nc_codes_leaks();
-#endif
-
- if ((s = _nc_home_terminfo()) != 0)
- free(s);
- returnVoid;
-}
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_free_tinfo(int code)
-{
- _nc_leaks_tinfo();
- exit(code);
-}
-#endif
diff --git a/contrib/ncurses/ncurses/tinfo/free_ttype.c b/contrib/ncurses/ncurses/tinfo/free_ttype.c
deleted file mode 100644
index fa0fff1b83fb..000000000000
--- a/contrib/ncurses/ncurses/tinfo/free_ttype.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1999-on *
- ****************************************************************************/
-
-/*
- * 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: free_ttype.c,v 1.13 2006/06/25 10:46:02 tom Exp $")
-
-NCURSES_EXPORT(void)
-_nc_free_termtype(TERMTYPE *ptr)
-{
- T(("_nc_free_termtype(%s)", ptr->term_names));
-
- 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));
- _nc_free_entry(_nc_head, ptr);
-}
-
-#if NCURSES_XNAMES
-NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE;
-
-NCURSES_EXPORT(int)
-use_extended_names(bool flag)
-{
- int oldflag = _nc_user_definable;
-
- T((T_CALLED("use_extended_names(%d)"), flag));
- _nc_user_definable = flag;
- returnBool(oldflag);
-}
-#endif
diff --git a/contrib/ncurses/ncurses/tinfo/getenv_num.c b/contrib/ncurses/ncurses/tinfo/getenv_num.c
deleted file mode 100644
index a90cc08d297c..000000000000
--- a/contrib/ncurses/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: getenv_num.c,v 1.3 2000/12/10 02:55:07 tom Exp $")
-
-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/contrib/ncurses/ncurses/tinfo/hashed_db.c b/contrib/ncurses/ncurses/tinfo/hashed_db.c
deleted file mode 100644
index 3fc04eae3cca..000000000000
--- a/contrib/ncurses/ncurses/tinfo/hashed_db.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2006 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <tic.h>
-#include <hashed_db.h>
-
-#if USE_HASHED_DB
-
-MODULE_ID("$Id: hashed_db.c,v 1.13 2006/08/19 19:48:38 tom Exp $")
-
-#if HASHED_DB_API >= 2
-static DBC *cursor;
-#endif
-
-/*
- * Open the database.
- */
-NCURSES_EXPORT(DB *)
-_nc_db_open(const char *path, bool modify)
-{
- DB *result = 0;
-
-#if HASHED_DB_API >= 4
- db_create(&result, NULL, 0);
- result->open(result,
- NULL,
- path,
- NULL,
- DB_HASH,
- modify ? DB_CREATE : DB_RDONLY,
- 0644);
-#elif HASHED_DB_API >= 3
- db_create(&result, NULL, 0);
- result->open(result,
- path,
- NULL,
- DB_HASH,
- modify ? DB_CREATE : DB_RDONLY,
- 0644);
-#elif HASHED_DB_API >= 2
- int code;
-
- if ((code = db_open(path,
- DB_HASH,
- modify ? DB_CREATE : DB_RDONLY,
- 0644,
- (DB_ENV *) 0,
- (DB_INFO *) 0,
- &result)) != 0) {
- T(("cannot open %s: %s", path, strerror(code)));
- result = 0;
- } else {
- T(("opened %s", path));
- }
-#else
- result = dbopen(path,
- modify ? (O_CREAT | O_RDWR) : O_RDONLY,
- 0644,
- DB_HASH,
- NULL);
- if (result != 0) {
- T(("opened %s", path));
- }
-#endif
- return result;
-}
-
-/*
- * Close the database. Do not attempt to use the 'db' handle after this call.
- */
-NCURSES_EXPORT(int)
-_nc_db_close(DB * db)
-{
- int result;
-
-#if HASHED_DB_API >= 2
- result = db->close(db, 0);
-#else
- result = db->close(db);
-#endif
- return result;
-}
-
-/*
- * Write a record to the database.
- *
- * Returns 0 on success.
- *
- * FIXME: the FreeBSD cap_mkdb program assumes the database could have
- * duplicates. There appears to be no good reason for that (review/fix).
- */
-NCURSES_EXPORT(int)
-_nc_db_put(DB * db, DBT * key, DBT * data)
-{
- int result;
-#if HASHED_DB_API >= 2
- /* remove any pre-existing value, since we do not want duplicates */
- (void) db->del(db, NULL, key, 0);
- result = db->put(db, NULL, key, data, DB_NOOVERWRITE);
-#else
- result = db->put(db, key, data, R_NOOVERWRITE);
-#endif
- return result;
-}
-
-/*
- * Read a record from the database.
- *
- * Returns 0 on success.
- */
-NCURSES_EXPORT(int)
-_nc_db_get(DB * db, DBT * key, DBT * data)
-{
- int result;
-
- memset(data, 0, sizeof(*data));
-#if HASHED_DB_API >= 2
- result = db->get(db, NULL, key, data, 0);
-#else
- result = db->get(db, key, data, 0);
-#endif
- return result;
-}
-
-/*
- * Read the first record from the database, ignoring order.
- *
- * Returns 0 on success.
- */
-NCURSES_EXPORT(int)
-_nc_db_first(DB * db, DBT * key, DBT * data)
-{
- int result;
-
- memset(key, 0, sizeof(*key));
- memset(data, 0, sizeof(*data));
-#if HASHED_DB_API >= 2
- if ((result = db->cursor(db, NULL, &cursor, 0)) == 0) {
- result = cursor->c_get(cursor, key, data, DB_FIRST);
- }
-#else
- result = db->seq(db, key, data, 0);
-#endif
- return result;
-}
-
-/*
- * Read the next record from the database, ignoring order.
- *
- * Returns 0 on success.
- */
-NCURSES_EXPORT(int)
-_nc_db_next(DB * db, DBT * key, DBT * data)
-{
- int result;
-
-#if HASHED_DB_API >= 2
- (void) db;
- if (cursor != 0) {
- result = cursor->c_get(cursor, key, data, DB_NEXT);
- } else {
- result = -1;
- }
-#else
- result = db->seq(db, key, data, 0);
-#endif
- return result;
-}
-
-/*
- * Check if a record is a terminfo index record. Index records are those that
- * contain only an alias pointing to a list of aliases.
- */
-NCURSES_EXPORT(bool)
-_nc_db_have_index(DBT * key, DBT * data, char **buffer, int *size)
-{
- bool result = FALSE;
- int used = data->size - 1;
- char *have = (char *) data->data;
-
- (void) key;
- if (*have++ == 2) {
- result = TRUE;
- }
- /*
- * Update params in any case for consistency with _nc_db_have_data().
- */
- *buffer = have;
- *size = used;
- return result;
-}
-
-/*
- * Check if a record is the terminfo data record. Ignore index records, e.g.,
- * those that contain only an alias pointing to a list of aliases.
- */
-NCURSES_EXPORT(bool)
-_nc_db_have_data(DBT * key, DBT * data, char **buffer, int *size)
-{
- bool result = FALSE;
- int used = data->size - 1;
- char *have = (char *) data->data;
-
- if (*have++ == 0) {
- if (data->size > key->size
- && IS_TIC_MAGIC(have)) {
- result = TRUE;
- }
- }
- /*
- * Update params in any case to make it simple to follow a index record
- * to the data record.
- */
- *buffer = have;
- *size = used;
- return result;
-}
-
-#else
-
-extern
-NCURSES_EXPORT(void)
-_nc_hashed_db(void);
-
-NCURSES_EXPORT(void)
-_nc_hashed_db(void)
-{
-}
-
-#endif /* USE_HASHED_DB */
diff --git a/contrib/ncurses/ncurses/tinfo/home_terminfo.c b/contrib/ncurses/ncurses/tinfo/home_terminfo.c
deleted file mode 100644
index 92c26705a016..000000000000
--- a/contrib/ncurses/ncurses/tinfo/home_terminfo.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
- * home_terminfo.c -- return the $HOME/.terminfo string, expanded
- */
-
-#include <curses.priv.h>
-#include <tic.h>
-
-MODULE_ID("$Id: home_terminfo.c,v 1.10 2007/04/21 23:11:53 tom Exp $")
-
-#define my_length (strlen(home) + sizeof(PRIVATE_INFO))
-
-/* ncurses extension...fall back on user's private directory */
-
-#define MyBuffer _nc_globals.home_terminfo
-
-NCURSES_EXPORT(char *)
-_nc_home_terminfo(void)
-{
- char *result = 0;
-#if USE_HOME_TERMINFO
- char *home;
-
- if (use_terminfo_vars()) {
- if (MyBuffer == 0) {
- if ((home = getenv("HOME")) != 0
- && my_length <= PATH_MAX) {
- MyBuffer = typeMalloc(char, my_length);
- if (MyBuffer == 0)
- _nc_err_abort(MSG_NO_MEMORY);
- (void) sprintf(MyBuffer, PRIVATE_INFO, home);
- }
- }
- result = MyBuffer;
- }
-#endif
- return result;
-}
diff --git a/contrib/ncurses/ncurses/tinfo/init_keytry.c b/contrib/ncurses/ncurses/tinfo/init_keytry.c
deleted file mode 100644
index d30d3ed16a87..000000000000
--- a/contrib/ncurses/ncurses/tinfo/init_keytry.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 */
-
-#include <term_entry.h>
-
-MODULE_ID("$Id: init_keytry.c,v 1.11 2008/05/03 23:09:15 tom Exp $")
-
-/*
-** _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
-const struct tinfo_fkeys *
-_nc_tinfo_fkeysf(void)
-{
- return _nc_tinfo_fkeys;
-}
-#endif
-
-NCURSES_EXPORT(void)
-_nc_init_keytry(SCREEN *sp)
-{
- 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.
- */
-
- if (sp != 0) {
- for (n = 0; _nc_tinfo_fkeys[n].code; n++) {
- if (_nc_tinfo_fkeys[n].offset < STRCOUNT) {
- (void) _nc_add_to_try(&(sp->_keytry),
- CUR Strings[_nc_tinfo_fkeys[n].offset],
- _nc_tinfo_fkeys[n].code);
- }
- }
-#if NCURSES_XNAMES
- /*
- * Add any of the extended strings to the tries if their name begins
- * with 'k', i.e., they follow the convention of other terminfo key
- * names.
- */
- {
- TERMTYPE *tp = &(sp->_term->type);
- for (n = STRCOUNT; n < NUM_STRINGS(tp); ++n) {
- const char *name = ExtStrname(tp, n, strnames);
- char *value = tp->Strings[n];
- if (name != 0
- && *name == 'k'
- && value != 0
- && key_defined(value) == 0) {
- (void) _nc_add_to_try(&(sp->_keytry),
- value,
- n - STRCOUNT + KEY_MAX);
- }
- }
- }
-#endif
-#ifdef TRACE
- _nc_trace_tries(sp->_keytry);
-#endif
- }
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_acs.c b/contrib/ncurses/ncurses/tinfo/lib_acs.c
deleted file mode 100644
index 6a24285460b3..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_acs.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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>
-#include <term.h> /* ena_acs, acs_chars */
-
-MODULE_ID("$Id: lib_acs.c,v 1.34 2007/09/29 20:37:13 tom Exp $")
-
-#if BROKEN_LINKER || USE_REENTRANT
-#define MyBuffer _nc_prescreen.real_acs_map
-NCURSES_EXPORT_VAR(chtype *)
-_nc_acs_map(void)
-{
- if (MyBuffer == 0)
- MyBuffer = typeCalloc(chtype, ACS_LEN);
- return MyBuffer;
-}
-#undef MyBuffer
-#else
-NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] =
-{
- 0
-};
-#endif
-
-NCURSES_EXPORT(void)
-_nc_init_acs(void)
-{
- chtype *fake_map = acs_map;
- chtype *real_map = SP != 0 ? SP->_acs_map : fake_map;
- int j;
-
- T(("initializing ACS map"));
-
- /*
- * If we're using this from curses (rather than terminfo), we are storing
- * the mapping information in the SCREEN struct so we can decide how to
- * render it.
- */
- if (real_map != fake_map) {
- for (j = 1; j < ACS_LEN; ++j) {
- real_map[j] = 0;
- fake_map[j] = A_ALTCHARSET | j;
- SP->_screen_acs_map[j] = FALSE;
- }
- } else {
- for (j = 1; j < ACS_LEN; ++j) {
- real_map[j] = 0;
- }
- }
-
- /*
- * Initializations for a UNIX-like multi-terminal environment. Use
- * ASCII chars and count on the terminfo description to do better.
- */
- real_map['l'] = '+'; /* should be upper left corner */
- real_map['m'] = '+'; /* should be lower left corner */
- real_map['k'] = '+'; /* should be upper right corner */
- real_map['j'] = '+'; /* should be lower right corner */
- real_map['u'] = '+'; /* should be tee pointing left */
- real_map['t'] = '+'; /* should be tee pointing right */
- real_map['v'] = '+'; /* should be tee pointing up */
- real_map['w'] = '+'; /* should be tee pointing down */
- real_map['q'] = '-'; /* should be horizontal line */
- real_map['x'] = '|'; /* should be vertical line */
- real_map['n'] = '+'; /* should be large plus or crossover */
- real_map['o'] = '~'; /* should be scan line 1 */
- real_map['s'] = '_'; /* should be scan line 9 */
- real_map['`'] = '+'; /* should be diamond */
- real_map['a'] = ':'; /* should be checker board (stipple) */
- real_map['f'] = '\''; /* should be degree symbol */
- real_map['g'] = '#'; /* should be plus/minus */
- real_map['~'] = 'o'; /* should be bullet */
- real_map[','] = '<'; /* should be arrow pointing left */
- real_map['+'] = '>'; /* should be arrow pointing right */
- real_map['.'] = 'v'; /* should be arrow pointing down */
- real_map['-'] = '^'; /* should be arrow pointing up */
- real_map['h'] = '#'; /* should be board of squares */
- real_map['i'] = '#'; /* should be lantern symbol */
- real_map['0'] = '#'; /* should be solid square block */
- /* these defaults were invented for ncurses */
- real_map['p'] = '-'; /* should be scan line 3 */
- real_map['r'] = '-'; /* should be scan line 7 */
- real_map['y'] = '<'; /* should be less-than-or-equal-to */
- real_map['z'] = '>'; /* should be greater-than-or-equal-to */
- real_map['{'] = '*'; /* should be greek pi */
- real_map['|'] = '!'; /* should be not-equal */
- real_map['}'] = 'f'; /* should be pound-sterling symbol */
-
- if (ena_acs != NULL) {
- TPUTS_TRACE("ena_acs");
- putp(ena_acs);
- }
-#if NCURSES_EXT_FUNCS
- /*
- * Linux console "supports" the "PC ROM" character set by the coincidence
- * that smpch/rmpch and smacs/rmacs have the same values. ncurses has
- * no codepage support (see SCO Merge for an example). Outside of the
- * values defined in acsc, there are no definitions for the "PC ROM"
- * character set (assumed by some applications to be codepage 437), but we
- * allow those applications to use those codepoints.
- *
- * test/blue.c uses this feature.
- */
-#define PCH_KLUDGE(a,b) (a != 0 && b != 0 && !strcmp(a,b))
- if (PCH_KLUDGE(enter_pc_charset_mode, enter_alt_charset_mode) &&
- PCH_KLUDGE(exit_pc_charset_mode, exit_alt_charset_mode)) {
- size_t i;
- for (i = 1; i < ACS_LEN; ++i) {
- if (real_map[i] == 0) {
- real_map[i] = i;
- if (real_map != fake_map) {
- if (SP != 0)
- SP->_screen_acs_map[i] = TRUE;
- }
- }
- }
- }
-#endif
-
- if (acs_chars != NULL) {
- size_t i = 0;
- size_t length = strlen(acs_chars);
-
- while (i + 1 < length) {
- if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) {
- real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET;
- if (SP != 0)
- SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE;
- }
- i += 2;
- }
- }
-#ifdef TRACE
- /* Show the equivalent mapping, noting if it does not match the
- * given attribute, whether by re-ordering or duplication.
- */
- if (USE_TRACEF(TRACE_CALLS)) {
- size_t n, m;
- char show[ACS_LEN * 2 + 1];
- for (n = 1, m = 0; n < ACS_LEN; n++) {
- if (real_map[n] != 0) {
- show[m++] = (char) n;
- show[m++] = ChCharOf(real_map[n]);
- }
- }
- show[m] = 0;
- if (acs_chars == NULL || strcmp(acs_chars, show))
- _tracef("%s acs_chars %s",
- (acs_chars == NULL) ? "NULL" : "READ",
- _nc_visbuf(acs_chars));
- _tracef("%s acs_chars %s",
- (acs_chars == NULL)
- ? "NULL"
- : (strcmp(acs_chars, show)
- ? "DIFF"
- : "SAME"),
- _nc_visbuf(show));
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_baudrate.c b/contrib/ncurses/ncurses/tinfo/lib_baudrate.c
deleted file mode 100644
index 4070160da393..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_baudrate.c
+++ /dev/null
@@ -1,235 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * lib_baudrate.c
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term, pad_char */
-#include <termcap.h> /* ospeed */
-#if defined(__FreeBSD__)
-#include <sys/param.h>
-#endif
-
-/*
- * 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__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)
-#undef B0
-#undef B50
-#undef B75
-#undef B110
-#undef B134
-#undef B150
-#undef B200
-#undef B300
-#undef B600
-#undef B1200
-#undef B1800
-#undef B2400
-#undef B4800
-#undef B9600
-#undef B19200
-#undef EXTA
-#undef B38400
-#undef EXTB
-#undef B57600
-#undef B115200
-#undef B230400
-#undef B460800
-#undef B921600
-#define USE_OLD_TTY
-#include <sys/ttydev.h>
-#else
-#undef USE_OLD_TTY
-#endif /* USE_OLD_TTY */
-
-MODULE_ID("$Id: lib_baudrate.c,v 1.25 2007/10/20 15:00:41 Rong-En.Fan Exp $")
-
-/*
- * 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)
-{
-#if !USE_REENTRANT
- static int last_OSpeed;
- static int last_baudrate;
-#endif
-
- int result = ERR;
- unsigned i;
-
-#if !USE_REENTRANT
- if (OSpeed == last_OSpeed) {
- result = last_baudrate;
- }
-#endif
- if (result == ERR) {
- if (OSpeed >= 0) {
- for (i = 0; i < SIZEOF(speeds); i++) {
- if (speeds[i].s == OSpeed) {
- result = speeds[i].sp;
- break;
- }
- }
- }
-#if !USE_REENTRANT
- if (OSpeed == last_OSpeed) {
- last_OSpeed = OSpeed;
- last_baudrate = result;
- }
-#endif
- }
- 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/contrib/ncurses/ncurses/tinfo/lib_cur_term.c b/contrib/ncurses/ncurses/tinfo/lib_cur_term.c
deleted file mode 100644
index 8fccc2f88d08..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_cur_term.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: lib_cur_term.c,v 1.13 2003/12/27 18:21:30 tom Exp $")
-
-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
-
-NCURSES_EXPORT(TERMINAL *)
-set_curterm(TERMINAL * termp)
-{
- TERMINAL *oldterm = cur_term;
-
- T((T_CALLED("set_curterm(%p)"), termp));
-
- if ((cur_term = termp) != 0) {
- ospeed = _nc_ospeed(cur_term->_baudrate);
- PC = (pad_char != NULL) ? pad_char[0] : 0;
- }
- T((T_RETURN("%p"), oldterm));
- return (oldterm);
-}
-
-NCURSES_EXPORT(int)
-del_curterm(TERMINAL * termp)
-{
- T((T_CALLED("del_curterm(%p)"), termp));
-
- if (termp != 0) {
- _nc_free_termtype(&(termp->type));
- FreeIfNeeded(termp->_termname);
- free(termp);
- if (termp == cur_term)
- cur_term = 0;
- returnCode(OK);
- }
- returnCode(ERR);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_data.c b/contrib/ncurses/ncurses/tinfo/lib_data.c
deleted file mode 100644
index ba37e5dc8c49..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_data.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_data.c
-**
-** Common data that may/may not be allocated, but is referenced globally
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_data.c,v 1.43 2008/03/29 21:16:49 tom Exp $")
-
-/*
- * OS/2's native linker complains if we don't initialize public data when
- * constructing a dll (reported by J.J.G.Ripoll).
- */
-#if USE_REENTRANT
-NCURSES_EXPORT(WINDOW *)
-NCURSES_PUBLIC_VAR(stdscr) (void)
-{
- return SP ? SP->_stdscr : 0;
-}
-NCURSES_EXPORT(WINDOW *)
-NCURSES_PUBLIC_VAR(curscr) (void)
-{
- return SP ? SP->_curscr : 0;
-}
-NCURSES_EXPORT(WINDOW *)
-NCURSES_PUBLIC_VAR(newscr) (void)
-{
- return SP ? SP->_newscr : 0;
-}
-#else
-NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *) curscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *) newscr = 0;
-#endif
-
-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
-/* *INDENT-OFF* */
-#define CHARS_0s { '\0' }
-
-#define TGETENT_0 { 0L, FALSE, NULL, NULL, NULL }
-#define TGETENT_0s { TGETENT_0, TGETENT_0, TGETENT_0, TGETENT_0 }
-
-NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
- 0, /* have_sigwinch */
- 0, /* cleanup_nested */
-
- FALSE, /* init_signals */
- FALSE, /* init_screen */
-
- NULL, /* comp_sourcename */
- NULL, /* comp_termtype */
-
- FALSE, /* have_tic_directory */
- FALSE, /* keep_tic_directory */
- TERMINFO, /* tic_directory */
-
- NULL, /* dbi_list */
- 0, /* dbi_size */
-
- NULL, /* first_name */
- NULL, /* keyname_table */
-
- 0, /* slk_format */
-
- NULL, /* safeprint_buf */
- 0, /* safeprint_used */
-
- TGETENT_0s, /* tgetent_cache */
- 0, /* tgetent_index */
- 0, /* tgetent_sequence */
-
- 0, /* _nc_windowlist */
-
-#if USE_HOME_TERMINFO
- NULL, /* home_terminfo */
-#endif
-
-#if !USE_SAFE_SPRINTF
- 0, /* safeprint_cols */
- 0, /* safeprint_rows */
-#endif
-
-#ifdef TRACE
- FALSE, /* init_trace */
- CHARS_0s, /* trace_fname */
- 0, /* trace_level */
- NULL, /* trace_fp */
-
- NULL, /* tracearg_buf */
- 0, /* tracearg_used */
-
- NULL, /* tracebuf_ptr */
- 0, /* tracebuf_used */
-
- CHARS_0s, /* tracechr_buf */
-
- NULL, /* tracedmp_buf */
- 0, /* tracedmp_used */
-
- CHARS_0s, /* tracemse_buf */
-
- NULL, /* tracetry_buf */
- 0, /* tracetry_used */
-
- { CHARS_0s, CHARS_0s }, /* traceatr_color_buf */
- 0, /* traceatr_color_sel */
- -1, /* traceatr_color_last */
-
-#endif /* TRACE */
-#ifdef USE_PTHREADS
- PTHREAD_MUTEX_INITIALIZER, /* mutex_set_SP */
- PTHREAD_MUTEX_INITIALIZER, /* mutex_use_screen */
- PTHREAD_MUTEX_INITIALIZER, /* mutex_use_window */
- PTHREAD_MUTEX_INITIALIZER, /* mutex_windowlist */
- PTHREAD_MUTEX_INITIALIZER, /* mutex_tst_tracef */
- PTHREAD_MUTEX_INITIALIZER, /* mutex_tracef */
- 0, /* nested_tracef */
-#endif
-};
-
-#define STACK_FRAME_0 { { 0 }, 0 }
-#define STACK_FRAME_0s { STACK_FRAME_0 }
-#define NUM_VARS_0s { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
-
-#define RIPOFF_0 { 0,0,0 }
-#define RIPOFF_0s { RIPOFF_0 }
-
-NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = {
- TRUE, /* use_env */
- FALSE, /* filter_mode */
- A_NORMAL, /* previous_attr */
- RIPOFF_0s, /* ripoff */
- NULL, /* rsp */
- { /* tparm_state */
-#ifdef TRACE
- NULL, /* tname */
-#endif
- NULL, /* tparam_base */
-
- STACK_FRAME_0s, /* stack */
- 0, /* stack_ptr */
-
- NULL, /* out_buff */
- 0, /* out_size */
- 0, /* out_used */
-
- NULL, /* fmt_buff */
- 0, /* fmt_size */
-
- NUM_VARS_0s, /* dynamic_var */
- NUM_VARS_0s, /* static_vars */
- },
- NULL, /* saved_tty */
-#if BROKEN_LINKER || USE_REENTRANT
- NULL, /* real_acs_map */
- 0, /* LINES */
- 0, /* COLS */
-#ifdef TRACE
- 0L, /* _outchars */
- NULL, /* _tputs_trace */
-#endif
-#endif
-};
-/* *INDENT-ON* */
-
-/******************************************************************************/
-#ifdef USE_PTHREADS
-static void
-init_global_mutexes(void)
-{
- static bool initialized = FALSE;
-
- if (!initialized) {
- initialized = TRUE;
- _nc_mutex_init(&_nc_globals.mutex_set_SP);
- _nc_mutex_init(&_nc_globals.mutex_use_screen);
- _nc_mutex_init(&_nc_globals.mutex_use_window);
- _nc_mutex_init(&_nc_globals.mutex_windowlist);
- _nc_mutex_init(&_nc_globals.mutex_tst_tracef);
- _nc_mutex_init(&_nc_globals.mutex_tracef);
- }
-}
-
-/*
- * Use recursive mutexes if we have them - they're part of Unix98.
- * For the cases where we do not, _nc_mutex_trylock() is used to avoid a
- * deadlock, at the expense of memory leaks and unexpected failures that
- * may not be handled by typical clients.
- *
- * FIXME - need configure check for PTHREAD_MUTEX_RECURSIVE, define it to
- * PTHREAD_MUTEX_NORMAL if not supported.
- */
-NCURSES_EXPORT(void)
-_nc_mutex_init(pthread_mutex_t * obj)
-{
- pthread_mutexattr_t recattr;
-
- memset(&recattr, 0, sizeof(recattr));
- pthread_mutexattr_settype(&recattr, PTHREAD_MUTEX_RECURSIVE);
- pthread_mutex_init(obj, &recattr);
-}
-
-NCURSES_EXPORT(int)
-_nc_mutex_lock(pthread_mutex_t * obj)
-{
- init_global_mutexes();
- return pthread_mutex_lock(obj);
-}
-
-NCURSES_EXPORT(int)
-_nc_mutex_trylock(pthread_mutex_t * obj)
-{
- init_global_mutexes();
- return pthread_mutex_trylock(obj);
-}
-
-NCURSES_EXPORT(int)
-_nc_mutex_unlock(pthread_mutex_t * obj)
-{
- init_global_mutexes();
- return pthread_mutex_unlock(obj);
-}
-#endif /* USE_PTHREADS */
diff --git a/contrib/ncurses/ncurses/tinfo/lib_has_cap.c b/contrib/ncurses/ncurses/tinfo/lib_has_cap.c
deleted file mode 100644
index 0dc66bd9b918..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_has_cap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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-2003 *
- ****************************************************************************/
-
-/*
-** lib_has_cap.c
-**
-** The routines to query terminal capabilities
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id: lib_has_cap.c,v 1.4 2003/10/25 19:43:55 tom Exp $")
-
-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/contrib/ncurses/ncurses/tinfo/lib_kernel.c b/contrib/ncurses/ncurses/tinfo/lib_kernel.c
deleted file mode 100644
index 89dc1e80ea8e..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_kernel.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_kernel.c,v 1.24 2004/05/08 17:11:21 tom Exp $")
-
-static int
-_nc_vdisable(void)
-{
- int value = -1;
-#if defined(_POSIX_VDISABLE) && 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/contrib/ncurses/ncurses/tinfo/lib_longname.c b/contrib/ncurses/ncurses/tinfo/lib_longname.c
deleted file mode 100644
index 1301ee516944..000000000000
--- a/contrib/ncurses/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: lib_longname.c,v 1.9 2000/12/10 02:55:07 tom Exp $")
-
-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/contrib/ncurses/ncurses/tinfo/lib_napms.c b/contrib/ncurses/ncurses/tinfo/lib_napms.c
deleted file mode 100644
index 417b3b4b4dbc..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_napms.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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.
- *
- * (This file was originally written by Eric Raymond; however except for
- * comments, none of the original code remains - T.Dickey).
- */
-
-#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: lib_napms.c,v 1.17 2008/05/03 21:34:13 tom Exp $")
-
-NCURSES_EXPORT(int)
-napms(int ms)
-{
- T((T_CALLED("napms(%d)"), ms));
-
-#if HAVE_NANOSLEEP
- {
- struct timespec request, remaining;
- request.tv_sec = ms / 1000;
- request.tv_nsec = (ms % 1000) * 1000000;
- while (nanosleep(&request, &remaining) == -1
- && errno == EINTR) {
- request = remaining;
- }
- }
-#else
- _nc_timed_wait(0, 0, ms, (int *) 0 EVENTLIST_2nd(0));
-#endif
-
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_options.c b/contrib/ncurses/ncurses/tinfo/lib_options.c
deleted file mode 100644
index 98aae24baacb..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_options.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** lib_options.c
-**
-** The routines to handle option setting.
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id: lib_options.c,v 1.52 2008/05/03 23:09:20 tom Exp $")
-
-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 || SP == 0)
- 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("notimeout(%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(SP, flag));
- } else
- returnCode(ERR);
-}
-
-NCURSES_EXPORT(int)
-meta(WINDOW *win GCC_UNUSED, bool flag)
-{
- int result = ERR;
-
- /* Ok, we stay relaxed and don't signal an error if win is NULL */
- T((T_CALLED("meta(%p,%d)"), win, flag));
-
- if (SP != 0) {
- 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);
- }
- result = OK;
- }
- returnCode(result);
-}
-
-/* curs_set() moved here to narrow the kernel interface */
-
-NCURSES_EXPORT(int)
-curs_set(int vis)
-{
- int result = ERR;
-
- T((T_CALLED("curs_set(%d)"), vis));
- if (SP != 0 && vis >= 0 && vis <= 2) {
- int cursor = SP->_cursor;
-
- if (vis == cursor) {
- result = cursor;
- } else {
- result = (cursor == -1 ? 1 : cursor);
- switch (vis) {
- case 2:
- if (cursor_visible) {
- TPUTS_TRACE("cursor_visible");
- putp(cursor_visible);
- } else
- result = ERR;
- break;
- case 1:
- if (cursor_normal) {
- TPUTS_TRACE("cursor_normal");
- putp(cursor_normal);
- } else
- result = ERR;
- break;
- case 0:
- if (cursor_invisible) {
- TPUTS_TRACE("cursor_invisible");
- putp(cursor_invisible);
- } else
- result = ERR;
- break;
- }
- SP->_cursor = vis;
- _nc_flush();
- }
- }
- returnCode(result);
-}
-
-NCURSES_EXPORT(int)
-typeahead(int fd)
-{
- T((T_CALLED("typeahead(%d)"), fd));
- if (SP != 0) {
- SP->_checkfd = fd;
- returnCode(OK);
- } else {
- returnCode(ERR);
- }
-}
-
-/*
-** has_key()
-**
-** Return TRUE if the current terminal has the given key
-**
-*/
-
-#if NCURSES_EXT_FUNCS
-static int
-has_key_internal(int keycode, 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(SP != 0 ? has_key_internal(keycode, SP->_keytry) : FALSE);
-}
-#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(SCREEN *sp, 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 (sp != 0) {
- if (flag && !sp->_tried) {
- _nc_init_keytry(sp);
- sp->_tried = TRUE;
- }
- sp->_keypad_on = flag;
- }
- return (OK);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_print.c b/contrib/ncurses/ncurses/tinfo/lib_print.c
deleted file mode 100644
index 975b46d85773..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_print.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_print.c,v 1.16 2006/11/26 00:26:34 tom Exp $")
-
-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_1(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/contrib/ncurses/ncurses/tinfo/lib_raw.c b/contrib/ncurses/ncurses/tinfo/lib_raw.c
deleted file mode 100644
index 58e71889af12..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_raw.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_raw.c,v 1.14 2007/09/29 21:50:22 tom Exp $")
-
-#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 (USE_TRACEF(TRACE_BITS)) _nc_locked_tracef("%s before bits: %s", N, _nc_tracebits())
-#define AFTER(N) if (USE_TRACEF(TRACE_BITS)) _nc_locked_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/contrib/ncurses/ncurses/tinfo/lib_setup.c b/contrib/ncurses/ncurses/tinfo/lib_setup.c
deleted file mode 100644
index 08cb783c5942..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_setup.c
+++ /dev/null
@@ -1,618 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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
-
-#if HAVE_LOCALE_H
-#include <locale.h>
-#endif
-
-#include <term.h> /* lines, columns, cur_term */
-
-MODULE_ID("$Id: lib_setup.c,v 1.105 2008/05/03 22:41:42 tom Exp $")
-
-/****************************************************************************
- *
- * 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
-
-#if HAVE_LANGINFO_CODESET
-#include <langinfo.h>
-#endif
-
-/*
- * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
- * Solaris, IRIX) define TIOCGWINSZ and struct winsize.
- */
-#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
-
-/*
- * Wrap global variables in this module.
- */
-#if USE_REENTRANT
-NCURSES_EXPORT(char *)
-NCURSES_PUBLIC_VAR(ttytype) (void)
-{
- static char empty[] = "";
- return cur_term ? cur_term->type.term_names : empty;
-}
-NCURSES_EXPORT(int)
-NCURSES_PUBLIC_VAR(LINES) (void)
-{
- return (SP ? SP->_LINES : _nc_prescreen._LINES);
-}
-NCURSES_EXPORT(int)
-NCURSES_PUBLIC_VAR(COLS) (void)
-{
- return SP ? SP->_COLS : _nc_prescreen._COLS;
-}
-NCURSES_EXPORT(int)
-NCURSES_PUBLIC_VAR(TABSIZE) (void)
-{
- return SP ? SP->_TABSIZE : 8;
-}
-#else
-NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
-NCURSES_EXPORT_VAR(int) LINES = 0;
-NCURSES_EXPORT_VAR(int) COLS = 0;
-NCURSES_EXPORT_VAR(int) TABSIZE = 0;
-#endif
-
-#if NCURSES_EXT_FUNCS
-NCURSES_EXPORT(int)
-set_tabsize(int value)
-{
- int code = OK;
-#if USE_REENTRANT
- if (SP) {
- SP->_TABSIZE = value;
- } else {
- code = ERR;
- }
-#else
- TABSIZE = value;
-#endif
- return code;
-}
-#endif
-
-#if USE_SIGWINCH
-/*
- * If we have a pending SIGWINCH, set the flag in each screen.
- */
-NCURSES_EXPORT(int)
-_nc_handle_sigwinch(SCREEN *sp)
-{
- SCREEN *scan;
-
- if (_nc_globals.have_sigwinch) {
- _nc_globals.have_sigwinch = 0;
-
- for (each_screen(scan)) {
- scan->_sig_winch = TRUE;
- }
- }
-
- return (sp ? sp->_sig_winch : 0);
-}
-
-#endif
-
-NCURSES_EXPORT(void)
-use_env(bool f)
-{
- T((T_CALLED("use_env()")));
- _nc_prescreen.use_env = f;
- returnVoid;
-}
-
-NCURSES_EXPORT(void)
-_nc_get_screensize(SCREEN *sp, int *linep, int *colp)
-/* Obtain lines/columns values from the environment and/or terminfo entry */
-{
- int my_tabsize;
-
- /* figure out the size of the screen */
- T(("screen size: terminfo lines = %d columns = %d", lines, columns));
-
- if (!_nc_prescreen.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 = (sp != 0 && sp->_filtered) ? 1 : 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))
- my_tabsize = (int) init_tabs;
- else
- my_tabsize = 8;
-
-#if USE_REENTRANT
- if (sp != 0)
- sp->_TABSIZE = my_tabsize;
-#else
- TABSIZE = my_tabsize;
-#endif
- T(("TABSIZE = %d", TABSIZE));
-}
-
-#if USE_SIZECHANGE
-NCURSES_EXPORT(void)
-_nc_update_screensize(SCREEN *sp)
-{
- int old_lines = lines;
- int new_lines;
- int old_cols = columns;
- int new_cols;
-
- _nc_get_screensize(sp, &new_lines, &new_cols);
-
- /*
- * See is_term_resized() and resizeterm().
- * We're doing it this way because those functions belong to the upper
- * ncurses library, while this resides in the lower terminfo library.
- */
- if (sp != 0
- && sp->_resize != 0) {
- if ((new_lines != old_lines) || (new_cols != old_cols))
- sp->_resize(new_lines, new_cols);
- sp->_sig_winch = FALSE;
- }
-}
-#endif
-
-/****************************************************************************
- *
- * 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
-/*
- * Return 1 if entry found, 0 if not found, -1 if database not accessible,
- * just like tgetent().
- */
-static int
-grab_entry(const char *const tn, TERMTYPE *const tp)
-{
- char filename[PATH_MAX];
- int status = _nc_read_entry(tn, filename, tp);
-
- /*
- * 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 == TGETENT_YES) {
- unsigned 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
-
-/*
-** 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;
- }
- }
-}
-
-/*
- * Find the locale which is in effect.
- */
-NCURSES_EXPORT(char *)
-_nc_get_locale(void)
-{
- char *env;
-#if HAVE_LOCALE_H
- /*
- * This is preferable to using getenv() since it ensures that we are using
- * the locale which was actually initialized by the application.
- */
- env = setlocale(LC_CTYPE, 0);
-#else
- if (((env = getenv("LC_ALL")) != 0 && *env != '\0')
- || ((env = getenv("LC_CTYPE")) != 0 && *env != '\0')
- || ((env = getenv("LANG")) != 0 && *env != '\0')) {
- ;
- }
-#endif
- T(("_nc_get_locale %s", _nc_visbuf(env)));
- return env;
-}
-
-/*
- * Check if we are running in a UTF-8 locale.
- */
-NCURSES_EXPORT(int)
-_nc_unicode_locale(void)
-{
- int result = 0;
-#if HAVE_LANGINFO_CODESET
- char *env = nl_langinfo(CODESET);
- result = !strcmp(env, "UTF-8");
- T(("_nc_unicode_locale(%s) ->%d", env, result));
-#else
- char *env = _nc_get_locale();
- if (env != 0) {
- if (strstr(env, ".UTF-8") != 0) {
- result = 1;
- T(("_nc_unicode_locale(%s) ->%d", env, result));
- }
- }
-#endif
- return result;
-}
-
-#define CONTROL_N(s) ((s) != 0 && strstr(s, "\016") != 0)
-#define CONTROL_O(s) ((s) != 0 && strstr(s, "\017") != 0)
-
-/*
- * Check for known broken cases where a UTF-8 locale breaks the alternate
- * character set.
- */
-NCURSES_EXPORT(int)
-_nc_locale_breaks_acs(void)
-{
- char *env;
-
- if ((env = getenv("NCURSES_NO_UTF8_ACS")) != 0) {
- return atoi(env);
- } else if ((env = getenv("TERM")) != 0) {
- if (strstr(env, "linux"))
- return 1; /* always broken */
- if (strstr(env, "screen") != 0
- && ((env = getenv("TERMCAP")) != 0
- && strstr(env, "screen") != 0)
- && strstr(env, "hhII00") != 0) {
- if (CONTROL_N(enter_alt_charset_mode) ||
- CONTROL_O(enter_alt_charset_mode) ||
- CONTROL_N(set_attributes) ||
- CONTROL_O(set_attributes))
- return 1;
- }
- }
- return 0;
-}
-
-/*
- * This entrypoint is called from tgetent() to allow a special case of reusing
- * the same TERMINAL data (see comment).
- */
-NCURSES_EXPORT(int)
-_nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
-{
- 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(TGETENT_ERR, "TERM environment variable not set.\n");
- }
- }
-
- if (strlen(tname) > MAX_NAME_SIZE) {
- ret_error(TGETENT_ERR,
- "TERM environment must be <= %d characters.\n",
- MAX_NAME_SIZE);
- }
-
- T(("your terminal name is %s", tname));
-
- /*
- * 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;
-
- /*
- * Check if we have already initialized to use this terminal. If so, we
- * do not need to re-read the terminfo entry, or obtain TTY settings.
- *
- * This is an improvement 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 (reuse
- && cur_term != 0
- && cur_term->Filedes == Filedes
- && cur_term->_termname != 0
- && !strcmp(cur_term->_termname, tname)
- && _nc_name_match(cur_term->type.term_names, tname, "|")) {
- T(("reusing existing terminal information and mode-settings"));
- } else {
- TERMINAL *term_ptr;
-
- term_ptr = typeCalloc(TERMINAL, 1);
-
- if (term_ptr == 0) {
- ret_error0(TGETENT_ERR,
- "Not enough memory to create terminal structure.\n");
- }
-#if USE_DATABASE || USE_TERMCAP
- status = grab_entry(tname, &term_ptr->type);
-#else
- status = TGETENT_NO;
-#endif
-
- /* try fallback list if entry on disk */
- if (status != TGETENT_YES) {
- const TERMTYPE *fallback = _nc_fallback(tname);
-
- if (fallback) {
- term_ptr->type = *fallback;
- status = TGETENT_YES;
- }
- }
-
- if (status != TGETENT_YES) {
- del_curterm(term_ptr);
- if (status == TGETENT_ERR) {
- ret_error0(status, "terminals database is inaccessible\n");
- } else if (status == TGETENT_NO) {
- ret_error(status, "'%s': unknown terminal type.\n", tname);
- }
- }
-
- set_curterm(term_ptr);
-
- if (command_character && getenv("CC"))
- do_prototype();
-
-#if !USE_REENTRANT
- strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
- ttytype[NAMESIZE - 1] = '\0';
-#endif
-
- cur_term->Filedes = Filedes;
- cur_term->_termname = strdup(tname);
-
- /*
- * 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();
- }
- }
-
- /*
- * We should always check the screensize, just in case.
- */
-#if USE_REENTRANT
- _nc_get_screensize(SP,
- SP ? &(SP->_LINES) : &(_nc_prescreen._LINES),
- SP ? &(SP->_COLS) : &(_nc_prescreen._COLS));
-#else
- _nc_get_screensize(SP, &LINES, &COLS);
-#endif
-
- if (errret)
- *errret = TGETENT_YES;
-
- if (generic_type) {
- ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname);
- }
- if (hard_copy) {
- ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname);
- }
- returnCode(OK);
-}
-
-/*
- * setupterm(termname, Filedes, errret)
- *
- * Find and read the appropriate object file for the terminal
- * Make cur_term point to the structure.
- */
-NCURSES_EXPORT(int)
-setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
-{
- return _nc_setupterm(tname, Filedes, errret, FALSE);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_termcap.c b/contrib/ncurses/ncurses/tinfo/lib_termcap.c
deleted file mode 100644
index ff97eea920f8..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_termcap.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- * *
- * some of the code in here was contributed by: *
- * Magnus Bengtsson, d6mbeng@dtek.chalmers.se (Nov'93) *
- * (but it has changed a lot) *
- ****************************************************************************/
-
-#define __INTERNAL_CAPS_VISIBLE
-#include <curses.priv.h>
-
-#include <termcap.h>
-#include <tic.h>
-#include <ctype.h>
-
-#include <term_entry.h>
-
-MODULE_ID("$Id: lib_termcap.c,v 1.61 2007/06/02 19:36:03 tom Exp $")
-
-NCURSES_EXPORT_VAR(char *) UP = 0;
-NCURSES_EXPORT_VAR(char *) BC = 0;
-
-#define MyCache _nc_globals.tgetent_cache
-#define CacheInx _nc_globals.tgetent_index
-#define CacheSeq _nc_globals.tgetent_sequence
-
-#define FIX_SGR0 MyCache[CacheInx].fix_sgr0
-#define LAST_TRM MyCache[CacheInx].last_term
-#define LAST_BUF MyCache[CacheInx].last_bufp
-#define LAST_USE MyCache[CacheInx].last_used
-#define LAST_SEQ MyCache[CacheInx].sequence
-
-/***************************************************************************
- *
- * 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, const char *name)
-{
- int errcode;
- int n;
- bool found_cache = FALSE;
-
- START_TRACE();
- T((T_CALLED("tgetent()")));
-
- _nc_setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode, TRUE);
-
- /*
- * In general we cannot tell if the fixed sgr0 is still used by the
- * caller, but if tgetent() is called with the same buffer, that is
- * good enough, since the previous data would be invalidated by the
- * current call.
- *
- * bufp may be a null pointer, e.g., GNU termcap. That allocates data,
- * which is good until the next tgetent() call. The conventional termcap
- * is inconvenient because of the fixed buffer size, but because it uses
- * caller-supplied buffers, can have multiple terminal descriptions in
- * use at a given time.
- */
- for (n = 0; n < TGETENT_MAX; ++n) {
- bool same_result = (MyCache[n].last_used && MyCache[n].last_bufp == bufp);
- if (same_result) {
- CacheInx = n;
- if (FIX_SGR0 != 0) {
- FreeAndNull(FIX_SGR0);
- }
- /*
- * Also free the terminfo data that we loaded (much bigger leak).
- */
- if (LAST_TRM != 0 && LAST_TRM != cur_term) {
- TERMINAL *trm = LAST_TRM;
- del_curterm(LAST_TRM);
- for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx)
- if (LAST_TRM == trm)
- LAST_TRM = 0;
- CacheInx = n;
- }
- found_cache = TRUE;
- break;
- }
- }
- if (!found_cache) {
- int best = 0;
-
- for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) {
- if (LAST_SEQ < MyCache[best].sequence) {
- best = CacheInx;
- }
- }
- CacheInx = best;
- }
- LAST_TRM = cur_term;
- LAST_SEQ = ++CacheSeq;
-
- PC = 0;
- UP = 0;
- BC = 0;
- FIX_SGR0 = 0; /* don't free it - application may still use */
-
- 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;
-
- if ((FIX_SGR0 = _nc_trim_sgr0(&(cur_term->type))) != 0) {
- if (!strcmp(FIX_SGR0, exit_attribute_mode)) {
- if (FIX_SGR0 != exit_attribute_mode) {
- free(FIX_SGR0);
- }
- FIX_SGR0 = 0;
- }
- }
- LAST_BUF = bufp;
- LAST_USE = TRUE;
-
- (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)
-{
- unsigned 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)
-{
- unsigned 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)
-{
- unsigned 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_SGR0 != 0) {
- result = FIX_SGR0;
- TR(TRACE_DATABASE, ("altered to : %s", _nc_visbuf(result)));
- }
- if (area != 0
- && *area != 0) {
- (void) strcpy(*area, result);
- result = *area;
- *area += strlen(*area) + 1;
- }
- }
- break;
- }
- }
- }
- returnPtr(result);
-}
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_tgetent_leaks(void)
-{
- for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) {
- FreeIfNeeded(FIX_SGR0);
- if (LAST_TRM != 0)
- del_curterm(LAST_TRM);
- }
-}
-#endif
diff --git a/contrib/ncurses/ncurses/tinfo/lib_termname.c b/contrib/ncurses/ncurses/tinfo/lib_termname.c
deleted file mode 100644
index 713d0be8c360..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_termname.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: lib_termname.c,v 1.8 2003/12/27 18:23:01 tom Exp $")
-
-NCURSES_EXPORT(char *)
-termname(void)
-{
- char *name = 0;
-
- T((T_CALLED("termname()")));
-
- if (cur_term != 0)
- name = cur_term->_termname;
-
- returnPtr(name);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_tgoto.c b/contrib/ncurses/ncurses/tinfo/lib_tgoto.c
deleted file mode 100644
index 37553f712394..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_tgoto.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2000-2003,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: lib_tgoto.c,v 1.12 2006/11/26 00:26:24 tom Exp $")
-
-#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_2((NCURSES_CONST char *) string, y, x);
- returnPtr(result);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/lib_ti.c b/contrib/ncurses/ncurses/tinfo/lib_ti.c
deleted file mode 100644
index df460f953ea7..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_ti.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_ti.c,v 1.23 2003/05/24 21:10:28 tom Exp $")
-
-NCURSES_EXPORT(int)
-tigetflag(NCURSES_CONST char *str)
-{
- unsigned 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)
-{
- unsigned 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)
-{
- unsigned 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/contrib/ncurses/ncurses/tinfo/lib_tparm.c b/contrib/ncurses/ncurses/tinfo/lib_tparm.c
deleted file mode 100644
index d11fcf80cfbf..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_tparm.c
+++ /dev/null
@@ -1,791 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_tparm.c,v 1.74 2007/09/29 20:37:13 tom Exp $")
-
-/*
- * 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.
- */
-
-NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
-
-#define TPS(var) _nc_prescreen.tparm_state.var
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_free_tparm(void)
-{
- if (TPS(out_buff) != 0) {
- FreeAndNull(TPS(out_buff));
- TPS(out_size) = 0;
- TPS(out_used) = 0;
- FreeAndNull(TPS(fmt_buff));
- TPS(fmt_size) = 0;
- }
-}
-#endif
-
-static NCURSES_INLINE void
-get_space(size_t need)
-{
- need += TPS(out_used);
- if (need > TPS(out_size)) {
- TPS(out_size) = need * 2;
- TPS(out_buff) = typeRealloc(char, TPS(out_size), TPS(out_buff));
- if (TPS(out_buff) == 0)
- _nc_err_abort(MSG_NO_MEMORY);
- }
-}
-
-static NCURSES_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(TPS(out_buff) + TPS(out_used), fmt, s);
- TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
-}
-
-static NCURSES_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(TPS(out_buff) + TPS(out_used), fmt, number);
- TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
-}
-
-static NCURSES_INLINE void
-save_char(int c)
-{
- if (c == 0)
- c = 0200;
- get_space(1);
- TPS(out_buff)[TPS(out_used)++] = c;
-}
-
-static NCURSES_INLINE void
-npush(int x)
-{
- if (TPS(stack_ptr) < STACKSIZE) {
- TPS(stack)[TPS(stack_ptr)].num_type = TRUE;
- TPS(stack)[TPS(stack_ptr)].data.num = x;
- TPS(stack_ptr)++;
- } else {
- DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
-}
-
-static NCURSES_INLINE int
-npop(void)
-{
- int result = 0;
- if (TPS(stack_ptr) > 0) {
- TPS(stack_ptr)--;
- if (TPS(stack)[TPS(stack_ptr)].num_type)
- result = TPS(stack)[TPS(stack_ptr)].data.num;
- } else {
- DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
- return result;
-}
-
-static NCURSES_INLINE void
-spush(char *x)
-{
- if (TPS(stack_ptr) < STACKSIZE) {
- TPS(stack)[TPS(stack_ptr)].num_type = FALSE;
- TPS(stack)[TPS(stack_ptr)].data.str = x;
- TPS(stack_ptr)++;
- } else {
- DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
-}
-
-static NCURSES_INLINE char *
-spop(void)
-{
- static char dummy[] = ""; /* avoid const-cast */
- char *result = dummy;
- if (TPS(stack_ptr) > 0) {
- TPS(stack_ptr)--;
- if (!TPS(stack)[TPS(stack_ptr)].num_type
- && TPS(stack)[TPS(stack_ptr)].data.str != 0)
- result = TPS(stack)[TPS(stack_ptr)].data.str;
- } else {
- DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(TPS(tparam_base))));
- _nc_tparm_err++;
- }
- return result;
-}
-
-static NCURSES_INLINE const char *
-parse_format(const char *s, char *format, int *len)
-{
- *len = 0;
- if (format != 0) {
- 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')
-
-/*
- * 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.
- */
-NCURSES_EXPORT(int)
-_nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount)
-{
- size_t len2;
- int i;
- int lastpop = -1;
- int len;
- int number = 0;
- const char *cp = string;
- static char dummy[] = "";
-
- if (cp == 0)
- return 0;
-
- if ((len2 = strlen(cp)) > TPS(fmt_size)) {
- TPS(fmt_size) = len2 + TPS(fmt_size) + 2;
- TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff));
- if (TPS(fmt_buff) == 0)
- return 0;
- }
-
- memset(p_is_s, 0, sizeof(p_is_s[0]) * NUM_PARM);
- *popcount = 0;
-
- while ((cp - string) < (int) len2) {
- if (*cp == '%') {
- cp++;
- cp = parse_format(cp, TPS(fmt_buff), &len);
- switch (*cp) {
- default:
- break;
-
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- case 'c': /* FALLTHRU */
- if (lastpop <= 0)
- number++;
- lastpop = -1;
- break;
-
- case 'l':
- case 's':
- if (lastpop > 0)
- p_is_s[lastpop - 1] = dummy;
- ++number;
- break;
-
- case 'p':
- cp++;
- i = (UChar(*cp) - '0');
- if (i >= 0 && i <= NUM_PARM) {
- 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 (isdigit(UChar(*cp))) {
- 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':
- /* will add 1 to first (usually two) parameters */
- break;
- }
- }
- if (*cp != '\0')
- cp++;
- }
-
- if (number > NUM_PARM)
- number = NUM_PARM;
- return number;
-}
-
-static NCURSES_INLINE char *
-tparam_internal(const char *string, va_list ap)
-{
- char *p_is_s[NUM_PARM];
- TPARM_ARG param[NUM_PARM];
- int popcount;
- int number;
- int len;
- int level;
- int x, y;
- int i;
- const char *cp = string;
- size_t len2;
-
- if (cp == NULL)
- return NULL;
-
- TPS(out_used) = 0;
- len2 = strlen(cp);
-
- /*
- * 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 = _nc_tparm_analyze(cp, p_is_s, &popcount);
- if (TPS(fmt_buff) == 0)
- return NULL;
-
- 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, TPARM_ARG);
- }
- }
-
- /*
- * 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.
- */
- TPS(stack_ptr) = 0;
- if (popcount == 0) {
- popcount = number;
- for (i = number - 1; i >= 0; i--)
- npush(param[i]);
- }
-#ifdef TRACE
- if (USE_TRACEF(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)"), TPS(tname), _nc_visbuf(cp), TPS(out_buff));
- TPS(out_used) = 0;
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
-
- while ((cp - string) < (int) len2) {
- if (*cp != '%') {
- save_char(UChar(*cp));
- } else {
- TPS(tparam_base) = cp++;
- cp = parse_format(cp, TPS(fmt_buff), &len);
- switch (*cp) {
- default:
- break;
- case '%':
- save_char('%');
- break;
-
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- save_number(TPS(fmt_buff), npop(), len);
- break;
-
- case 'c': /* FALLTHRU */
- save_char(npop());
- break;
-
- case 'l':
- save_number("%d", (int) strlen(spop()), 0);
- break;
-
- case 's':
- save_text(TPS(fmt_buff), spop(), len);
- break;
-
- case 'p':
- cp++;
- i = (UChar(*cp) - '1');
- if (i >= 0 && i < NUM_PARM) {
- if (p_is_s[i])
- spush(p_is_s[i]);
- else
- npush(param[i]);
- }
- break;
-
- case 'P':
- cp++;
- if (isUPPER(*cp)) {
- i = (UChar(*cp) - 'A');
- TPS(static_vars)[i] = npop();
- } else if (isLOWER(*cp)) {
- i = (UChar(*cp) - 'a');
- TPS(dynamic_var)[i] = npop();
- }
- break;
-
- case 'g':
- cp++;
- if (isUPPER(*cp)) {
- i = (UChar(*cp) - 'A');
- npush(TPS(static_vars)[i]);
- } else if (isLOWER(*cp)) {
- i = (UChar(*cp) - 'a');
- npush(TPS(dynamic_var)[i]);
- }
- break;
-
- case S_QUOTE:
- cp++;
- npush(UChar(*cp));
- cp++;
- break;
-
- case L_BRACE:
- number = 0;
- cp++;
- while (isdigit(UChar(*cp))) {
- number = (number * 10) + (UChar(*cp) - '0');
- cp++;
- }
- 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 */
- cp++;
- level = 0;
- while (*cp) {
- if (*cp == '%') {
- cp++;
- if (*cp == '?')
- level++;
- else if (*cp == ';') {
- if (level > 0)
- level--;
- else
- break;
- } else if (*cp == 'e' && level == 0)
- break;
- }
-
- if (*cp)
- cp++;
- }
- }
- break;
-
- case 'e':
- /* scan forward for a %; at level zero */
- cp++;
- level = 0;
- while (*cp) {
- if (*cp == '%') {
- cp++;
- if (*cp == '?')
- level++;
- else if (*cp == ';') {
- if (level > 0)
- level--;
- else
- break;
- }
- }
-
- if (*cp)
- cp++;
- }
- break;
-
- case ';':
- break;
-
- } /* endswitch (*cp) */
- } /* endelse (*cp == '%') */
-
- if (*cp == '\0')
- break;
-
- cp++;
- } /* endwhile (*cp) */
-
- get_space(1);
- TPS(out_buff)[TPS(out_used)] = '\0';
-
- T((T_RETURN("%s"), _nc_visbuf(TPS(out_buff))));
- return (TPS(out_buff));
-}
-
-#if NCURSES_TPARM_VARARGS
-#define tparm_varargs tparm
-#else
-#define tparm_proto tparm
-#endif
-
-NCURSES_EXPORT(char *)
-tparm_varargs(NCURSES_CONST char *string,...)
-{
- va_list ap;
- char *result;
-
- _nc_tparm_err = 0;
- va_start(ap, string);
-#ifdef TRACE
- TPS(tname) = "tparm";
-#endif /* TRACE */
- result = tparam_internal(string, ap);
- va_end(ap);
- return result;
-}
-
-#if !NCURSES_TPARM_VARARGS
-NCURSES_EXPORT(char *)
-tparm_proto(NCURSES_CONST char *string,
- TPARM_ARG a1,
- TPARM_ARG a2,
- TPARM_ARG a3,
- TPARM_ARG a4,
- TPARM_ARG a5,
- TPARM_ARG a6,
- TPARM_ARG a7,
- TPARM_ARG a8,
- TPARM_ARG a9)
-{
- return tparm_varargs(string, a1, a2, a3, a4, a5, a6, a7, a8, a9);
-}
-#endif /* NCURSES_TPARM_VARARGS */
diff --git a/contrib/ncurses/ncurses/tinfo/lib_tputs.c b/contrib/ncurses/ncurses/tinfo/lib_tputs.c
deleted file mode 100644
index aab3351905ce..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_tputs.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: lib_tputs.c,v 1.64 2007/09/29 20:37:13 tom Exp $")
-
-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)) / (BAUDBYTE * 1000);
- 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)
-{
- COUNT_OUTCHARS(1);
-
- 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 (USE_TRACEF(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);
- }
- TPUTS_TRACE(NULL);
- _nc_unlock_global(tracef);
- }
-#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/contrib/ncurses/ncurses/tinfo/lib_ttyflags.c b/contrib/ncurses/ncurses/tinfo/lib_ttyflags.c
deleted file mode 100644
index 2cb9fd67b4dd..000000000000
--- a/contrib/ncurses/ncurses/tinfo/lib_ttyflags.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: lib_ttyflags.c,v 1.16 2008/05/03 22:39:03 tom Exp $")
-
-NCURSES_EXPORT(int)
-_nc_get_tty_mode(TTY * buf)
-{
- int result = OK;
-
- if (buf == 0) {
- result = ERR;
- } else {
- if (cur_term == 0) {
- result = ERR;
- } else {
- for (;;) {
- if (GET_TTY(cur_term->Filedes, buf) != 0) {
- if (errno == EINTR)
- continue;
- result = ERR;
- }
- break;
- }
- }
-
- if (result == ERR)
- memset(buf, 0, sizeof(*buf));
-
- TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
- cur_term->Filedes, _nc_trace_ttymode(buf)));
- }
- return (result);
-}
-
-NCURSES_EXPORT(int)
-_nc_set_tty_mode(TTY * buf)
-{
- int result = OK;
-
- if (buf == 0) {
- result = ERR;
- } else {
- if (cur_term == 0) {
- result = ERR;
- } else {
- for (;;) {
- if (SET_TTY(cur_term->Filedes, buf) != 0) {
- if (errno == EINTR)
- continue;
- if ((errno == ENOTTY) && (SP != 0))
- SP->_notty = TRUE;
- result = ERR;
- }
- break;
- }
- }
- TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
- cur_term->Filedes, _nc_trace_ttymode(buf)));
- }
- return (result);
-}
-
-NCURSES_EXPORT(int)
-def_shell_mode(void)
-{
- T((T_CALLED("def_shell_mode()")));
-
- /*
- * 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 & OFLAGS_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()")));
-
- /*
- * Turn off the XTABS bit in the tty structure if it was on.
- */
-
- if (_nc_get_tty_mode(&cur_term->Nttyb) != OK)
- returnCode(ERR);
-#ifdef TERMIOS
- cur_term->Nttyb.c_oflag &= ~OFLAGS_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(SP, 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(SP, FALSE);
- _nc_flush();
- NC_BUFFERED(FALSE);
- }
- returnCode(_nc_set_tty_mode(&cur_term->Ottyb));
- }
- returnCode(ERR);
-}
-
-static TTY *
-saved_tty(void)
-{
- TTY *result = 0;
-
- if (SP != 0) {
- result = &(SP->_saved_tty);
- } else {
- if (_nc_prescreen.saved_tty == 0) {
- _nc_prescreen.saved_tty = typeCalloc(TTY, 1);
- }
- result = _nc_prescreen.saved_tty;
- }
- return result;
-}
-
-/*
-** savetty() and resetty()
-**
-*/
-
-NCURSES_EXPORT(int)
-savetty(void)
-{
- T((T_CALLED("savetty()")));
-
- returnCode(_nc_get_tty_mode(saved_tty()));
-}
-
-NCURSES_EXPORT(int)
-resetty(void)
-{
- T((T_CALLED("resetty()")));
-
- returnCode(_nc_set_tty_mode(saved_tty()));
-}
diff --git a/contrib/ncurses/ncurses/tinfo/make_keys.c b/contrib/ncurses/ncurses/tinfo/make_keys.c
deleted file mode 100644
index 00367185a45c..000000000000
--- a/contrib/ncurses/ncurses/tinfo/make_keys.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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.
- */
-
-#define USE_TERMLIB 1
-#include <curses.priv.h>
-
-MODULE_ID("$Id: make_keys.c,v 1.13 2007/01/07 00:00:14 tom Exp $")
-
-#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",
- "const 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/contrib/ncurses/ncurses/tinfo/name_match.c b/contrib/ncurses/ncurses/tinfo/name_match.c
deleted file mode 100644
index c8d728faa7c4..000000000000
--- a/contrib/ncurses/ncurses/tinfo/name_match.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: name_match.c,v 1.16 2007/04/21 21:28:13 tom Exp $")
-
-/*
- * _nc_first_name(char *names)
- *
- * Extract the primary name from a compiled entry.
- */
-#define FirstName _nc_globals.first_name
-
-NCURSES_EXPORT(char *)
-_nc_first_name(const char *const sp)
-/* get the first name from the given name list */
-{
- unsigned n;
-
-#if NO_LEAKS
- if (sp == 0) {
- if (FirstName != 0)
- FreeAndNull(FirstName);
- return 0;
- }
-#endif
-
- if (FirstName == 0)
- FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
- for (n = 0; n < MAX_NAME_SIZE; n++) {
- if ((FirstName[n] = sp[n]) == '\0'
- || (FirstName[n] == '|'))
- break;
- }
- FirstName[n] = '\0';
- return (FirstName);
-}
-
-/*
- * 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/contrib/ncurses/ncurses/tinfo/parse_entry.c b/contrib/ncurses/ncurses/tinfo/parse_entry.c
deleted file mode 100644
index 375ce8ff9957..000000000000
--- a/contrib/ncurses/ncurses/tinfo/parse_entry.c
+++ /dev/null
@@ -1,991 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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: parse_entry.c,v 1.65 2007/08/11 16:19:02 tom Exp $")
-
-#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(NCURSES_SBOOL, 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 existence and type-correctness
- * enter cap into structure
- * if STRING
- * save string in entry's string table
- * push back token
- */
-
-#define BAD_TC_USAGE if (!bad_tc_usage) \
- { bad_tc_usage = TRUE; \
- _nc_warning("Legacy termcap allows only a trailing tc= clause"); }
-
-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;
- bool bad_tc_usage = FALSE;
-
- 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));
-
- /*
- * Strip off the 2-character termcap name, if present. Originally termcap
- * used that as an indexing aid. We can retain 2-character terminfo names,
- * but note that they would be lost if we translate to/from termcap. This
- * feature is supposedly obsolete since "newer" BSD implementations do not
- * use it; however our reference for this feature is SunOS 4.x, which
- * implemented it. Note that the resulting terminal type was never the
- * 2-character name, but was instead the first alias after that.
- */
- ptr = _nc_curr_token.tk_name;
- if (_nc_syntax == SYN_TERMCAP
-#if NCURSES_XNAMES
- && !_nc_user_definable
-#endif
- ) {
- if (ptr[2] == '|') {
- ptr += 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)) {
- bool is_use = (strcmp(_nc_curr_token.tk_name, "use") == 0);
- bool is_tc = !is_use && (strcmp(_nc_curr_token.tk_name, "tc") == 0);
- if (is_use || is_tc) {
- entryp->uses[entryp->nuses].name = _nc_save_str(_nc_curr_token.tk_valstring);
- entryp->uses[entryp->nuses].line = _nc_curr_line;
- entryp->nuses++;
- if (entryp->nuses > 1 && is_tc) {
- BAD_TC_USAGE
- }
- } else {
- /* normal token lookup */
- entry_ptr = _nc_find_entry(_nc_curr_token.tk_name,
- _nc_get_hash_table(_nc_syntax));
-
- /*
- * 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) {
- if (entryp->nuses != 0) {
- BAD_TC_USAGE
- }
- for (ap = _nc_get_alias_table(TRUE); 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_get_hash_table(TRUE));
- 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_get_alias_table(FALSE); 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_get_hash_table(FALSE));
- 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_get_hash_table(TRUE));
- to_ptr = _nc_find_entry(ap->to, _nc_get_hash_table(FALSE));
-
- 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/contrib/ncurses/ncurses/tinfo/read_entry.c b/contrib/ncurses/ncurses/tinfo/read_entry.c
deleted file mode 100644
index 6a050ee78e66..000000000000
--- a/contrib/ncurses/ncurses/tinfo/read_entry.c
+++ /dev/null
@@ -1,544 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * read_entry.c -- Routine for reading in a compiled terminfo file
- */
-
-#include <curses.priv.h>
-#include <hashed_db.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id: read_entry.c,v 1.100 2007/11/17 23:56:50 tom Exp $")
-
-#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
-
-#if USE_DATABASE
-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;
- }
- }
-}
-
-static int
-fake_read(char *src, int *offset, int limit, char *dst, unsigned want)
-{
- int have = (limit - *offset);
-
- if (have > 0) {
- if ((int) want > have)
- want = have;
- memcpy(dst, src + *offset, want);
- *offset += want;
- } else {
- want = 0;
- }
- return (int) want;
-}
-
-#define Read(buf, count) fake_read(buffer, &offset, limit, buf, count)
-
-#define read_shorts(buf, count) \
- (Read(buf, (unsigned) (count)*2) == (int) (count)*2)
-
-#define even_boundary(value) \
- if ((value) % 2 != 0) Read(buf, 1)
-
-NCURSES_EXPORT(int)
-_nc_read_termtype(TERMTYPE *ptr, char *buffer, int limit)
-/* return 1 if read, 0 if not found or garbled */
-{
- int offset = 0;
- int name_size, bool_count, num_count, str_count, str_size;
- int i;
- char buf[MAX_ENTRY_SIZE + 1];
- char *string_table;
- unsigned want, have;
-
- TR(TRACE_DATABASE, ("READ termtype header @%d", offset));
-
- memset(ptr, 0, sizeof(*ptr));
-
- /* grab the header */
- if (!read_shorts(buf, 6)
- || !IS_TIC_MAGIC(buf)) {
- return (TGETENT_NO);
- }
-
- name_size = LOW_MSB(buf + 2);
- bool_count = LOW_MSB(buf + 4);
- num_count = LOW_MSB(buf + 6);
- str_count = LOW_MSB(buf + 8);
- str_size = LOW_MSB(buf + 10);
-
- 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 (TGETENT_NO);
- }
-
- want = str_size + name_size + 1;
- if (str_size) {
- /* try to allocate space for the string table */
- if (str_count * 2 >= (int) sizeof(buf)
- || (string_table = typeMalloc(char, want)) == 0) {
- return (TGETENT_NO);
- }
- } else {
- str_count = 0;
- if ((string_table = typeMalloc(char, want)) == 0) {
- return (TGETENT_NO);
- }
- }
-
- /* grab the name (a null-terminated string) */
- want = min(MAX_NAME_SIZE, (unsigned) name_size);
- ptr->str_table = string_table;
- ptr->term_names = string_table;
- if ((have = Read(ptr->term_names, want)) != want) {
- memset(ptr->term_names + have, 0, want - have);
- }
- ptr->term_names[want] = '\0';
- string_table += (want + 1);
-
- if (have > MAX_NAME_SIZE)
- offset = (have - MAX_NAME_SIZE);
-
- /* grab the booleans */
- if ((ptr->Booleans = TYPE_CALLOC(NCURSES_SBOOL,
- max(BOOLCOUNT, bool_count))) == 0
- || Read(ptr->Booleans, (unsigned) bool_count) < bool_count) {
- return (TGETENT_NO);
- }
-
- /*
- * 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 = TYPE_CALLOC(short, max(NUMCOUNT, num_count))) == 0
- || !read_shorts(buf, num_count)) {
- return (TGETENT_NO);
- }
- convert_shorts(buf, ptr->Numbers, num_count);
-
- if ((ptr->Strings = TYPE_CALLOC(char *, max(STRCOUNT, str_count))) == 0)
- return (TGETENT_NO);
-
- if (str_count) {
- /* grab the string offsets */
- if (!read_shorts(buf, str_count)) {
- return (TGETENT_NO);
- }
- /* finally, grab the string table itself */
- if (Read(string_table, (unsigned) str_size) != str_size)
- return (TGETENT_NO);
- convert_strings(buf, ptr->Strings, str_count, str_size, string_table);
- }
-#if NCURSES_XNAMES
-
- 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", offset));
- if (_nc_user_definable && read_shorts(buf, 5)) {
- int ext_bool_count = LOW_MSB(buf + 0);
- int ext_num_count = LOW_MSB(buf + 2);
- int ext_str_count = LOW_MSB(buf + 4);
- int ext_str_size = LOW_MSB(buf + 6);
- int ext_str_limit = LOW_MSB(buf + 8);
- unsigned need = (ext_bool_count + ext_num_count + ext_str_count);
- int base = 0;
-
- if (need >= sizeof(buf)
- || ext_str_size >= (int) sizeof(buf)
- || ext_str_limit >= (int) sizeof(buf)
- || ext_bool_count < 0
- || ext_num_count < 0
- || ext_str_count < 0
- || ext_str_size < 0
- || ext_str_limit < 0)
- return (TGETENT_NO);
-
- ptr->num_Booleans = BOOLCOUNT + ext_bool_count;
- ptr->num_Numbers = NUMCOUNT + ext_num_count;
- ptr->num_Strings = STRCOUNT + ext_str_count;
-
- ptr->Booleans = typeRealloc(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans);
- ptr->Numbers = typeRealloc(short, ptr->num_Numbers, ptr->Numbers);
- ptr->Strings = typeRealloc(char *, ptr->num_Strings, ptr->Strings);
-
- 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, offset));
- if ((ptr->ext_Booleans = ext_bool_count) != 0) {
- if (Read(ptr->Booleans + BOOLCOUNT, (unsigned)
- ext_bool_count) != ext_bool_count)
- return (TGETENT_NO);
- }
- even_boundary(ext_bool_count);
-
- TR(TRACE_DATABASE, ("READ %d extended-numbers @%d",
- ext_num_count, offset));
- if ((ptr->ext_Numbers = ext_num_count) != 0) {
- if (!read_shorts(buf, ext_num_count))
- return (TGETENT_NO);
- TR(TRACE_DATABASE, ("Before converting extended-numbers"));
- convert_shorts(buf, ptr->Numbers + NUMCOUNT, ext_num_count);
- }
-
- TR(TRACE_DATABASE, ("READ extended-offsets @%d", offset));
- if ((ext_str_count || need)
- && !read_shorts(buf, ext_str_count + need))
- return (TGETENT_NO);
-
- TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%d",
- ext_str_limit, offset));
-
- if (ext_str_limit) {
- if ((ptr->ext_str_table = typeMalloc(char, ext_str_limit)) == 0)
- return (TGETENT_NO);
- if (Read(ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit)
- return (TGETENT_NO);
- TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table)));
- }
-
- 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 = TYPE_CALLOC(char *, need)) == 0)
- return (TGETENT_NO);
- TR(TRACE_DATABASE,
- ("ext_NAMES starting @%d in extended_strings, first = %s",
- base, _nc_visbuf(ptr->ext_str_table + base)));
- convert_strings(buf + (2 * ext_str_count),
- ptr->ext_Names,
- (int) 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 (TGETENT_YES);
-}
-
-/*
- * 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.
- */
-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;
- int limit;
- char buffer[MAX_ENTRY_SIZE + 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));
- code = TGETENT_NO;
- } else {
- if ((limit = read(fd, buffer, sizeof(buffer))) > 0) {
-
- T(("read terminfo %s", filename));
- if ((code = _nc_read_termtype(ptr, buffer, limit)) == TGETENT_NO) {
- _nc_free_termtype(ptr);
- }
- } else {
- code = TGETENT_NO;
- }
- close(fd);
- }
-
- return (code);
-}
-
-/*
- * Build a terminfo pathname and try to read the data. Returns TGETENT_YES on
- * success, TGETENT_NO on failure.
- */
-static int
-_nc_read_tic_entry(char *filename,
- unsigned limit,
- const char *const path,
- const char *name,
- TERMTYPE *const tp)
-{
- int result = TGETENT_NO;
-
- /*
- * If we are looking in a directory, assume the entry is a file under that,
- * according to the normal rules.
- *
- * FIXME - add caseless-filename fixup.
- */
- if (_nc_is_dir_path(path)) {
- unsigned need = 4 + strlen(path) + strlen(name);
-
- if (need <= limit) {
- (void) sprintf(filename, "%s/" LEAF_FMT "/%s", path, *name, name);
- result = _nc_read_file_entry(filename, tp);
- }
- }
-#if USE_HASHED_DB
- else {
- static const char suffix[] = DBM_SUFFIX;
- DB *capdbp;
- unsigned lens = sizeof(suffix) - 1;
- unsigned size = strlen(path);
- unsigned need = lens + size;
-
- if (need <= limit) {
- if (size >= lens
- && !strcmp(path + size - lens, suffix))
- (void) strcpy(filename, path);
- else
- (void) sprintf(filename, "%s%s", path, suffix);
-
- /*
- * It would be nice to optimize the dbopen/close activity, as
- * done in the cgetent implementation for tc= clauses. However,
- * since we support multiple database locations, we cannot do
- * that.
- */
- if ((capdbp = _nc_db_open(filename, FALSE)) != 0) {
- DBT key, data;
- int reccnt = 0;
- char *save = strdup(name);
-
- memset(&key, 0, sizeof(key));
- key.data = save;
- key.size = strlen(save);
-
- /*
- * This lookup could return termcap data, which we do not want.
- * We are looking for compiled (binary) terminfo data.
- *
- * cgetent uses a two-level lookup. On the first it uses the
- * given name to return a record containing only the aliases
- * for an entry. On the second (using that list of aliases as
- * a key), it returns the content of the terminal description.
- * We expect second lookup to return data beginning with the
- * same set of aliases.
- *
- * For compiled terminfo, the list of aliases in the second
- * case will be null-terminated. A termcap entry will not be,
- * and will run on into the description. So we can easily
- * distinguish between the two (source/binary) by checking the
- * lengths.
- */
- while (_nc_db_get(capdbp, &key, &data) == 0) {
- int used = data.size - 1;
- char *have = (char *) data.data;
-
- if (*have++ == 0) {
- if (data.size > key.size
- && IS_TIC_MAGIC(have)) {
- result = _nc_read_termtype(tp, have, used);
- if (result == TGETENT_NO) {
- _nc_free_termtype(tp);
- }
- }
- break;
- }
-
- /*
- * Just in case we have a corrupt database, do not waste
- * time with it.
- */
- if (++reccnt >= 3)
- break;
-
- /*
- * Prepare for the second level.
- */
- key.data = have;
- key.size = used;
- }
-
- _nc_db_close(capdbp);
- free(save);
- }
- }
- }
-#endif
- return result;
-}
-#endif /* USE_DATABASE */
-
-/*
- * _nc_read_entry(char *name, 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 name, char *const filename, TERMTYPE *const tp)
-{
- int code = TGETENT_NO;
-
- if (strlen(name) == 0
- || strcmp(name, ".") == 0
- || strcmp(name, "..") == 0
- || _nc_pathlast(name) != 0
- || strchr(name, NCURSES_PATHSEP) != 0) {
- T(("illegal or missing entry name '%s'", name));
- } else {
-#if USE_DATABASE
- DBDIRS state = dbdTIC;
- int offset = 0;
- const char *path;
-
- while ((path = _nc_next_db(&state, &offset)) != 0) {
- code = _nc_read_tic_entry(filename, PATH_MAX, path, name, tp);
- if (code == TGETENT_YES) {
- _nc_last_db();
- break;
- }
- }
-#endif
-#if USE_TERMCAP
- if (code != TGETENT_YES) {
- code = _nc_read_termcap_entry(name, tp);
- sprintf(filename, "%.*s", PATH_MAX - 1, _nc_get_source());
- }
-#endif
- }
- return code;
-}
diff --git a/contrib/ncurses/ncurses/tinfo/read_termcap.c b/contrib/ncurses/ncurses/tinfo/read_termcap.c
deleted file mode 100644
index d94d1a42466d..000000000000
--- a/contrib/ncurses/ncurses/tinfo/read_termcap.c
+++ /dev/null
@@ -1,1174 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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: read_termcap.c,v 1.71 2006/07/29 12:06:51 tom Exp $")
-
-#if !PURE_TERMINFO
-
-#define TC_SUCCESS 0
-#define TC_NOT_FOUND -1
-#define TC_SYS_ERR -2
-#define TC_REF_LOOP -3
-#define TC_UNRESOLVED -4 /* this is not returned by BSD cgetent */
-
-static NCURSES_CONST char *
-get_termpath(void)
-{
- NCURSES_CONST 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_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
- * TC_UNRESOLVED if we had too many recurrences to resolve
- */
-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(UChar(*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(UChar(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(UChar(*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 */
- NCURSES_CONST 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 (!_nc_is_abs_path(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 (_nc_is_abs_path(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 HAVE_BSD_CGETENT
- char temp[PATH_MAX];
-
- _nc_str_init(&desc, temp, sizeof(temp));
- _nc_safe_strcpy(&desc, pathvec[i]);
- _nc_safe_strcat(&desc, ".db");
- if (_nc_access(temp, R_OK) == 0) {
- _nc_safe_strcpy(&desc, pathvec[i]);
- }
- if ((the_source = strdup(temp)) != 0)
- *sourcename = the_source;
-#else
- if ((the_source = strdup(pathvec[i])) != 0)
- *sourcename = the_source;
-#endif
- }
-
- 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 = TGETENT_NO;
- ENTRY *ep;
-#if USE_GETCAP_CACHE
- char cwd_buf[PATH_MAX];
-#endif
-#if USE_GETCAP
- char *p, tc[TBUFSIZ];
- int status;
- static char *source;
- static int lineno;
-
- T(("read termcap entry for %s", tn));
-
- if (strlen(tn) == 0
- || strcmp(tn, ".") == 0
- || strcmp(tn, "..") == 0
- || _nc_pathlast(tn) != 0) {
- T(("illegal or missing entry name '%s'", tn));
- return TGETENT_NO;
- }
-
- if (use_terminfo_vars() && (p = getenv("TERMCAP")) != 0
- && !_nc_is_abs_path(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 ((status = _nc_tgetent(tc, &source, &lineno, tn)) < 0)
- return (status == TC_NOT_FOUND ? TGETENT_NO : TGETENT_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 (_nc_is_abs_path(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.
- */
-#if 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 (TGETENT_ERR);
-
- /* resolve all use references */
- _nc_resolve_uses2(TRUE, FALSE);
-
- /* 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, delinked
- * from the list.
- */
- *tp = ep->tterm;
- _nc_delink_entry(_nc_head, &(ep->tterm));
- free(ep);
-
- /*
- * 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 = TGETENT_YES;
- break;
- }
- }
-#if USE_GETCAP_CACHE
- chdir(cwd_buf);
- }
-#endif
-
- return (found);
-}
-#else
-extern
-NCURSES_EXPORT(void)
-_nc_read_termcap(void);
-NCURSES_EXPORT(void)
-_nc_read_termcap(void)
-{
-}
-#endif /* PURE_TERMINFO */
diff --git a/contrib/ncurses/ncurses/tinfo/setbuf.c b/contrib/ncurses/ncurses/tinfo/setbuf.c
deleted file mode 100644
index ba910e8983a4..000000000000
--- a/contrib/ncurses/ncurses/tinfo/setbuf.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: setbuf.c,v 1.13 2007/05/12 19:04:02 tom Exp $")
-
-/*
- * 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
- if (SP->_buffered != buffered) {
- unsigned buf_len;
- char *buf_ptr;
-
- if (getenv("NCURSES_NO_SETBUF") != 0)
- return;
-
- fflush(ofp);
-#ifdef __DJGPP__
- setmode(ofp, O_BINARY);
-#endif
- if (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
-
- SP->_buffered = buffered;
- }
-#endif /* HAVE_SETVBUF || HAVE_SETBUFFER */
-}
diff --git a/contrib/ncurses/ncurses/tinfo/strings.c b/contrib/ncurses/ncurses/tinfo/strings.c
deleted file mode 100644
index 78cd2ef4f5f5..000000000000
--- a/contrib/ncurses/ncurses/tinfo/strings.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2000-2003,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: strings.c,v 1.6 2007/08/11 17:12:17 tom Exp $")
-
-/****************************************************************************
- * 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 = (char *) haystack;
- break;
- }
- haystack++;
- }
- return result;
-}
-#endif
-
-/*
- * Initialize the descriptor so we can append to it. Note that 'src' may
- * be a null pointer (see _nc_str_null), so the corresponding strcat and
- * strcpy calls have to allow for this.
- */
-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;
- dst->s_init = dst->s_size;
- 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 = dst->s_init - len;
- return TRUE;
- }
- }
- return FALSE;
-}
diff --git a/contrib/ncurses/ncurses/tinfo/trim_sgr0.c b/contrib/ncurses/ncurses/tinfo/trim_sgr0.c
deleted file mode 100644
index 80c8f77fbebe..000000000000
--- a/contrib/ncurses/ncurses/tinfo/trim_sgr0.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2005-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas Dickey *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id: trim_sgr0.c,v 1.8 2007/04/07 17:14:11 tom Exp $")
-
-#undef CUR
-#define CUR tp->
-
-#define CSI 233
-#define ESC 033 /* ^[ */
-#define L_BRACK '['
-
-static char *
-set_attribute_9(TERMTYPE *tp, int flag)
-{
- const char *result;
-
- if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
- result = "";
- return strdup(result);
-}
-
-static int
-is_csi(const char *s)
-{
- if (UChar(s[0]) == CSI)
- return 1;
- else if (s[0] == ESC && s[1] == L_BRACK)
- return 2;
- return 0;
-}
-
-static char *
-skip_zero(char *s)
-{
- if (s[0] == '0') {
- if (s[1] == ';')
- s += 2;
- else if (isalpha(UChar(s[1])))
- s += 1;
- }
- return s;
-}
-
-static const char *
-skip_delay(const char *s)
-{
- if (s[0] == '$' && s[1] == '<') {
- s += 2;
- while (isdigit(UChar(*s)) || *s == '/')
- ++s;
- if (*s == '>')
- ++s;
- }
- return s;
-}
-
-/*
- * Improve similar_sgr a little by moving the attr-string from the beginning
- * to the end of the s-string.
- */
-static bool
-rewrite_sgr(char *s, char *attr)
-{
- if (PRESENT(s)) {
- if (PRESENT(attr)) {
- unsigned len_s = strlen(s);
- unsigned len_a = strlen(attr);
-
- if (len_s > len_a && !strncmp(attr, s, len_a)) {
- unsigned n;
- TR(TRACE_DATABASE, ("rewrite:\n\t%s", s));
- for (n = 0; n < len_s - len_a; ++n) {
- s[n] = s[n + len_a];
- }
- strcpy(s + n, attr);
- TR(TRACE_DATABASE, ("to:\n\t%s", s));
- }
- }
- return TRUE;
- }
- return FALSE; /* oops */
-}
-
-static bool
-similar_sgr(char *a, char *b)
-{
- bool result = FALSE;
- int csi_a = is_csi(a);
- int csi_b = is_csi(b);
- unsigned len_a;
- unsigned len_b;
-
- TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s",
- _nc_visbuf2(1, a),
- _nc_visbuf2(2, b)));
- if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
- a += csi_a;
- b += csi_b;
- if (*a != *b) {
- a = skip_zero(a);
- b = skip_zero(b);
- }
- }
- len_a = strlen(a);
- len_b = strlen(b);
- if (len_a && len_b) {
- if (len_a > len_b)
- result = (strncmp(a, b, len_b) == 0);
- else
- result = (strncmp(a, b, len_a) == 0);
- }
- TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result,
- _nc_visbuf2(1, a),
- _nc_visbuf2(2, b)));
- return result;
-}
-
-static unsigned
-chop_out(char *string, unsigned i, unsigned j)
-{
- TR(TRACE_DATABASE, ("chop_out %d..%d from %s", i, j, _nc_visbuf(string)));
- while (string[j] != '\0') {
- string[i++] = string[j++];
- }
- string[i] = '\0';
- return i;
-}
-
-/*
- * Compare, ignoring delays. Some of the delay values are inconsistent, and
- * we do not want to be stopped by that.
- *
- * Returns the number of chars from 'full' that we matched. If any mismatch
- * occurs, return zero.
- */
-static int
-compare_part(const char *part, const char *full)
-{
- const char *next_part;
- const char *next_full;
- int used_full = 0;
- int used_delay = 0;
-
- while (*part != 0) {
- if (*part != *full) {
- used_full = 0;
- break;
- }
-
- /*
- * Adjust the return-value to allow the rare case of
- * string<delay>string
- * to remove the whole piece. The most common case is a delay at the
- * end of the string. The adjusted string will retain the delay, which
- * is conservative.
- */
- if (used_delay != 0) {
- used_full += used_delay;
- used_delay = 0;
- }
- if (*part == '$' && *full == '$') {
- next_part = skip_delay(part);
- next_full = skip_delay(full);
- if (next_part != part && next_full != full) {
- used_delay += (next_full - full);
- full = next_full;
- part = next_part;
- continue;
- }
- }
- ++used_full;
- ++part;
- ++full;
- }
- return used_full;
-}
-
-/*
- * While 'sgr0' is the "same" as termcap 'me', there is a compatibility issue.
- * The sgr/sgr0 capabilities include setting/clearing alternate character set
- * mode. A termcap application cannot use sgr, so sgr0 strings that reset
- * alternate character set mode will be misinterpreted. Here, we remove those
- * from the more common ISO/ANSI/VT100 entries, which have sgr0 agreeing with
- * sgr.
- *
- * This function returns the modified sgr0 if it can be modified, a null if
- * an error occurs, or the original sgr0 if no change is needed.
- */
-NCURSES_EXPORT(char *)
-_nc_trim_sgr0(TERMTYPE *tp)
-{
- char *result = exit_attribute_mode;
-
- T((T_CALLED("_nc_trim_sgr0()")));
-
- if (PRESENT(exit_attribute_mode)
- && PRESENT(set_attributes)) {
- bool found = FALSE;
- char *on = set_attribute_9(tp, 1);
- char *off = set_attribute_9(tp, 0);
- char *end = strdup(exit_attribute_mode);
- char *tmp;
- size_t i, j, k;
-
- TR(TRACE_DATABASE, ("checking if we can trim sgr0 based on sgr"));
- TR(TRACE_DATABASE, ("sgr0 %s", _nc_visbuf(end)));
- TR(TRACE_DATABASE, ("sgr(9:off) %s", _nc_visbuf(off)));
- TR(TRACE_DATABASE, ("sgr(9:on) %s", _nc_visbuf(on)));
-
- if (!rewrite_sgr(on, enter_alt_charset_mode)
- || !rewrite_sgr(off, exit_alt_charset_mode)
- || !rewrite_sgr(end, exit_alt_charset_mode)) {
- FreeIfNeeded(off);
- } else if (similar_sgr(off, end)
- && !similar_sgr(off, on)) {
- TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off)));
- result = off;
- /*
- * If rmacs is a substring of sgr(0), remove that chunk.
- */
- if (exit_alt_charset_mode != 0) {
- TR(TRACE_DATABASE, ("scan for rmacs %s", _nc_visbuf(exit_alt_charset_mode)));
- j = strlen(off);
- k = strlen(exit_alt_charset_mode);
- if (j > k) {
- for (i = 0; i <= (j - k); ++i) {
- int k2 = compare_part(exit_alt_charset_mode, off + i);
- if (k2 != 0) {
- found = TRUE;
- chop_out(off, i, i + k2);
- break;
- }
- }
- }
- }
- /*
- * SGR 10 would reset to normal font.
- */
- if (!found) {
- if ((i = is_csi(off)) != 0
- && off[strlen(off) - 1] == 'm') {
- TR(TRACE_DATABASE, ("looking for SGR 10 in %s",
- _nc_visbuf(off)));
- tmp = skip_zero(off + i);
- if (tmp[0] == '1'
- && skip_zero(tmp + 1) != tmp + 1) {
- i = tmp - off;
- if (off[i - 1] == ';')
- i--;
- j = skip_zero(tmp + 1) - off;
- i = chop_out(off, i, j);
- found = TRUE;
- }
- }
- }
- if (!found
- && (tmp = strstr(end, off)) != 0
- && strcmp(end, off) != 0) {
- i = tmp - end;
- j = strlen(off);
- tmp = strdup(end);
- chop_out(tmp, i, j);
- free(off);
- result = tmp;
- }
- TR(TRACE_DATABASE, ("...adjusted sgr0 : %s", _nc_visbuf(result)));
- if (!strcmp(result, exit_attribute_mode)) {
- TR(TRACE_DATABASE, ("...same result, discard"));
- free(result);
- result = exit_attribute_mode;
- }
- } else {
- /*
- * Either the sgr does not reference alternate character set,
- * or it is incorrect. That's too hard to decide right now.
- */
- free(off);
- }
- FreeIfNeeded(end);
- FreeIfNeeded(on);
- } else {
- /*
- * Possibly some applications are confused if sgr0 contains rmacs,
- * but that would be a different bug report -TD
- */
- }
-
- returnPtr(result);
-}
diff --git a/contrib/ncurses/ncurses/tinfo/use_screen.c b/contrib/ncurses/ncurses/tinfo/use_screen.c
deleted file mode 100644
index a4f34c0e4520..000000000000
--- a/contrib/ncurses/ncurses/tinfo/use_screen.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2007 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: use_screen.c,v 1.4 2008/03/29 21:19:58 tom Exp $")
-
-NCURSES_EXPORT(int)
-use_screen(SCREEN *screen, NCURSES_SCREEN_CB func, void *data)
-{
- SCREEN *save_SP;
- int code = OK;
-
- T((T_CALLED("use_screen(%p,%p,%p)"), screen, func, data));
-
- /*
- * FIXME - add a flag so a given thread can check if _it_ has already
- * recurred through this point, return an error if so.
- */
- _nc_lock_global(use_screen);
- save_SP = SP;
- set_term(screen);
-
- code = func(screen, data);
-
- set_term(save_SP);
- _nc_unlock_global(use_screen);
- returnCode(code);
-
- return 0;
-}
diff --git a/contrib/ncurses/ncurses/tinfo/write_entry.c b/contrib/ncurses/ncurses/tinfo/write_entry.c
deleted file mode 100644
index 05027e0021a2..000000000000
--- a/contrib/ncurses/ncurses/tinfo/write_entry.c
+++ /dev/null
@@ -1,773 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * write_entry.c -- write a terminfo structure onto the file system
- */
-
-#include <curses.priv.h>
-#include <hashed_db.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 1
-#define TRACE_OUT(p) DEBUG(2, p)
-#else
-#define TRACE_OUT(p) /*nothing */
-#endif
-
-MODULE_ID("$Id: write_entry.c,v 1.70 2007/11/17 23:38:28 tom Exp $")
-
-static int total_written;
-
-static int make_db_root(const char *);
-static int write_object(TERMTYPE *, char *, unsigned *, unsigned);
-
-#if !USE_HASHED_DB
-static void
-write_file(char *filename, TERMTYPE *tp)
-{
- char buffer[MAX_ENTRY_SIZE];
- unsigned limit = sizeof(buffer);
- unsigned offset = 0;
-
- 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(tp, buffer, &offset, limit) == ERR
- || fwrite(buffer, sizeof(char), offset, fp) != offset) {
- _nc_syserr_abort("error writing %s/%s", _nc_tic_dir(0), filename);
- }
-
- fclose(fp);
-}
-
-/*
- * 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_db_root(), 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[sizeof(LEAF_FMT)];
- char *s = 0;
-
- if (code == 0 || (s = strchr(dirnames, code)) == 0)
- _nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code);
-
- if (verified[s - dirnames])
- return;
-
- sprintf(dir, LEAF_FMT, code);
- if (make_db_root(dir) < 0) {
- _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
- }
-
- verified[s - dirnames] = TRUE;
-}
-#endif /* !USE_HASHED_DB */
-
-static int
-make_db_path(char *dst, const char *src, unsigned limit)
-{
- int rc = -1;
- const char *top = _nc_tic_dir(0);
-
- if (src == top || _nc_is_abs_path(src)) {
- if (strlen(src) + 1 <= limit) {
- (void) strcpy(dst, src);
- rc = 0;
- }
- } else {
- if (strlen(top) + strlen(src) + 2 <= limit) {
- (void) sprintf(dst, "%s/%s", top, src);
- rc = 0;
- }
- }
-#if USE_HASHED_DB
- if (rc == 0) {
- if (_nc_is_dir_path(dst)) {
- rc = -1;
- } else {
- unsigned have = strlen(dst);
- if (have > 3 && strcmp(dst + have - 3, DBM_SUFFIX)) {
- if (have + 3 <= limit)
- strcat(dst, DBM_SUFFIX);
- else
- rc = -1;
- }
- }
- }
-#endif
- return rc;
-}
-
-/*
- * Make a database-root if it doesn't exist.
- */
-static int
-make_db_root(const char *path)
-{
- int rc;
- char fullpath[PATH_MAX];
-
- if ((rc = make_db_path(fullpath, path, sizeof(fullpath))) == 0) {
-#if USE_HASHED_DB
- DB *capdbp;
-
- if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL)
- rc = -1;
- else if (_nc_db_close(capdbp) < 0)
- rc = -1;
-#else
- struct stat statbuf;
-
- 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 */
- }
-#endif
- }
- return rc;
-}
-
-/*
- * Set the write directory for compiled entries.
- */
-NCURSES_EXPORT(void)
-_nc_set_writedir(char *dir)
-{
- 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_db_root(destination) < 0) {
- char *home = _nc_home_terminfo();
-
- if (home != 0) {
- destination = home;
- if (make_db_root(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 USE_HASHED_DB
- make_db_path(actual, destination, sizeof(actual));
-#else
- if (chdir(_nc_tic_dir(destination)) < 0
- || getcwd(actual, sizeof(actual)) == 0)
- _nc_err_abort("%s: not a directory", destination);
-#endif
- _nc_keep_tic_dir(strdup(actual));
-}
-
-/*
- * 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.
- */
-
-NCURSES_EXPORT(void)
-_nc_write_entry(TERMTYPE *const tp)
-{
-#if USE_HASHED_DB
-
- char buffer[MAX_ENTRY_SIZE + 1];
- unsigned limit = sizeof(buffer);
- unsigned offset = 0;
-
-#else /* !USE_HASHED_DB */
-
- struct stat statbuf;
- 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 */
-
-#endif /* USE_HASHED_DB */
-
- char name_list[MAX_TERMINFO_LENGTH];
- char *first_name, *other_names;
- char *ptr;
-
- (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 USE_HASHED_DB
- if (write_object(tp, buffer + 1, &offset, limit - 1) != ERR) {
- DB *capdb = _nc_db_open(_nc_tic_dir(0), TRUE);
- DBT key, data;
-
- if (capdb != 0) {
- buffer[0] = 0;
-
- memset(&key, 0, sizeof(key));
- key.data = tp->term_names;
- key.size = strlen(tp->term_names);
-
- memset(&data, 0, sizeof(data));
- data.data = buffer;
- data.size = offset + 1;
-
- _nc_db_put(capdb, &key, &data);
-
- buffer[0] = 2;
-
- key.data = name_list;
- key.size = strlen(name_list);
-
- strcpy(buffer + 1, tp->term_names);
- data.size = strlen(tp->term_names) + 1;
-
- _nc_db_put(capdb, &key, &data);
-
- while (*other_names != '\0') {
- ptr = other_names++;
- while (*other_names != '|' && *other_names != '\0')
- other_names++;
-
- if (*other_names != '\0')
- *(other_names++) = '\0';
-
- key.data = ptr;
- key.size = strlen(ptr);
-
- _nc_db_put(capdb, &key, &data);
- }
- _nc_db_close(capdb);
- }
- }
-#else /* !USE_HASHED_DB */
- if (call_count++ == 0) {
- start_time = 0;
- }
-
- if (strlen(first_name) > sizeof(filename) - 3)
- _nc_warning("terminal name too long.");
-
- sprintf(filename, LEAF_FMT "/%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, LEAF_FMT "/%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 */
- }
-#endif /* USE_HASHED_DB */
-}
-
-static unsigned
-fake_write(char *dst,
- unsigned *offset,
- unsigned limit,
- char *src,
- unsigned want,
- unsigned size)
-{
- int have = (limit - *offset);
-
- want *= size;
- if (have > 0) {
- if ((int) want > have)
- want = have;
- memcpy(dst + *offset, src, want);
- *offset += want;
- } else {
- want = 0;
- }
- return (int) (want / size);
-}
-
-#define Write(buf, size, count) fake_write(buffer, offset, limit, (char *) buf, count, size)
-
-#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) (Write(str, sizeof(char), strlen(str) + 1) == 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)", (int) 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 && Write(&zero, sizeof(char), 1) != 1)
-
-#if NCURSES_XNAMES
-static unsigned
-extended_Booleans(TERMTYPE *tp)
-{
- unsigned short result = 0;
- unsigned short i;
-
- for (i = 0; i < tp->ext_Booleans; ++i) {
- if (tp->Booleans[BOOLCOUNT + i] == TRUE)
- result = (i + 1);
- }
- return result;
-}
-
-static unsigned
-extended_Numbers(TERMTYPE *tp)
-{
- unsigned short result = 0;
- unsigned short i;
-
- for (i = 0; i < tp->ext_Numbers; ++i) {
- if (tp->Numbers[NUMCOUNT + i] != ABSENT_NUMERIC)
- result = (i + 1);
- }
- return result;
-}
-
-static unsigned
-extended_Strings(TERMTYPE *tp)
-{
- unsigned short result = 0;
- unsigned short i;
-
- for (i = 0; i < tp->ext_Strings; ++i) {
- if (tp->Strings[STRCOUNT + i] != ABSENT_STRING)
- result = (i + 1);
- }
- return result;
-}
-
-/*
- * _nc_align_termtype() will extend entries that are referenced in a use=
- * clause - discard the unneeded data.
- */
-static bool
-extended_object(TERMTYPE *tp)
-{
- bool result = FALSE;
-
- if (_nc_user_definable) {
- result = ((extended_Booleans(tp)
- + extended_Numbers(tp)
- + extended_Strings(tp)) != 0);
- }
- return result;
-}
-#endif
-
-static int
-write_object(TERMTYPE *tp, char *buffer, unsigned *offset, unsigned limit)
-{
- 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 @%d", namelist, *offset));
- if (Write(buf, 12, 1) != 1
- || Write(namelist, sizeof(char), namelen) != namelen)
- return (ERR);
-
- for (i = 0; i < boolmax; i++)
- if (tp->Booleans[i] == TRUE)
- buf[i] = TRUE;
- else
- buf[i] = FALSE;
- if (Write(buf, sizeof(char), boolmax) != boolmax)
- return (ERR);
-
- if (even_boundary(namelen + boolmax))
- return (ERR);
-
- TRACE_OUT(("Numerics begin at %04x", *offset));
-
- /* the numerics */
- convert_shorts(buf, tp->Numbers, nummax);
- if (Write(buf, 2, nummax) != nummax)
- return (ERR);
-
- TRACE_OUT(("String offsets begin at %04x", *offset));
-
- /* the string offsets */
- convert_shorts(buf, offsets, strmax);
- if (Write(buf, 2, strmax) != strmax)
- return (ERR);
-
- TRACE_OUT(("String table begins at %04x", *offset));
-
- /* 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 (extended_object(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 @%d", *offset));
- if (Write(buf, 10, 1) != 1)
- return (ERR);
-
- TRACE_OUT(("WRITE %d booleans @%d", tp->ext_Booleans, *offset));
- if (tp->ext_Booleans
- && Write(tp->Booleans + BOOLCOUNT, sizeof(char),
- tp->ext_Booleans) != tp->ext_Booleans)
- return (ERR);
-
- if (even_boundary(tp->ext_Booleans))
- return (ERR);
-
- TRACE_OUT(("WRITE %d numbers @%d", tp->ext_Numbers, *offset));
- if (tp->ext_Numbers) {
- convert_shorts(buf, tp->Numbers + NUMCOUNT, tp->ext_Numbers);
- if (Write(buf, 2, tp->ext_Numbers) != 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 @%d", *offset));
- if (Write(buf, 2, strmax) != 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", (int) 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", (int) 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/contrib/ncurses/ncurses/trace/README b/contrib/ncurses/ncurses/trace/README
deleted file mode 100644
index e658feccb873..000000000000
--- a/contrib/ncurses/ncurses/trace/README
+++ /dev/null
@@ -1,33 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998,2006 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README,v 1.2 2006/04/22 22:19:37 tom Exp $
--------------------------------------------------------------------------------
-
-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/contrib/ncurses/ncurses/trace/lib_trace.c b/contrib/ncurses/ncurses/trace/lib_trace.c
deleted file mode 100644
index 03acb16cba91..000000000000
--- a/contrib/ncurses/ncurses/trace/lib_trace.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * lib_trace.c - Tracing/Debugging routines
- *
- * The _tracef() function is originally from pcurses (by Pavel Curtis) in 1982.
- * pcurses allowed one to enable/disable tracing using traceon() and traceoff()
- * functions. ncurses provides a trace() function which allows one to
- * selectively enable or disable several tracing features.
- */
-
-#include <curses.priv.h>
-#include <tic.h>
-
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_trace.c,v 1.66 2008/03/22 16:56:48 tom Exp $")
-
-NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
-
-#ifdef TRACE
-
-#if USE_REENTRANT
-NCURSES_EXPORT(const char *)
-NCURSES_PUBLIC_VAR(_nc_tputs_trace) (void)
-{
- return SP ? SP->_tputs_trace : _nc_prescreen._tputs_trace;
-}
-NCURSES_EXPORT(long)
-NCURSES_PUBLIC_VAR(_nc_outchars) (void)
-{
- return SP ? SP->_outchars : _nc_prescreen._outchars;
-}
-NCURSES_EXPORT(void)
-_nc_set_tputs_trace(const char *s)
-{
- if (SP)
- SP->_tputs_trace = s;
- else
- _nc_prescreen._tputs_trace = s;
-}
-NCURSES_EXPORT(void)
-_nc_count_outchars(long increment)
-{
- if (SP)
- SP->_outchars += increment;
- else
- _nc_prescreen._outchars += increment;
-}
-#else
-NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
-NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
-#endif
-
-#define TraceFP _nc_globals.trace_fp
-#define TracePath _nc_globals.trace_fname
-#define TraceLevel _nc_globals.trace_level
-
-NCURSES_EXPORT(void)
-trace(const unsigned int tracelevel)
-{
- if ((TraceFP == 0) && tracelevel) {
- const char *mode = _nc_globals.init_trace ? "ab" : "wb";
-
- if (TracePath[0] == '\0') {
- if (getcwd(TracePath, sizeof(TracePath) - 12) == 0) {
- perror("curses: Can't get working directory");
- exit(EXIT_FAILURE);
- }
- strcat(TracePath, "/trace");
- if (_nc_is_dir_path(TracePath)) {
- strcat(TracePath, ".log");
- }
- }
-
- _nc_globals.init_trace = TRUE;
- _nc_tracing = tracelevel;
- if (_nc_access(TracePath, W_OK) < 0
- || (TraceFP = fopen(TracePath, mode)) == 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 (tracelevel=%#x)",
- NCURSES_VERSION,
- NCURSES_VERSION_PATCH,
- tracelevel);
- } else if (tracelevel == 0) {
- if (TraceFP != 0) {
- fclose(TraceFP);
- TraceFP = 0;
- }
- _nc_tracing = tracelevel;
- } else if (_nc_tracing != tracelevel) {
- _nc_tracing = tracelevel;
- _tracef("tracelevel=%#x", tracelevel);
- }
-}
-
-static void
-_nc_va_tracef(const char *fmt, va_list ap)
-{
- static const char Called[] = T_CALLED("");
- static const char Return[] = T_RETURN("");
-
- bool before = FALSE;
- bool after = FALSE;
- unsigned doit = _nc_tracing;
- int save_err = errno;
-
- if (strlen(fmt) >= sizeof(Called) - 1) {
- if (!strncmp(fmt, Called, sizeof(Called) - 1)) {
- before = TRUE;
- TraceLevel++;
- } else if (!strncmp(fmt, Return, sizeof(Return) - 1)) {
- after = TRUE;
- }
- if (before || after) {
- if ((TraceLevel <= 1)
- || (doit & TRACE_ICALLS) != 0)
- doit &= (TRACE_CALLS | TRACE_CCALLS);
- else
- doit = 0;
- }
- }
-
- if (doit != 0) {
- if (TraceFP == 0)
- TraceFP = stderr;
-#ifdef USE_PTHREADS
- /*
- * TRACE_ICALLS is "really" needed to show normal use with threaded
- * applications, since anything can be running during a napms(),
- * making it appear in the hierarchical trace as it other functions
- * are being called.
- *
- * Rather than add the complication of a per-thread stack, just
- * show the thread-id in each line of the trace.
- */
- fprintf(TraceFP, "%#lx:", (long) pthread_self());
-#endif
- if (before || after) {
- int n;
- for (n = 1; n < TraceLevel; n++)
- fputs("+ ", TraceFP);
- }
- vfprintf(TraceFP, fmt, ap);
- fputc('\n', TraceFP);
- fflush(TraceFP);
- }
-
- if (after && TraceLevel)
- TraceLevel--;
-
- errno = save_err;
-}
-
-NCURSES_EXPORT(void)
-_tracef(const char *fmt,...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- _nc_va_tracef(fmt, ap);
- va_end(ap);
-}
-
-/* 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 'const char*' return-values */
-NCURSES_EXPORT(const char *)
-_nc_retrace_cptr(const char *code)
-{
- T((T_RETURN("%s"), _nc_visbuf(code)));
- return code;
-}
-
-/* Trace 'NCURSES_CONST void*' return-values */
-NCURSES_EXPORT(NCURSES_CONST void *)
-_nc_retrace_cvoid_ptr(NCURSES_CONST void *code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-/* Trace 'void*' return-values */
-NCURSES_EXPORT(void *)
-_nc_retrace_void_ptr(void *code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-
-/* Trace 'SCREEN *' return-values */
-NCURSES_EXPORT(SCREEN *)
-_nc_retrace_sp(SCREEN *code)
-{
- 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;
-}
-
-#if USE_REENTRANT
-/*
- * Check if the given trace-mask is enabled.
- *
- * This function may be called from within one of the functions that fills
- * in parameters for _tracef(), but in that case we do not want to lock the
- * mutex, since it is already locked.
- */
-NCURSES_EXPORT(int)
-_nc_use_tracef(unsigned mask)
-{
- bool result = FALSE;
-
- _nc_lock_global(tst_tracef);
- if (!_nc_globals.nested_tracef++) {
- if ((result = (_nc_tracing & (mask))) != 0) {
- /* we will call _nc_locked_tracef(), no nesting so far */
- _nc_lock_global(tracef);
- } else {
- /* we will not call _nc_locked_tracef() */
- _nc_globals.nested_tracef = 0;
- }
- } else {
- /* we may call _nc_locked_tracef(), but with nested_tracef > 0 */
- result = (_nc_tracing & (mask));
- }
- _nc_unlock_global(tst_tracef);
- return result;
-}
-
-/*
- * We call this if _nc_use_tracef() returns true, which means we must unlock
- * the tracef mutex.
- */
-NCURSES_EXPORT(void)
-_nc_locked_tracef(const char *fmt,...)
-{
- va_list ap;
-
- va_start(ap, fmt);
- _nc_va_tracef(fmt, ap);
- va_end(ap);
-
- if (--(_nc_globals.nested_tracef) == 0)
- _nc_unlock_global(tracef);
-}
-#endif /* USE_REENTRANT */
-
-#endif /* TRACE */
diff --git a/contrib/ncurses/ncurses/trace/lib_traceatr.c b/contrib/ncurses/ncurses/trace/lib_traceatr.c
deleted file mode 100644
index 108eb8b4d335..000000000000
--- a/contrib/ncurses/ncurses/trace/lib_traceatr.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall 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-on *
- * 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: lib_traceatr.c,v 1.59 2007/06/09 17:22:10 tom Exp $")
-
-#define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
-
-#ifdef TRACE
-
-static const char l_brace[] = StringOf(L_BRACE);
-static const char r_brace[] = StringOf(R_BRACE);
-
-#ifndef USE_TERMLIB
-
-#define my_buffer _nc_globals.traceatr_color_buf
-#define my_select _nc_globals.traceatr_color_sel
-#define my_cached _nc_globals.traceatr_color_last
-
-static char *
-color_of(int c)
-{
- if (c != my_cached) {
- my_cached = c;
- my_select = !my_select;
- if (c == COLOR_DEFAULT)
- strcpy(my_buffer[my_select], "default");
- else
- sprintf(my_buffer[my_select], "color%d", c);
- }
- return my_buffer[my_select];
-}
-
-#undef my_buffer
-#undef my_select
-#endif /* !USE_TERMLIB */
-
-NCURSES_EXPORT(char *)
-_traceattr2(int bufnum, chtype newmode)
-{
- char *buf = _nc_trace_buf(bufnum, BUFSIZ);
- char temp[80];
- 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* */
-
- }
-#ifndef USE_TERMLIB
- ,
- 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* */
-
- }
-#endif /* !USE_TERMLIB */
- ;
- size_t n;
- unsigned save_nc_tracing = _nc_tracing;
- _nc_tracing = 0;
-
- strcpy(buf, l_brace);
-
- for (n = 0; n < SIZEOF(names); n++) {
- if ((newmode & names[n].val) != 0) {
- if (buf[1] != '\0')
- buf = _nc_trace_bufcat(bufnum, "|");
- buf = _nc_trace_bufcat(bufnum, names[n].name);
-
- if (names[n].val == A_COLOR) {
- short pairnum = PAIR_NUMBER(newmode);
-#ifdef USE_TERMLIB
- /* pair_content lives in libncurses */
- (void) sprintf(temp, "{%d}", pairnum);
-#else
- short fg, bg;
-
- if (pair_content(pairnum, &fg, &bg) == OK) {
- (void) sprintf(temp,
- "{%d = {%s, %s}}",
- pairnum,
- COLOR_OF(fg),
- COLOR_OF(bg));
- } else {
- (void) sprintf(temp, "{%d}", pairnum);
- }
-#endif
- buf = _nc_trace_bufcat(bufnum, temp);
- }
- }
- }
- if (ChAttrOf(newmode) == A_NORMAL) {
- if (buf[1] != '\0')
- (void) _nc_trace_bufcat(bufnum, "|");
- (void) _nc_trace_bufcat(bufnum, "A_NORMAL");
- }
-
- _nc_tracing = save_nc_tracing;
- return (_nc_trace_bufcat(bufnum, 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)
-{
- typedef struct {
- unsigned int val;
- const char *name;
- } ALT_NAMES;
-
- const char *result = 0;
-
- if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
- char *cp;
- char *found = 0;
- /* *INDENT-OFF* */
- static const ALT_NAMES names[] =
- {
- { '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* */
- const ALT_NAMES *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)
-{
- const char *found;
-
- strcpy(_nc_trace_buf(bufnum, BUFSIZ), l_brace);
- if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
- (void) _nc_trace_bufcat(bufnum, found);
- } else
- (void) _nc_trace_bufcat(bufnum, _tracechar((int)ChCharOf(ch)));
-
- if (ChAttrOf(ch) != A_NORMAL) {
- (void) _nc_trace_bufcat(bufnum, " | ");
- (void) _nc_trace_bufcat(bufnum,
- _traceattr2(bufnum + 20, ChAttrOf(ch)));
- }
-
- return (_nc_trace_bufcat(bufnum, 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, (chtype) CharOfD(ch))) != 0) {
- (void) _nc_trace_bufcat(bufnum, found);
- attr &= ~A_ALTCHARSET;
- } else if (isWidecExt(CHDEREF(ch))) {
- (void) _nc_trace_bufcat(bufnum, "{NAC}");
- attr &= ~A_CHARTEXT;
- } else {
- PUTC_DATA;
- int n;
-
- PUTC_INIT;
- (void) _nc_trace_bufcat(bufnum, "{ ");
- for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) {
- PUTC_ch = ch->chars[PUTC_i];
- if (PUTC_ch == L'\0')
- break;
- PUTC_n = wcrtomb(PUTC_buf, ch->chars[PUTC_i], &PUT_st);
- if (PUTC_n <= 0) {
- if (PUTC_ch != L'\0') {
- /* it could not be a multibyte sequence */
- (void) _nc_trace_bufcat(bufnum, _tracechar(UChar(ch->chars[PUTC_i])));
- }
- break;
- }
- for (n = 0; n < PUTC_n; n++) {
- if (n)
- (void) _nc_trace_bufcat(bufnum, ", ");
- (void) _nc_trace_bufcat(bufnum, _tracechar(UChar(PUTC_buf[n])));
- }
- }
- (void) _nc_trace_bufcat(bufnum, " }");
- }
- if (attr != A_NORMAL) {
- (void) _nc_trace_bufcat(bufnum, " | ");
- (void) _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr));
- }
- }
-
- return (_nc_trace_bufcat(bufnum, 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/contrib/ncurses/ncurses/trace/lib_tracebits.c b/contrib/ncurses/ncurses/trace/lib_tracebits.c
deleted file mode 100644
index de2394c39225..000000000000
--- a/contrib/ncurses/ncurses/trace/lib_tracebits.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id: lib_tracebits.c,v 1.15 2007/06/30 16:14:20 tom Exp $")
-
-#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
-
-#ifndef ONLCR
-#define ONLCR 0
-#endif
-
-#ifndef OCRNL
-#define OCRNL 0
-#endif
-
-#ifndef ONOCR
-#define ONOCR 0
-#endif
-
-#ifndef ONLRET
-#define ONLRET 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"},
- {OFLAGS_TABS, "XTABS"},
- {ONLCR, "ONLCR"},
- {OCRNL, "OCRNL"},
- {ONOCR, "ONOCR"},
- {ONLRET, "ONLRET"},
- {0, NULL}
-#define ALLOUT (OPOST|OFLAGS_TABS|ONLCR|OCRNL|ONOCR|ONLRET)
- }, 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/contrib/ncurses/ncurses/trace/lib_tracechr.c b/contrib/ncurses/ncurses/trace/lib_tracechr.c
deleted file mode 100644
index 479756ac59be..000000000000
--- a/contrib/ncurses/ncurses/trace/lib_tracechr.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * lib_tracechr.c - Tracing/Debugging routines
- */
-#include <curses.priv.h>
-
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_tracechr.c,v 1.13 2007/04/21 23:16:37 tom Exp $")
-
-#ifdef TRACE
-#define MyBuffer _nc_globals.tracechr_buf
-
-NCURSES_EXPORT(char *)
-_tracechar(int ch)
-{
- NCURSES_CONST char *name;
-
- if (ch > KEY_MIN || ch < 0) {
- name = keyname(ch);
- if (name == 0 || *name == '\0')
- name = "NULL";
- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
- } else if (!is8bits(ch) || !isprint(UChar(ch))) {
- /*
- * workaround for glibc bug:
- * sprintf changes the result from unctrl() to an empty string if it
- * does not correspond to a valid multibyte sequence.
- */
- (void) sprintf(MyBuffer, "%#03o", ch);
- } else {
- name = unctrl((chtype) ch);
- if (name == 0 || *name == 0)
- name = "null"; /* shouldn't happen */
- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
- }
- return (MyBuffer);
-}
-#else
-empty_module(_nc_lib_tracechr)
-#endif
diff --git a/contrib/ncurses/ncurses/trace/lib_tracedmp.c b/contrib/ncurses/ncurses/trace/lib_tracedmp.c
deleted file mode 100644
index d56d1a5d48b0..000000000000
--- a/contrib/ncurses/ncurses/trace/lib_tracedmp.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-on *
- * 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: lib_tracedmp.c,v 1.29 2007/06/30 23:01:19 tom Exp $")
-
-#ifdef TRACE
-
-#define my_buffer _nc_globals.tracedmp_buf
-#define my_length _nc_globals.tracedmp_used
-
-NCURSES_EXPORT(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 (CharOf(win->_line[i].text[j]) != L(' ')
- || AttrOf(win->_line[i].text[j]) != A_NORMAL
- || GetPair(win->_line[i].text[j]) != 0) {
- n = j;
- }
- }
-
- if (n > width)
- width = n;
- }
- if (width < win->_maxx)
- ++width;
- if (++width + 1 > (int) my_length) {
- my_length = 2 * (width + 1);
- my_buffer = typeRealloc(char, my_length, my_buffer);
- }
-
- for (n = 0; n <= win->_maxy; ++n) {
- char *ep = my_buffer;
- 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] %3ld%3ld ='%s'",
- name, n,
- (long) win->_line[n].firstchar,
- (long) win->_line[n].lastchar,
- ep);
-
- /* if there are multi-column characters on the line, print them now */
- if_WIDEC({
- bool multicolumn = FALSE;
- for (j = 0; j < width; ++j)
- if (WidecExt(win->_line[n].text[j]) != 0) {
- multicolumn = TRUE;
- break;
- }
- if (multicolumn) {
- ep = my_buffer;
- for (j = 0; j < width; ++j) {
- int test = WidecExt(win->_line[n].text[j]);
- if (test) {
- ep[j] = test + '0';
- } else {
- ep[j] = ' ';
- }
- }
- ep[j] = '\0';
- _tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
- "widec", n, 8, " ", my_buffer);
- }
- });
-
- /* dump A_COLOR part, will screw up if there are more than 96 */
- havecolors = FALSE;
- for (j = 0; j < width; ++j)
- if (GetPair(win->_line[n].text[j]) != 0) {
- havecolors = TRUE;
- break;
- }
- if (havecolors) {
- ep = my_buffer;
- for (j = 0; j < width; ++j) {
- int pair = GetPair(win->_line[n].text[j]);
- if (pair >= 52)
- ep[j] = '?';
- else if (pair >= 36)
- ep[j] = pair + 'A';
- else if (pair >= 10)
- ep[j] = pair + 'a';
- else if (pair >= 1)
- ep[j] = pair + '0';
- else
- ep[j] = ' ';
- }
- ep[j] = '\0';
- _tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
- "colors", n, 8, " ", my_buffer);
- }
-
- 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 = my_buffer;
- 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, " ", my_buffer);
- }
- }
- }
-#if NO_LEAKS
- free(my_buffer);
- my_buffer = 0;
- my_length = 0;
-#endif
-}
-
-#else
-empty_module(_nc_lib_tracedmp)
-#endif /* TRACE */
diff --git a/contrib/ncurses/ncurses/trace/lib_tracemse.c b/contrib/ncurses/ncurses/trace/lib_tracemse.c
deleted file mode 100644
index 5edcc13a6ffa..000000000000
--- a/contrib/ncurses/ncurses/trace/lib_tracemse.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * lib_tracemse.c - Tracing/Debugging routines (mouse events)
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_tracemse.c,v 1.13 2007/04/21 21:23:00 tom Exp $")
-
-#ifdef TRACE
-
-#define my_buffer _nc_globals.tracemse_buf
-
-NCURSES_EXPORT(char *)
-_tracemouse(MEVENT const *ep)
-{
- (void) sprintf(my_buffer, TRACEMSE_FMT,
- ep->id,
- ep->x,
- ep->y,
- ep->z,
- (unsigned long) ep->bstate);
-
-#define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(my_buffer, s), ", ")
-
- SHOW(BUTTON1_RELEASED, "release-1");
- SHOW(BUTTON1_PRESSED, "press-1");
- SHOW(BUTTON1_CLICKED, "click-1");
- SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1");
- SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON1_RESERVED_EVENT, "reserved-1");
-#endif
-
- SHOW(BUTTON2_RELEASED, "release-2");
- SHOW(BUTTON2_PRESSED, "press-2");
- SHOW(BUTTON2_CLICKED, "click-2");
- SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2");
- SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON2_RESERVED_EVENT, "reserved-2");
-#endif
-
- SHOW(BUTTON3_RELEASED, "release-3");
- SHOW(BUTTON3_PRESSED, "press-3");
- SHOW(BUTTON3_CLICKED, "click-3");
- SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3");
- SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON3_RESERVED_EVENT, "reserved-3");
-#endif
-
- SHOW(BUTTON4_RELEASED, "release-4");
- SHOW(BUTTON4_PRESSED, "press-4");
- SHOW(BUTTON4_CLICKED, "click-4");
- SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4");
- SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON4_RESERVED_EVENT, "reserved-4");
-#endif
-
-#if NCURSES_MOUSE_VERSION == 2
- SHOW(BUTTON5_RELEASED, "release-5");
- SHOW(BUTTON5_PRESSED, "press-5");
- SHOW(BUTTON5_CLICKED, "click-5");
- SHOW(BUTTON5_DOUBLE_CLICKED, "doubleclick-5");
- SHOW(BUTTON5_TRIPLE_CLICKED, "tripleclick-5");
-#endif
-
- SHOW(BUTTON_CTRL, "ctrl");
- SHOW(BUTTON_SHIFT, "shift");
- SHOW(BUTTON_ALT, "alt");
- SHOW(ALL_MOUSE_EVENTS, "all-events");
- SHOW(REPORT_MOUSE_POSITION, "position");
-
-#undef SHOW
-
- if (my_buffer[strlen(my_buffer) - 1] == ' ')
- my_buffer[strlen(my_buffer) - 2] = '\0';
- (void) strcat(my_buffer, "}");
- return (my_buffer);
-}
-
-#else /* !TRACE */
-empty_module(_nc_lib_tracemouse)
-#endif
diff --git a/contrib/ncurses/ncurses/trace/trace_buf.c b/contrib/ncurses/ncurses/trace/trace_buf.c
deleted file mode 100644
index 7bf91c674df3..000000000000
--- a/contrib/ncurses/ncurses/trace/trace_buf.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: trace_buf.c,v 1.13 2007/04/21 22:50:08 tom Exp $")
-
-#define MyList _nc_globals.tracebuf_ptr
-#define MySize _nc_globals.tracebuf_used
-
-static char *
-_nc_trace_alloc(int bufnum, size_t want)
-{
- char *result = 0;
-
- if (bufnum >= 0) {
- if ((size_t) (bufnum + 1) > MySize) {
- size_t need = (bufnum + 1) * 2;
- if ((MyList = typeRealloc(TRACEBUF, need, MyList)) == 0)
- return (0);
- while (need > MySize)
- MyList[MySize++].text = 0;
- }
-
- if (MyList[bufnum].text == 0
- || want > MyList[bufnum].size) {
- MyList[bufnum].text = typeRealloc(char, want, MyList[bufnum].text);
- if (MyList[bufnum].text != 0)
- MyList[bufnum].size = want;
- }
-
- result = MyList[bufnum].text;
- }
-#if NO_LEAKS
- else {
- if (MySize) {
- while (MySize--) {
- if (MyList[MySize].text != 0)
- free(MyList[MySize].text);
- }
- free(MyList);
- }
- }
-#endif
- return result;
-}
-
-/*
- * (re)Allocate a buffer big enough for the caller's wants.
- */
-NCURSES_EXPORT(char *)
-_nc_trace_buf(int bufnum, size_t want)
-{
- char *result = _nc_trace_alloc(bufnum, want);
- if (result != 0)
- *result = '\0';
- return result;
-}
-
-/*
- * Append a new string to an existing buffer.
- */
-NCURSES_EXPORT(char *)
-_nc_trace_bufcat(int bufnum, const char *value)
-{
- char *buffer = _nc_trace_alloc(bufnum, 0);
- size_t have = strlen(buffer);
-
- buffer = _nc_trace_alloc(bufnum, 1 + have + strlen(value));
- (void) strcpy(buffer + have, value);
-
- return buffer;
-}
diff --git a/contrib/ncurses/ncurses/trace/trace_tries.c b/contrib/ncurses/ncurses/trace/trace_tries.c
deleted file mode 100644
index 0aa0b227d7d0..000000000000
--- a/contrib/ncurses/ncurses/trace/trace_tries.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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: trace_tries.c,v 1.12 2007/04/21 21:55:41 tom Exp $")
-
-#ifdef TRACE
-#define my_buffer _nc_globals.tracetry_buf
-#define my_length _nc_globals.tracetry_used
-
-static void
-recur_tries(TRIES * tree, unsigned level)
-{
- if (level > my_length) {
- my_length = (level + 1) * 4;
- my_buffer = (unsigned char *) realloc(my_buffer, my_length);
- }
-
- while (tree != 0) {
- if ((my_buffer[level] = tree->ch) == 0)
- my_buffer[level] = 128;
- my_buffer[level + 1] = 0;
- if (tree->value != 0) {
- _tracef("%5d: %s (%s)", tree->value,
- _nc_visbuf((char *) my_buffer), keyname(tree->value));
- }
- if (tree->child)
- recur_tries(tree->child, level + 1);
- tree = tree->sibling;
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_trace_tries(TRIES * tree)
-{
- my_buffer = typeMalloc(unsigned char, my_length = 80);
- _tracef("BEGIN tries %p", tree);
- recur_tries(tree, 0);
- _tracef(". . . tries %p", tree);
- free(my_buffer);
-}
-
-#else
-empty_module(_nc_trace_tries)
-#endif
diff --git a/contrib/ncurses/ncurses/trace/trace_xnames.c b/contrib/ncurses/ncurses/trace/trace_xnames.c
deleted file mode 100644
index 9b0b5920d814..000000000000
--- a/contrib/ncurses/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: trace_xnames.c,v 1.5 2000/12/10 03:02:45 tom Exp $")
-
-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/contrib/ncurses/ncurses/trace/varargs.c b/contrib/ncurses/ncurses/trace/varargs.c
deleted file mode 100644
index 5e63d21a2cc5..000000000000
--- a/contrib/ncurses/ncurses/trace/varargs.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2001-2003,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2001 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-
-MODULE_ID("$Id: varargs.c,v 1.6 2007/07/14 15:51:27 tom Exp $")
-
-#ifdef TRACE
-
-#define MAX_PARMS 10
-
-typedef enum {
- atUnknown = 0, atInteger, atFloat, atPoint, atString
-} ARGTYPE;
-
-#define VA_INT(type) ival = va_arg(ap, type)
-#define VA_FLT(type) fval = va_arg(ap, type)
-#define VA_PTR(type) pval = (char *)va_arg(ap, type)
-#define VA_STR(type) sval = va_arg(ap, type)
-
-#define MyBuffer _nc_globals.tracearg_buf
-#define MyLength _nc_globals.tracearg_used
-
-/*
- * 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[] = "";
-
- char buffer[BUFSIZ];
- const char *param;
- int n;
-
- if (fmt == 0 || *fmt == '\0')
- return dummy;
- if (MyLength == 0)
- MyBuffer = typeMalloc(char, MyLength = BUFSIZ);
- if (MyBuffer == 0)
- return dummy;
- *MyBuffer = '\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;
- case atUnknown:
- default:
- strcpy(buffer, "?");
- break;
- }
- MyLength += strlen(param) + 2;
- MyBuffer = typeRealloc(char, MyLength, MyBuffer);
- sprintf(MyBuffer + strlen(MyBuffer), ", %s", param);
- }
- }
- used = atUnknown;
- }
- } else {
- fmt++;
- }
- }
-
- return (MyBuffer);
-}
-#else
-empty_module(_nc_varargs)
-#endif
diff --git a/contrib/ncurses/ncurses/trace/visbuf.c b/contrib/ncurses/ncurses/trace/visbuf.c
deleted file mode 100644
index 74081efe6442..000000000000
--- a/contrib/ncurses/ncurses/trace/visbuf.c
+++ /dev/null
@@ -1,321 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2001-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-on *
- * and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * visbuf.c - Tracing/Debugging support routines
- */
-
-#define NEED_NCURSES_CH_T
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <ctype.h>
-
-MODULE_ID("$Id: visbuf.c,v 1.26 2007/06/09 17:21:53 tom Exp $")
-
-#define NormalLen(len) (unsigned) ((len + 1) * 4)
-#define WideLen(len) (unsigned) ((len + 1) * 4 * MB_CUR_MAX)
-
-#ifdef TRACE
-static const char d_quote[] = StringOf(D_QUOTE);
-static const char l_brace[] = StringOf(L_BRACE);
-static const char r_brace[] = StringOf(R_BRACE);
-#endif
-
-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 (UChar(c) == 0x7f) {
- *tp++ = '\\';
- *tp++ = '^';
- *tp++ = '?';
- } else if (is7bits(c) && iscntrl(UChar(c))) {
- *tp++ = '\\';
- *tp++ = '^';
- *tp++ = '@' + c;
- } else {
- sprintf(tp, "\\%03lo", (unsigned long) ChCharOf(c));
- tp += strlen(tp);
- }
- *tp = 0;
- 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, NormalLen(len));
-#else
- {
- static char *mybuf[4];
- mybuf[bufnum] = typeRealloc(char, NormalLen(len), 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);
-}
-
-#ifdef TRACE
-#if USE_WIDEC_SUPPORT
-
-#if defined(USE_TERMLIB)
-#define _nc_wchstrlen _my_wchstrlen
-static int
-_nc_wchstrlen(const cchar_t *s)
-{
- int result = 0;
- while (CharOf(s[result]) != L'\0') {
- result++;
- }
- return result;
-}
-#endif
-
-static const char *
-_nc_viswbuf2n(int bufnum, const wchar_t *buf, int len)
-{
- 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, WideLen(len));
-#else
- {
- static char *mybuf[2];
- mybuf[bufnum] = typeRealloc(char, WideLen(len), 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, UChar(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);
-}
-
-/* this special case is used for wget_wstr() */
-NCURSES_EXPORT(const char *)
-_nc_viswibuf(const wint_t *buf)
-{
- static wchar_t *mybuf;
- static unsigned mylen;
- unsigned n;
-
- for (n = 0; buf[n] != 0; ++n) ;
- if (mylen < ++n) {
- mylen = n + 80;
- if (mybuf != 0)
- mybuf = typeRealloc(wchar_t, mylen, mybuf);
- else
- mybuf = typeMalloc(wchar_t, mylen);
- }
- for (n = 0; buf[n] != 0; ++n)
- mybuf[n] = (wchar_t) buf[n];
-
- return _nc_viswbuf2(0, mybuf);
-}
-#endif /* USE_WIDEC_SUPPORT */
-
-/* use these functions for displaying parts of a line within a window */
-NCURSES_EXPORT(const char *)
-_nc_viscbuf2(int bufnum, const NCURSES_CH_T * buf, int len)
-{
- char *result = _nc_trace_buf(bufnum, BUFSIZ);
- int first;
- const char *found;
-
-#if USE_WIDEC_SUPPORT
- if (len < 0)
- len = _nc_wchstrlen(buf);
-#endif /* USE_WIDEC_SUPPORT */
-
- /*
- * Display one or more strings followed by attributes.
- */
- first = 0;
- while (first < len) {
- attr_t attr = AttrOf(buf[first]);
- int last = len - 1;
- int j;
-
- for (j = first + 1; j < len; ++j) {
- if (!SameAttrOf(buf[j], buf[first])) {
- last = j - 1;
- break;
- }
- }
-
- result = _nc_trace_bufcat(bufnum, l_brace);
- result = _nc_trace_bufcat(bufnum, d_quote);
- for (j = first; j <= last; ++j) {
- found = _nc_altcharset_name(attr, (chtype) CharOf(buf[j]));
- if (found != 0) {
- result = _nc_trace_bufcat(bufnum, found);
- attr &= ~A_ALTCHARSET;
- } else
-#if USE_WIDEC_SUPPORT
- if (!isWidecExt(buf[j])) {
- PUTC_DATA;
-
- PUTC_INIT;
- for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) {
- int k;
-
- PUTC_ch = buf[j].chars[PUTC_i];
- if (PUTC_ch == L'\0')
- break;
- PUTC_n = wcrtomb(PUTC_buf, buf[j].chars[PUTC_i], &PUT_st);
- if (PUTC_n <= 0)
- break;
- for (k = 0; k < PUTC_n; k++) {
- char temp[80];
- _nc_vischar(temp, UChar(PUTC_buf[k]));
- result = _nc_trace_bufcat(bufnum, temp);
- }
- }
- }
-#else
- {
- char temp[80];
- _nc_vischar(temp, UChar(buf[j]));
- result = _nc_trace_bufcat(bufnum, temp);
- }
-#endif /* USE_WIDEC_SUPPORT */
- }
- result = _nc_trace_bufcat(bufnum, d_quote);
- if (attr != A_NORMAL) {
- result = _nc_trace_bufcat(bufnum, " | ");
- result = _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr));
- }
- result = _nc_trace_bufcat(bufnum, r_brace);
- first = last + 1;
- }
- return result;
-}
-
-NCURSES_EXPORT(const char *)
-_nc_viscbuf(const NCURSES_CH_T * buf, int len)
-{
- return _nc_viscbuf2(0, buf, len);
-}
-#endif /* TRACE */
diff --git a/contrib/ncurses/ncurses/tty/MKexpanded.sh b/contrib/ncurses/ncurses/tty/MKexpanded.sh
deleted file mode 100755
index bf9acf21aa43..000000000000
--- a/contrib/ncurses/ncurses/tty/MKexpanded.sh
+++ /dev/null
@@ -1,99 +0,0 @@
-#! /bin/sh
-##############################################################################
-# Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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: MKexpanded.sh,v 1.11 2005/01/02 01:06:40 tom Exp $
-#
-# Script to generate 'expanded.c', a dummy source that contains functions
-# corresponding to complex macros used in this library. By making functions,
-# 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 (NCURSES_CH_T 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/contrib/ncurses/ncurses/tty/hardscroll.c b/contrib/ncurses/ncurses/tty/hardscroll.c
deleted file mode 100644
index 7d8979a4f51b..000000000000
--- a/contrib/ncurses/ncurses/tty/hardscroll.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: hardscroll.c,v 1.41 2007/09/29 21:48:36 tom Exp $")
-
-#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'); }
-
-extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
-
-#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; /* obsolete: keep for ABI compat */
-
-# if USE_HASHMAP
-# define oldnums SP->_oldnum_list
-# define OLDNUM(n) oldnums[n]
-# else /* !USE_HASHMAP */
-# define OLDNUM(n) newscr->_line[n].oldindex
-# endif /* !USE_HASHMAP */
-
-#define OLDNUM_SIZE SP->_oldnum_size
-
-#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, (T_CALLED("_nc_scroll_optimize")));
-
-#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
-#if USE_HASHMAP
- /* get enough storage */
- if (OLDNUM_SIZE < screen_lines) {
- int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
- if (!new_oldnums)
- return;
- oldnums = new_oldnums;
- OLDNUM_SIZE = screen_lines;
- }
- /* calculate the indices */
- _nc_hash_map();
-#endif
-#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
-
-#ifdef TRACE
- if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) {
- _nc_linedump();
- _nc_unlock_global(tracef);
- }
-#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) */
- }
- TR(TRACE_ICALLS, (T_RETURN("")));
-}
-
-#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
-NCURSES_EXPORT(void)
-_nc_linedump(void)
-/* dump the state of the real and virtual oldnum fields */
-{
- int n;
- char *buf = 0;
- size_t want = (screen_lines + 1) * 4;
-
- buf = typeMalloc(char, 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));
- free(buf);
-}
-#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/contrib/ncurses/ncurses/tty/hashmap.c b/contrib/ncurses/ncurses/tty/hashmap.c
deleted file mode 100644
index 9b60df62d5cf..000000000000
--- a/contrib/ncurses/ncurses/tty/hashmap.c
+++ /dev/null
@@ -1,549 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: hashmap.c,v 1.56 2007/10/13 18:47:25 Miroslav.Lichvar Exp $")
-
-#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 NCURSES_CH_T oldtext[MAXLINES][TEXTWIDTH];
-static NCURSES_CH_T 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) SP->_oldnum_list[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 const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
-
-static NCURSES_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--, from++, to++)
- 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 = blankchar;
-
- if (back_color_erase)
- SetPair(blank, GetPair(stdscr->_nc_bkgd));
-
- for (i = TEXTWIDTH; i > 0; i--, to++)
- 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 NCURSES_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;
-
- if (setupterm(NULL, fileno(stdout), (int *) 0) == ERR)
- return EXIT_FAILURE;
- (void) _nc_alloc_screen();
-
- for (n = 0; n < screen_lines; n++) {
- reallines[n] = n;
- oldnums[n] = _NEWINDEX;
- CharOf(oldtext[n][0]) = CharOf(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)
- break;
-
- 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++)
- CharOf(newtext[n][0]) = '.';
- for (n = 0; n < screen_lines; n++)
- if (line[n + 1] == '\n')
- break;
- else
- CharOf(newtext[n][0]) = line[n + 1];
- break;
-
- case 'o': /* use following letters as text of old lines */
- for (n = 0; n < screen_lines; n++)
- CharOf(oldtext[n][0]) = '.';
- for (n = 0; n < screen_lines; n++)
- if (line[n + 1] == '\n')
- break;
- else
- CharOf(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(CharOf(oldtext[n][0]));
- putchar(']');
- putchar('\n');
- (void) fputs("New lines: [", stdout);
- for (n = 0; n < screen_lines; n++)
- putchar(CharOf(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;
- default:
- case '?':
- usage();
- break;
- }
- }
-#if NO_LEAKS
- _nc_free_and_exit(EXIT_SUCCESS);
-#else
- return EXIT_SUCCESS;
-#endif
-}
-
-#endif /* HASHDEBUG */
-
-/* hashmap.c ends here */
diff --git a/contrib/ncurses/ncurses/tty/lib_mvcur.c b/contrib/ncurses/ncurses/tty/lib_mvcur.c
deleted file mode 100644
index 19984c92333e..000000000000
--- a/contrib/ncurses/ncurses/tty/lib_mvcur.c
+++ /dev/null
@@ -1,1245 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** 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_columns - 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: lib_mvcur.c,v 1.110 2007/08/11 16:15:57 tom Exp $")
-
-#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_2(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 */
-{
- if (isatty(fileno(SP->_ofp)))
- SP->_char_padding = ((BAUDBYTE * 1000 * 10)
- / (BAUDRATE > 0 ? BAUDRATE : 9600));
- else
- SP->_char_padding = 1; /* must be nonzero */
- 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
- if (getenv("NCURSES_NO_HARD_TABS") == 0) {
- SP->_ht_cost = CostOf(tab, 0);
- SP->_cbt_cost = CostOf(back_tab, 0);
- } else {
- SP->_ht_cost = INFINITY;
- SP->_cbt_cost = INFINITY;
- }
-#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_2(SP->_address_cursor, 23, 23), 1);
- SP->_cub_cost = CostOf(TPARM_1(parm_left_cursor, 23), 1);
- SP->_cuf_cost = CostOf(TPARM_1(parm_right_cursor, 23), 1);
- SP->_cud_cost = CostOf(TPARM_1(parm_down_cursor, 23), 1);
- SP->_cuu_cost = CostOf(TPARM_1(parm_up_cursor, 23), 1);
- SP->_hpa_cost = CostOf(TPARM_1(column_address, 23), 1);
- SP->_vpa_cost = CostOf(TPARM_1(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);
-
- /*
- * If this is a bce-terminal, we want to bias the choice so we use clr_eol
- * rather than spaces at the end of a line.
- */
- if (back_color_erase)
- SP->_el_cost = 0;
-
- /* parameterized screen-update strings */
- SP->_dch_cost = NormalizedCost(TPARM_1(parm_dch, 23), 1);
- SP->_ich_cost = NormalizedCost(TPARM_1(parm_ich, 23), 1);
- SP->_ech_cost = NormalizedCost(TPARM_1(erase_chars, 23), 1);
- SP->_rep_cost = NormalizedCost(TPARM_2(repeat_char, ' ', 23), 1);
-
- SP->_cup_ch_cost = NormalizedCost(TPARM_2(SP->_address_cursor, 23, 23), 1);
- SP->_hpa_ch_cost = NormalizedCost(TPARM_1(column_address, 23), 1);
- SP->_cuf_ch_cost = NormalizedCost(TPARM_1(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 NCURSES_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_1(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_1(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->_cuu_cost < vcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- TPARM_1(parm_up_cursor, n))) {
- vcost = SP->_cuu_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_1(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_1(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 (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') {
- int wanted = CharOf(WANT_CHAR(to_y, from_x));
- if (is8bits(wanted) && isdigit(wanted))
- ovw = FALSE;
- }
-#endif
- /*
- * If we have no attribute changes, overwrite is cheaper.
- * 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 (!SameAttrOf(ch, SCREEN_ATTRS(SP))
-#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 {
- 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_1(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 NCURSES_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_2(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 */
-
- nonlocal:
-#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 microsec, %f 28.8Kbps char-equivalents\n",
- (int) diff, diff / 288);
-#endif /* MAIN */
-
- if (usecost != INFINITY) {
- TPUTS_TRACE("mvcur");
- tputs(buffer, 1, _nc_outch);
- SP->_cursrow = ynew;
- SP->_curscol = xnew;
- 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) */
-{
- NCURSES_CH_T oldattr;
- int code;
-
- TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"),
- yold, xold, ynew, xnew));
-
- if (SP == 0) {
- code = ERR;
- } else if (yold == ynew && xold == xnew) {
- code = OK;
- } else {
-
- /*
- * 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;
- }
-
- /*
- * 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!
- */
- oldattr = SCREEN_ATTRS(SP);
- if ((AttrOf(oldattr) & A_ALTCHARSET)
- || (AttrOf(oldattr) && !move_standout_mode)) {
- TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
- (unsigned long) AttrOf(oldattr),
- _traceattr(AttrOf(oldattr))));
- (void) VIDATTR(A_NORMAL, 0);
- }
-
- 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);
-
- if (l > 0) {
- if (carriage_return) {
- TPUTS_TRACE("carriage_return");
- putp(carriage_return);
- } else
- _nc_outch('\r');
- xold = 0;
-
- while (l > 0) {
- if (newline) {
- TPUTS_TRACE("newline");
- putp(newline);
- } else
- _nc_outch('\n');
- l--;
- }
- }
- } 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 */
- code = onscreen_mvcur(yold, xold, ynew, xnew, TRUE);
-
- /*
- * Restore attributes if we disabled them before moving.
- */
- if (!SameAttrOf(oldattr, SCREEN_ATTRS(SP))) {
- TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move",
- (unsigned long) AttrOf(oldattr),
- _traceattr(AttrOf(oldattr))));
- (void) VIDATTR(AttrOf(oldattr), GetPair(oldattr));
- }
- }
- returnCode(code);
-}
-
-#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>
-#include <time.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[PATH_MAX];
-
-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)
-{
- strcpy(tname, getenv("TERM"));
- load_term();
- _nc_setupscreen(lines, columns, stdout, FALSE, 0);
- 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_get_hash_table(FALSE));
-
- 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);
- 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/contrib/ncurses/ncurses/tty/lib_tstp.c b/contrib/ncurses/ncurses/tty/lib_tstp.c
deleted file mode 100644
index 06c8411caa4d..000000000000
--- a/contrib/ncurses/ncurses/tty/lib_tstp.c
+++ /dev/null
@@ -1,389 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 1995-on *
- ****************************************************************************/
-
-/*
-** 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: lib_tstp.c,v 1.37 2008/05/03 16:24:56 tom Exp $")
-
-#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)
-{
- /*
- * 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 (!_nc_globals.cleanup_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;
- for (each_screen(scan)) {
- if (scan->_ofp != 0
- && isatty(fileno(scan->_ofp))) {
- scan->_cleanup = TRUE;
- scan->_outch = _nc_outch;
- }
- set_term(scan);
- endwin();
- if (SP)
- SP->_endwin = FALSE; /* in case we have an atexit! */
- }
- }
- }
- exit(EXIT_FAILURE);
-}
-
-#if USE_SIGWINCH
-static void
-sigwinch(int sig GCC_UNUSED)
-{
- _nc_globals.have_sigwinch = 1;
-}
-#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)
-{
- 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 new_sigaction, old_sigaction;
-
- if (!enable) {
- new_sigaction.sa_handler = SIG_IGN;
- sigaction(SIGTSTP, &new_sigaction, &old_sigaction);
- } else if (new_sigaction.sa_handler != SIG_DFL) {
- sigaction(SIGTSTP, &old_sigaction, NULL);
- } else if (sigaction(SIGTSTP, NULL, &old_sigaction) == 0
- && (old_sigaction.sa_handler == SIG_DFL)) {
- sigemptyset(&new_sigaction.sa_mask);
-#ifdef SA_RESTART
- new_sigaction.sa_flags |= SA_RESTART;
-#endif /* SA_RESTART */
- new_sigaction.sa_handler = tstp;
- (void) sigaction(SIGTSTP, &new_sigaction, NULL);
- } else {
- ignore_tstp = TRUE;
- }
- }
- }
-#endif /* !USE_SIGTSTP */
-
- if (!_nc_globals.init_signals) {
- if (enable) {
- CatchIfDefault(SIGINT, cleanup);
- CatchIfDefault(SIGTERM, cleanup);
-#if USE_SIGWINCH
- CatchIfDefault(SIGWINCH, sigwinch);
-#endif
- _nc_globals.init_signals = TRUE;
- }
- }
- returnVoid;
-}
diff --git a/contrib/ncurses/ncurses/tty/lib_twait.c b/contrib/ncurses/ncurses/tty/lib_twait.c
deleted file mode 100644
index 6d46081862fd..000000000000
--- a/contrib/ncurses/ncurses/tty/lib_twait.c
+++ /dev/null
@@ -1,444 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
-** 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: lib_twait.c,v 1.57 2008/05/03 21:35:57 tom Exp $")
-
-static long
-_nc_gettime(TimeType * t0, bool first)
-{
- long res;
-
-#if PRECISE_GETTIME
- TimeType t1;
- gettimeofday(&t1, (struct timezone *) 0);
- if (first) {
- *t0 = t1;
- res = 0;
- } else {
- /* .tv_sec and .tv_usec are unsigned, be careful when subtracting */
- if (t0->tv_usec > t1.tv_usec) {
- t1.tv_usec += 1000000; /* Convert 1s in 1e6 microsecs */
- t1.tv_sec--;
- }
- res = (t1.tv_sec - t0->tv_sec) * 1000
- + (t1.tv_usec - t0->tv_usec) / 1000;
- }
-#else
- 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)
-{
- int event_delay = -1;
- int n;
-
- if (evl != 0) {
-
- for (n = 0; n < evl->count; ++n) {
- _nc_event *ev = evl->events[n];
-
- if (ev->type == _NC_EVENT_TIMEOUT_MSEC) {
- event_delay = ev->data.timeout_msec;
- if (event_delay < 0)
- event_delay = INT_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(SCREEN *sp,
- int mode,
- int milliseconds,
- int *timeleft
- EVENTLIST_2nd(_nc_eventlist * evl))
-{
- int fd;
- int count;
- int result = 0;
- TimeType t0;
-
-#ifdef NCURSES_WGETCH_EVENTS
- int timeout_is_event = 0;
- int n;
-#endif
-
-#if USE_FUNC_POLL
-#define MIN_FDS 2
- struct pollfd fd_list[MIN_FDS];
- struct pollfd *fds = fd_list;
-#elif defined(__BEOS__)
-#elif HAVE_SELECT
- 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 && HAVE_NANOSLEEP
- retry:
-#endif
- starttime = _nc_gettime(&t0, 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, MIN_FDS + 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) {
- for (n = 0; n < evl->count; ++n) {
- _nc_event *ev = evl->events[n];
-
- 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, (unsigned) count, milliseconds);
-
-#ifdef NCURSES_WGETCH_EVENTS
- if ((mode & 4) && evl) {
- int c;
-
- if (!result)
- count = 0;
-
- for (n = 0; n < evl->count; ++n) {
- _nc_event *ev = evl->events[n];
-
- 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) {
- for (n = 0; n < evl->count; ++n) {
- _nc_event *ev = evl->events[n];
-
- 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) {
- evl->result_flags = 0;
- for (n = 0; n < evl->count; ++n) {
- _nc_event *ev = evl->events[n];
-
- 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(&t0, FALSE);
-
- if (milliseconds >= 0)
- milliseconds -= (returntime - starttime);
-
-#ifdef NCURSES_WGETCH_EVENTS
- if (evl) {
- evl->result_flags = 0;
- for (n = 0; n < evl->count; ++n) {
- _nc_event *ev = evl->events[n];
-
- 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 && HAVE_NANOSLEEP
- /*
- * 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); /* FIXME: this won't be right if I recur! */
- 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 < MIN_FDS; 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/contrib/ncurses/ncurses/tty/lib_vidattr.c b/contrib/ncurses/ncurses/tty/lib_vidattr.c
deleted file mode 100644
index ac2a74f08e01..000000000000
--- a/contrib/ncurses/ncurses/tty/lib_vidattr.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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: lib_vidattr.c,v 1.49 2007/06/30 21:58:04 tom Exp $")
-
-#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); \
- } \
- }
-
-#define PreviousAttr _nc_prescreen.previous_attr
-
-NCURSES_EXPORT(int)
-vidputs(chtype newmode, int (*outc) (int))
-{
- 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
-
- newmode &= A_ATTRIBUTES;
- T((T_CALLED("vidputs(%s)"), _traceattr(newmode)));
-
- /* this allows us to go on whether or not newterm() has been called */
- if (SP)
- PreviousAttr = AttrOf(SCREEN_ATTRS(SP));
-
- TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(PreviousAttr)));
-
- if ((SP != 0)
- && (magic_cookie_glitch > 0)) {
-#if USE_XMC_SUPPORT
- static const chtype table[] =
- {
- A_STANDOUT,
- A_UNDERLINE,
- A_REVERSE,
- A_BLINK,
- A_DIM,
- A_BOLD,
- A_INVIS,
- A_PROTECT,
- };
- unsigned n;
- int used = 0;
- int limit = (max_attributes <= 0) ? 1 : max_attributes;
- chtype retain = 0;
-
- /*
- * Limit the number of attribute bits set in the newmode according to
- * the terminfo max_attributes value.
- */
- for (n = 0; n < SIZEOF(table); ++n) {
- if ((table[n] & SP->_ok_attributes) == 0) {
- newmode &= ~table[n];
- } else if ((table[n] & newmode) != 0) {
- if (used++ >= limit) {
- newmode &= ~table[n];
- if (newmode == retain)
- break;
- } else {
- retain = newmode;
- }
- }
- }
-#else
- newmode &= ~(SP->_xmc_suppress);
-#endif
- TR(TRACE_ATTRS, ("suppressed attribute is %s", _traceattr(newmode)));
- }
-
- /*
- * 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 == PreviousAttr)
- returnCode(OK);
-
- pair = PAIR_NUMBER(newmode);
-
- if (reverse) {
- newmode &= ~A_REVERSE;
- }
-
- turn_off = (~newmode & PreviousAttr) & ALL_BUT_COLOR;
- turn_on = (newmode & ~PreviousAttr) & ALL_BUT_COLOR;
-
- SetColorsIf(((pair == 0) && !fix_pair0), PreviousAttr);
-
- if (newmode == A_NORMAL) {
- if ((PreviousAttr & A_ALTCHARSET) && exit_alt_charset_mode) {
- doPut(exit_alt_charset_mode);
- PreviousAttr &= ~A_ALTCHARSET;
- }
- if (PreviousAttr) {
- 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);
- }
- }
- PreviousAttr &= ALL_BUT_COLOR;
- }
-
- SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
- } 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);
- PreviousAttr &= ALL_BUT_COLOR;
- }
- SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
- } else {
-
- TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
-
- TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
-
- if (!SP || SP->_use_rmul) {
- TurnOff(A_UNDERLINE, exit_underline_mode);
- }
-
- if (!SP || SP->_use_rmso) {
- TurnOff(A_STANDOUT, exit_standout_mode);
- }
-
- if (turn_off && exit_attribute_mode) {
- doPut(exit_attribute_mode);
- turn_on |= (newmode & ALL_BUT_COLOR);
- PreviousAttr &= ALL_BUT_COLOR;
- }
- SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
-
- TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
- /* *INDENT-OFF* */
- TurnOn(A_ALTCHARSET, enter_alt_charset_mode);
- TurnOn(A_BLINK, enter_blink_mode);
- TurnOn(A_BOLD, enter_bold_mode);
- TurnOn(A_DIM, enter_dim_mode);
- TurnOn(A_REVERSE, enter_reverse_mode);
- TurnOn(A_STANDOUT, enter_standout_mode);
- TurnOn(A_PROTECT, enter_protected_mode);
- TurnOn(A_INVIS, enter_secure_mode);
- TurnOn(A_UNDERLINE, enter_underline_mode);
-#if USE_WIDEC_SUPPORT
- TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
- TurnOn(A_LEFT, enter_left_hl_mode);
- TurnOn(A_LOW, enter_low_hl_mode);
- TurnOn(A_RIGHT, enter_right_hl_mode);
- TurnOn(A_TOP, enter_top_hl_mode);
- TurnOn(A_VERTICAL, enter_vertical_hl_mode);
-#endif
- /* *INDENT-ON* */
-
- }
-
- if (reverse)
- newmode |= A_REVERSE;
-
- if (SP)
- SetAttr(SCREEN_ATTRS(SP), newmode);
- else
- PreviousAttr = 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/contrib/ncurses/ncurses/tty/tty_display.h b/contrib/ncurses/ncurses/tty/tty_display.h
deleted file mode 100644
index 4c45a08450ed..000000000000
--- a/contrib/ncurses/ncurses/tty/tty_display.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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
-
-/*
- * $Id: tty_display.h,v 1.6 2005/01/01 23:41:12 tom Exp $
- */
-extern NCURSES_EXPORT(bool) _nc_tty_beep (void);
-extern NCURSES_EXPORT(bool) _nc_tty_check_resize (void);
-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 + D->_ip_cost) * count) \
- : INFINITY)))
-
-#if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (!SameAttrOf(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 (!SameAttrOf(D->_current_attr, AttrOf(c))) \
- vidattr(AttrOf(c));
-#endif
-
-#define XMC_CHANGES(c) ((c) & D->_xmc_suppress)
-
-#endif /* TTY_DISPLAY_H */
diff --git a/contrib/ncurses/ncurses/tty/tty_input.h b/contrib/ncurses/ncurses/tty/tty_input.h
deleted file mode 100644
index e520793eea64..000000000000
--- a/contrib/ncurses/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: tty_input.h,v 1.2 2000/12/10 02:26:51 tom Exp $
- */
-
-#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/contrib/ncurses/ncurses/tty/tty_update.c b/contrib/ncurses/ncurses/tty/tty_update.c
deleted file mode 100644
index 16fc17d27236..000000000000
--- a/contrib/ncurses/ncurses/tty/tty_update.c
+++ /dev/null
@@ -1,1972 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*-----------------------------------------------------------------
- *
- * lib_doupdate.c
- *
- * The routine doupdate() and its dependents.
- * 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 <ctype.h>
-#include <term.h>
-
-MODULE_ID("$Id: tty_update.c,v 1.245 2008/05/03 22:43:04 tom Exp $")
-
-/*
- * 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)
-
-static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
-static NCURSES_CH_T normal = NewChar(BLANK_TEXT);
-
-/*
- * 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 NCURSES_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 NCURSES_INLINE void
-GoTo(int const row, int const col)
-{
- TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)",
- row, col, SP->_cursrow, SP->_curscol));
-
- position_check(SP->_cursrow, SP->_curscol, "GoTo");
-
- mvcur(SP->_cursrow, SP->_curscol, row, col);
- position_check(SP->_cursrow, SP->_curscol, "GoTo2");
-}
-
-static NCURSES_INLINE void
-PutAttrChar(CARG_CH_T ch)
-{
- int chlen = 1;
- NCURSES_CH_T my_ch;
- PUTC_DATA;
- NCURSES_CH_T tilde;
- NCURSES_CH_T attr = CHDEREF(ch);
-
- TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
- _tracech_t(ch),
- SP->_cursrow, SP->_curscol));
-#if USE_WIDEC_SUPPORT
- /*
- * If this is not a valid character, there is nothing more to do.
- */
- if (isWidecExt(CHDEREF(ch))) {
- TR(TRACE_CHARPUT, ("...skip"));
- return;
- }
- /*
- * Determine the number of character cells which the 'ch' value will use
- * on the screen. It should be at least one.
- */
- if ((chlen = wcwidth(CharOf(CHDEREF(ch)))) <= 0) {
- static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
-
- /*
- * If the character falls into any of these special cases, do
- * not force the result to a blank:
- *
- * a) it is printable (this works around a bug in wcwidth()).
- * b) use_legacy_coding() has been called to modify the treatment
- * of codes 128-255.
- * c) the acs_map[] has been initialized to allow codes 0-31
- * to be rendered. This supports Linux console's "PC"
- * characters. Codes 128-255 are allowed though this is
- * not checked.
- */
- if (is8bits(CharOf(CHDEREF(ch)))
- && (isprint(CharOf(CHDEREF(ch)))
- || (SP->_legacy_coding > 0 && CharOf(CHDEREF(ch)) >= 160)
- || (SP->_legacy_coding > 1 && CharOf(CHDEREF(ch)) >= 128)
- || (AttrOf(attr) & A_ALTCHARSET
- && ((CharOfD(ch) < ACS_LEN
- && SP->_acs_map != 0
- && SP->_acs_map[CharOfD(ch)] != 0)
- || (CharOfD(ch) >= 128))))) {
- ;
- } else {
- ch = CHREF(blank);
- TR(TRACE_CHARPUT, ("forced to blank"));
- }
- chlen = 1;
- }
-#endif
-
- if ((AttrOf(attr) & A_ALTCHARSET)
- && SP->_acs_map != 0
- && CharOfD(ch) < ACS_LEN) {
- my_ch = CHDEREF(ch); /* work around const param */
-#if USE_WIDEC_SUPPORT
- /*
- * This is crude & ugly, but works most of the time. It checks if the
- * acs_chars string specified that we have a mapping for this
- * character, and uses the wide-character mapping when we expect the
- * normal one to be broken (by mis-design ;-).
- */
- if (SP->_screen_acs_fix
- && SP->_screen_acs_map[CharOf(my_ch)]) {
- RemAttr(attr, A_ALTCHARSET);
- my_ch = _nc_wacs[CharOf(my_ch)];
- }
-#endif
- /*
- * If we (still) have alternate character set, it is the normal 8bit
- * flavor. The _screen_acs_map[] array tells if the character was
- * really in acs_chars, needed because of the way wide/normal line
- * drawing flavors are integrated.
- */
- if (AttrOf(attr) & A_ALTCHARSET) {
- int j = CharOfD(ch);
- chtype temp = UChar(SP->_acs_map[j]);
-
- if (!(SP->_screen_acs_map[j])) {
- RemAttr(attr, A_ALTCHARSET);
- if (temp == 0)
- temp = ' ';
- }
- if (temp != 0)
- SetChar(my_ch, temp, AttrOf(attr));
- }
- ch = CHREF(my_ch);
- }
- if (tilde_glitch && (CharOfD(ch) == L('~'))) {
- SetChar(tilde, L('`'), AttrOf(attr));
- ch = CHREF(tilde);
- }
-
- UpdateAttrs(attr);
-#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(UChar(ch));
- } else
-#endif
- {
- PUTC(CHDEREF(ch), SP->_ofp); /* macro's fastest... */
- COUNT_OUTCHARS(1);
- }
- SP->_curscol += chlen;
- 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);
- }
-}
-
-/*
- * Wrap the cursor position, i.e., advance to the beginning of the next line.
- */
-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++;
- /*
- * We've actually moved - but may have to work around problems with
- * video attributes not working.
- */
- if (!move_standout_mode && AttrOf(SCREEN_ATTRS(SP))) {
- TR(TRACE_CHARPUT, ("turning off (%#lx) %s before wrapping",
- (unsigned long) AttrOf(SCREEN_ATTRS(SP)),
- _traceattr(AttrOf(SCREEN_ATTRS(SP)))));
- (void) VIDATTR(A_NORMAL, 0);
- }
- } else {
- SP->_curscol--;
- }
- position_check(SP->_cursrow, SP->_curscol, "wrap_cursor");
-}
-
-static NCURSES_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 NCURSES_INLINE bool
-can_clear_with(ARG_CH_T ch)
-{
- if (!back_color_erase && SP->_coloron) {
-#if NCURSES_EXT_FUNCS
- int pair;
-
- if (!SP->_default_color)
- return FALSE;
- if (SP->_default_fg != C_MASK || SP->_default_bg != C_MASK)
- return FALSE;
- if ((pair = GetPair(CHDEREF(ch))) != 0) {
- short fg, bg;
- pair_content(pair, &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;
-
- TR(TRACE_CHARPUT, ("EmitRange %d:%s", num, _nc_viscbuf(ntext, num)));
-
- 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(ntext0);
- putp(TPARM_1(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);
- tputs(TPARM_2(repeat_char, CharOf(ntext0), rep_count),
- rep_count, _nc_outch);
- 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 i, j, same;
-
- 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, same = 0; j <= last; j++) {
- if (!same && isWidecExt(otext[j]))
- continue;
- if (CharEq(otext[j], ntext[j])) {
- same++;
- } else {
- if (same > SP->_inline_cost) {
- EmitRange(ntext + first, j - same - first);
- GoTo(row, first = j);
- }
- same = 0;
- }
- }
- i = EmitRange(ntext + first, j - same - first);
- /*
- * Always return 1 for the next GoTo() after a PutRange() if we found
- * identical characters at end of interval
- */
- return (same == 0 ? i : 1);
- }
- 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()")));
-
- if (curscr == 0
- || newscr == 0)
- returnCode(ERR);
-
-#ifdef TRACE
- if (USE_TRACEF(TRACE_UPDATE)) {
- if (curscr->_clear)
- _tracef("curscr is clear");
- else
- _tracedump("curscr", curscr);
- _tracedump("newscr", newscr);
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
-
- _nc_signal_handler(FALSE);
-
- if (SP->_fifohold)
- SP->_fifohold--;
-
-#if USE_SIZECHANGE
- if (SP->_endwin || _nc_handle_sigwinch(SP)) {
- /*
- * 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(SP);
- }
-#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 */
- RESET_OUTCHARS();
- (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;
- NCURSES_CH_T *thisline = newscr->_line[i].text;
- attr_t thisattr = AttrOf(thisline[j]) & SP->_xmc_triggers;
- attr_t turnon = thisattr & ~rattr;
-
- /* is an attribute turned on here? */
- if (turnon == 0) {
- rattr = thisattr;
- 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) & SP->_xmc_triggers))
- if (ISBLANK(thisline[j]) && SAFE(turnon)) {
- RemAttr(thisline[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(thisline[j - k])
- || !SAFE(AttrOf(thisline[j - k]))) {
- failed = TRUE;
- TR(TRACE_ATTRS, ("No room at start in %d,%d%s%s",
- i, j - k,
- (ISBLANK(thisline[j - k])
- ? ""
- : ":nonblank"),
- (SAFE(AttrOf(thisline[j - k]))
- ? ""
- : ":unsafe")));
- break;
- }
- }
- 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++) {
- attr_t testattr = AttrOf(newscr->_line[m].text[n]);
- if ((testattr & SP->_xmc_triggers) == 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;
- TR(TRACE_ATTRS,
- ("No room at end in %d,%d%s%s",
- i, j - k,
- (ISBLANK(lastline[n + k])
- ? ""
- : ":nonblank"),
- (SAFE(AttrOf(lastline[n + k]))
- ? ""
- : ":unsafe")));
- break;
- }
- }
- }
- }
-
- 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++) {
- attr_t testattr = AttrOf(newscr->_line[p].text[q]);
- if ((testattr & SP->_xmc_triggers) == 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(thisline[j - k], turnon);
- }
-
- rattr = thisattr;
- }
- }
-
-#ifdef TRACE
- /* show altered highlights after magic-cookie check */
- if (USE_TRACEF(TRACE_UPDATE)) {
- _tracef("After magic-cookie check...");
- _tracedump("newscr", newscr);
- _nc_unlock_global(tracef);
- }
-#endif /* TRACE */
- }
-#endif /* USE_XMC_SUPPORT */
-
- nonempty = 0;
- if (curscr->_clear || newscr->_clear) { /* force refresh ? */
- 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:
- /*
- * We would like to keep the physical screen in normal mode in case we get
- * other processes writing to the screen. This goal cannot be met for
- * magic cookies since it interferes with attributes that may propagate
- * past the current position.
- */
-#if USE_XMC_SUPPORT
- if (magic_cookie_glitch != 0)
-#endif
- UpdateAttrs(normal);
-
- _nc_flush();
- WINDOW_ATTRS(curscr) = WINDOW_ATTRS(newscr);
-
-#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 NCURSES_INLINE NCURSES_CH_T
-ClrBlank(WINDOW *win)
-{
- NCURSES_CH_T blank = blankchar;
- 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, (T_CALLED("ClrUpdate")));
-
- ClearScreen(blank);
-
- TR(TRACE_UPDATE, ("updating screen from scratch"));
-
- nonempty = ClrBottom(nonempty);
-
- for (i = 0; i < nonempty; i++)
- TransformLine(i);
-
- TR(TRACE_UPDATE, (T_RETURN("")));
-}
-
-/*
-** 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(blank);
- TPUTS_TRACE("clr_eol");
- if (clr_eol && SP->_el_cost <= (screen_columns - SP->_curscol)) {
- putp(clr_eol);
- } else {
- int count = (screen_columns - SP->_curscol);
- while (count-- > 0)
- PutChar(CHREF(blank));
- }
- }
-}
-
-/*
-** 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(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 = newscr->_line[total - 1].text[last - 1];
- 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) {
- GoTo(top, 0);
- ClrToEOS(blank);
- if (SP->oldhash && SP->newhash) {
- for (row = top; row < screen_lines; row++)
- SP->oldhash[row] = SP->newhash[row];
- }
- }
- }
- return top;
-}
-
-#if USE_XMC_SUPPORT
-#if USE_WIDEC_SUPPORT
-#define check_xmc_transition(a, b) \
- ((((a)->attr ^ (b)->attr) & ~((a)->attr) & SP->_xmc_triggers) != 0)
-#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, (T_CALLED("TransformLine(%d)"), lineno));
-
- /* copy new hash value to old one */
- if (SP->oldhash && SP->newhash)
- SP->oldhash[lineno] = SP->newhash[lineno];
-
- /*
- * 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) {
- int oldPair;
- int newPair;
-
- for (n = 0; n < screen_columns; n++) {
- if (!CharEq(newLine[n], oldLine[n])) {
- oldPair = GetPair(oldLine[n]);
- newPair = GetPair(newLine[n]);
- if (oldPair != newPair
- && unColor(oldLine[n]) == unColor(newLine[n])) {
- if (oldPair < COLOR_PAIRS
- && newPair < COLOR_PAIRS
- && SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
- SetPair(oldLine[n], GetPair(newLine[n]));
- }
- }
- }
- }
- }
-
- if (ceol_standout_glitch && clr_eol) {
- firstChar = 0;
- while (firstChar < screen_columns) {
- if (!SameAttrOf(newLine[firstChar], oldLine[firstChar])) {
- attrchanged = TRUE;
- break;
- }
- 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;
-
- /* it may be cheap to clear leading whitespace with clr_bol */
- blank = newLine[0];
- if (clr_bol && 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) {
- firstChar = nFirstChar;
- /* find the first differing character */
- while (firstChar < screen_columns
- && CharEq(newLine[firstChar], oldLine[firstChar]))
- firstChar++;
- } else if (oFirstChar > nFirstChar) {
- firstChar = nFirstChar;
- } else { /* oFirstChar < nFirstChar */
- firstChar = oFirstChar;
- if (SP->_el1_cost < nFirstChar - oFirstChar) {
- 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;
- }
- }
- } else {
- /* 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) {
- TR(TRACE_UPDATE, (T_RETURN("")));
- 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));
- }
- TR(TRACE_UPDATE, (T_RETURN("")));
- 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 (isWidecExt(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);
-#if USE_WIDEC_SUPPORT
- while (isWidecExt(newLine[n + 1]) && n) {
- --n;
- --oLastChar;
- }
-#endif
- GoTo(lineno, n + 1);
- if ((nLastChar < nLastNonblank)
- || 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(NCURSES_CH_T));
- TR(TRACE_UPDATE, (T_RETURN("")));
- return;
-}
-
-/*
-** 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(GET_SCREEN_PAIR(SP), 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");
- tputs(clr_eos, screen_lines, _nc_outch);
- } 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(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_1(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 = (%ld,%ld)",
- count,
- (long) newscr->_cury,
- (long) newscr->_curx));
-
- if (parm_dch) {
- TPUTS_TRACE("parm_dch");
- tputs(TPARM_1(parm_dch, count), count, _nc_outch);
- } else {
- for (n = 0; n < count; n++) {
- TPUTS_TRACE("delete_character");
- putp(delete_character);
- }
- }
-}
-
-/*
- * 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(blank);
- TPUTS_TRACE("scroll_forward");
- putp(scroll_forward);
- } else if (n == 1 && delete_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("delete_line");
- putp(delete_line);
- } else if (parm_index && top == miny && bot == maxy) {
- GoTo(bot, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("parm_index");
- tputs(TPARM_2(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_2(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");
- putp(scroll_forward);
- }
- } else if (delete_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("delete_line");
- putp(delete_line);
- }
- } 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(blank);
- TPUTS_TRACE("scroll_reverse");
- putp(scroll_reverse);
- } else if (n == 1 && insert_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("insert_line");
- putp(insert_line);
- } else if (parm_rindex && top == miny && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("parm_rindex");
- tputs(TPARM_2(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_2(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");
- putp(scroll_reverse);
- }
- } else if (insert_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("insert_line");
- putp(insert_line);
- }
- } 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(blank);
- if (n == 1 && delete_line) {
- TPUTS_TRACE("delete_line");
- putp(delete_line);
- } else if (parm_delete_line) {
- TPUTS_TRACE("parm_delete_line");
- tputs(TPARM_2(parm_delete_line, n, 0), n, _nc_outch);
- } else { /* if (delete_line) */
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("delete_line");
- putp(delete_line);
- }
- }
-
- GoTo(ins, 0);
- UpdateAttrs(blank);
- if (n == 1 && insert_line) {
- TPUTS_TRACE("insert_line");
- putp(insert_line);
- } else if (parm_insert_line) {
- TPUTS_TRACE("parm_insert_line");
- tputs(TPARM_2(parm_insert_line, n, 0), n, _nc_outch);
- } else { /* if (insert_line) */
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("insert_line");
- putp(insert_line);
- }
- }
-
- return OK;
-}
-
-/*
- * Note: some terminals require the cursor to be within the scrolling margins
- * before setting them. Generally, the cursor must be at the appropriate end
- * of the scrolling margins when issuing an indexing operation (it is not
- * apparent whether it must also be at the left margin; we do this just to be
- * safe). To make the related cursor movement a little faster, we use the
- * save/restore cursor capabilities if the terminal has them.
- */
-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");
- putp(save_cursor);
- }
- TPUTS_TRACE("change_scroll_region");
- putp(TPARM_2(change_scroll_region, top, bot));
- if (cursor_saved) {
- TPUTS_TRACE("restore_cursor");
- putp(restore_cursor);
- } else {
- SP->_cursrow = SP->_curscol = -1;
- }
-
- res = scroll_csr_forward(n, top, bot, top, bot, blank);
-
- TPUTS_TRACE("change_scroll_region");
- putp(TPARM_2(change_scroll_region, 0, maxy));
- 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))) {
- static const NCURSES_CH_T blank2 = NewChar(BLANK_TEXT);
- if (bot == maxy && clr_eos) {
- GoTo(bot - n + 1, 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");
- putp(save_cursor);
- }
- TPUTS_TRACE("change_scroll_region");
- putp(TPARM_2(change_scroll_region, top, bot));
- if (cursor_saved) {
- TPUTS_TRACE("restore_cursor");
- putp(restore_cursor);
- } else {
- SP->_cursrow = SP->_curscol = -1;
- }
-
- res = scroll_csr_backward(-n, top, bot, top, bot, blank);
-
- TPUTS_TRACE("change_scroll_region");
- putp(TPARM_2(change_scroll_region, 0, maxy));
- 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))) {
- static const 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 */
- SetAttr(SCREEN_ATTRS(SP), 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(normal);
-#if NCURSES_EXT_FUNCS
- if (SP->_coloron
- && !SP->_default_color) {
- static const 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);
-
- 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 ^ AttrOf(SCREEN_ATTRS(SP)));
-
- 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/contrib/ncurses/ncurses/widechar/charable.c b/contrib/ncurses/ncurses/widechar/charable.c
deleted file mode 100644
index cf7240780883..000000000000
--- a/contrib/ncurses/ncurses/widechar/charable.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
-** Support functions for wide/narrow conversion.
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: charable.c,v 1.4 2005/04/16 18:08:56 tom Exp $")
-
-NCURSES_EXPORT(bool) _nc_is_charable(wchar_t ch)
-{
- bool result;
-#if HAVE_WCTOB
- result = (wctob((wint_t) ch) == ch);
-#else
- result = (_nc_to_char(ch) >= 0);
-#endif
- return result;
-}
-
-NCURSES_EXPORT(int) _nc_to_char(wint_t ch)
-{
- int result;
-#if HAVE_WCTOB
- result = wctob(ch);
-#elif HAVE_WCTOMB
- char temp[MB_LEN_MAX];
- result = wctomb(temp, ch);
- if (strlen(temp) == 1)
- result = UChar(temp[0]);
- else
- result = -1;
-#endif
- return result;
-}
-
-NCURSES_EXPORT(wint_t) _nc_to_widechar(int ch)
-{
- wint_t result;
-#if HAVE_BTOWC
- result = btowc(ch);
-#elif HAVE_MBTOWC
- wchar_t convert;
- char temp[2];
- temp[0] = ch;
- temp[1] = '\0';
- if (mbtowc(&convert, temp, 1) >= 0)
- result = convert;
- else
- result = WEOF;
-#endif
- return result;
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_add_wch.c b/contrib/ncurses/ncurses/widechar/lib_add_wch.c
deleted file mode 100644
index 93b41bb4930c..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_add_wch.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2004,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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_add_wch.c
-**
-** The routine wadd_wch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_add_wch.c,v 1.6 2006/12/02 21:19:17 tom Exp $")
-
-NCURSES_EXPORT(int)
-wadd_wch(WINDOW *win, const cchar_t *wch)
-{
- PUTC_DATA;
- int n;
- int code = ERR;
-
- TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wadd_wch(%p, %s)"), win,
- _tracech_t(wch)));
-
- if (win != 0) {
- PUTC_INIT;
- for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) {
- attr_t attrs = (wch->attr & A_ATTRIBUTES);
-
- if ((PUTC_ch = wch->chars[PUTC_i]) == L'\0')
- break;
- if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
- code = ERR;
- if (is8bits(PUTC_ch))
- code = waddch(win, UChar(PUTC_ch) | attrs);
- break;
- }
- for (n = 0; n < PUTC_n; n++) {
- if ((code = waddch(win, UChar(PUTC_buf[n]) | attrs)) == ERR) {
- break;
- }
- }
- if (code == ERR)
- break;
- }
- }
-
- TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
- return (code);
-}
-
-NCURSES_EXPORT(int)
-wecho_wchar(WINDOW *win, const cchar_t *wch)
-{
- PUTC_DATA;
- int n;
- int code = ERR;
-
- TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wecho_wchar(%p, %s)"), win,
- _tracech_t(wch)));
-
- if (win != 0) {
- PUTC_INIT;
- for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) {
- attr_t attrs = (wch->attr & A_ATTRIBUTES);
-
- if ((PUTC_ch = wch->chars[PUTC_i]) == L'\0')
- break;
- if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
- code = ERR;
- if (is8bits(PUTC_ch))
- code = waddch(win, UChar(PUTC_ch) | attrs);
- break;
- }
- for (n = 0; n < PUTC_n; n++) {
- if ((code = waddch(win, UChar(PUTC_buf[n]) | attrs)) == ERR) {
- break;
- }
- }
- if (code == ERR)
- break;
- }
- wrefresh(win);
- }
-
- TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
- return (code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_box_set.c b/contrib/ncurses/ncurses/widechar/lib_box_set.c
deleted file mode 100644
index 35fce46d8d40..000000000000
--- a/contrib/ncurses/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: lib_box_set.c,v 1.4 2003/12/06 18:02:13 tom Exp $")
-
-NCURSES_EXPORT(int)
-wborder_set(WINDOW *win,
- const ARG_CH_T ls, const ARG_CH_T rs,
- const ARG_CH_T ts, const ARG_CH_T bs,
- const ARG_CH_T tl, const ARG_CH_T tr,
- const ARG_CH_T bl, const ARG_CH_T br)
-{
- NCURSES_SIZE_T i;
- NCURSES_SIZE_T endx, endy;
- NCURSES_CH_T wls, wrs, wts, wbs, wtl, wtr, wbl, wbr;
-
- T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
- win,
- _tracech_t2(1, ls),
- _tracech_t2(2, rs),
- _tracech_t2(3, ts),
- _tracech_t2(4, bs),
- _tracech_t2(5, tl),
- _tracech_t2(6, tr),
- _tracech_t2(7, bl),
- _tracech_t2(8, br)));
-
- if (!win)
- returnCode(ERR);
-
-#define RENDER_WITH_DEFAULT(ch,def) w ##ch = _nc_render(win, (ch == 0) ? *(const ARG_CH_T)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/contrib/ncurses/ncurses/widechar/lib_cchar.c b/contrib/ncurses/ncurses/widechar/lib_cchar.c
deleted file mode 100644
index b4a0c37a285f..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_cchar.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
-** lib_cchar.c
-**
-** The routines setcchar() and getcchar().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_cchar.c,v 1.12 2007/05/12 19:03:06 tom Exp $")
-
-/*
- * The SuSv2 description leaves some room for interpretation. We'll assume wch
- * points to a string which is L'\0' terminated, contains at least one
- * character with strictly positive width, which must be the first, and
- * contains no characters of negative width.
- */
-NCURSES_EXPORT(int)
-setcchar(cchar_t *wcval,
- const wchar_t *wch,
- const attr_t attrs,
- short color_pair,
- const void *opts)
-{
- int i;
- int len;
- int code = OK;
-
- TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%lu,%d,%p)"),
- wcval, _nc_viswbuf(wch),
- (unsigned long) attrs, color_pair, opts));
-
- len = wcslen(wch);
- if (opts != NULL
- || (len > 1 && wcwidth(wch[0]) < 0)) {
- code = ERR;
- } else {
- if (len > CCHARW_MAX)
- len = CCHARW_MAX;
-
- /*
- * If we have a following spacing-character, stop at that point. We
- * are only interested in adding non-spacing characters.
- */
- for (i = 1; i < len; ++i) {
- if (wcwidth(wch[i]) != 0) {
- len = i;
- break;
- }
- }
-
- memset(wcval, 0, sizeof(*wcval));
-
- if (len != 0) {
- SetAttr(*wcval, attrs | COLOR_PAIR(color_pair));
- SetPair(CHDEREF(wcval), color_pair);
- memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
- TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
- _tracecchar_t(wcval)));
- }
- }
-
- 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 (attrs == 0 || color_pair == 0) {
- code = ERR;
- } else if (len >= 0) {
- *attrs = AttrOf(*wcval) & A_ATTRIBUTES;
- *color_pair = GetPair(*wcval);
- wmemcpy(wch, wcval->chars, (unsigned) len);
- wch[len] = L'\0';
- code = OK;
- }
- }
-
- TR(TRACE_CCALLS, (T_RETURN("%d"), code));
- return (code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_erasewchar.c b/contrib/ncurses/ncurses/widechar/lib_erasewchar.c
deleted file mode 100644
index 7d6455370ff9..000000000000
--- a/contrib/ncurses/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: lib_erasewchar.c,v 1.1 2002/05/11 20:38:06 tom Exp $")
-
-/*
- * erasewchar()
- *
- * Return erase character as given in cur_term->Ottyb.
- *
- */
-
-NCURSES_EXPORT(int)
-erasewchar(wchar_t * wch)
-{
- int value;
- int result = ERR;
-
- T((T_CALLED("erasewchar()")));
- if ((value = erasechar()) != ERR) {
- *wch = value;
- result = OK;
- }
- returnCode(result);
-}
-
-/*
- * killwchar()
- *
- * Return kill character as given in cur_term->Ottyb.
- *
- */
-
-NCURSES_EXPORT(int)
-killwchar(wchar_t * wch)
-{
- int value;
- int result = ERR;
-
- T((T_CALLED("killwchar()")));
- if ((value = killchar()) != ERR) {
- *wch = value;
- result = OK;
- }
- returnCode(result);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_get_wch.c b/contrib/ncurses/ncurses/widechar/lib_get_wch.c
deleted file mode 100644
index 7985df2571db..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_get_wch.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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-on *
- ****************************************************************************/
-
-/*
-** lib_get_wch.c
-**
-** The routine get_wch().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id: lib_get_wch.c,v 1.14 2007/05/12 19:03:16 tom Exp $")
-
-#if HAVE_MBTOWC && HAVE_MBLEN
-#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
-#define count_mbytes(buffer,length,state) mblen(buffer,length)
-#define check_mbytes(wch,buffer,length,state) \
- (int) mbtowc(&wch, buffer, length)
-#define state_unused
-#elif HAVE_MBRTOWC && HAVE_MBRLEN
-#define reset_mbytes(state) init_mb(state)
-#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
-#define check_mbytes(wch,buffer,length,state) \
- (int) mbrtowc(&wch, buffer, length, &state)
-#else
-make an error
-#endif
-
-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;
- size_t count = 0;
- unsigned long value;
- wchar_t wch;
-#ifndef state_unused
- mbstate_t state;
-#endif
-
- 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", (int) count + 1, (int) sizeof(buffer)));
- code = _nc_wgetch(win, &value, TRUE EVENTLIST_2nd((_nc_eventlist *) 0));
- 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((int) value);
- code = ERR;
- }
- break;
- } else if (count + 1 >= sizeof(buffer)) {
- ungetch((int) value);
- code = ERR;
- break;
- } else {
- buffer[count++] = UChar(value);
- reset_mbytes(state);
- status = count_mbytes(buffer, count, state);
- if (status >= 0) {
- reset_mbytes(state);
- if (check_mbytes(wch, buffer, count, state) != status) {
- code = ERR; /* the two calls should match */
- ungetch((int) value);
- }
- value = wch;
- break;
- }
- }
- }
- *result = value;
- T(("result %#lo", value));
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_get_wstr.c b/contrib/ncurses/ncurses/widechar/lib_get_wstr.c
deleted file mode 100644
index bf39aa1a188b..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_get_wstr.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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_get_wstr.c
-**
-** The routine wgetn_wstr().
-**
-*/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id: lib_get_wstr.c,v 1.8 2004/10/16 21:55:36 tom Exp $")
-
-static int
-wadd_wint(WINDOW *win, wint_t *src)
-{
- cchar_t tmp;
- wchar_t wch[2];
-
- wch[0] = *src;
- wch[1] = 0;
- setcchar(&tmp, wch, A_NORMAL, 0, NULL);
- return wadd_wch(win, &tmp);
-}
-
-/*
- * This wipes out the last character, no matter whether it was a tab, control
- * or other character, and handles reverse wraparound.
- */
-static wint_t *
-WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed)
-{
- if (last > first) {
- *--last = '\0';
- if (echoed) {
- int y1 = win->_cury;
- int x1 = win->_curx;
- int n;
-
- wmove(win, y, x);
- for (n = 0; first[n] != 0; ++n) {
- wadd_wint(win, first + n);
- }
- getyx(win, y, x);
- while (win->_cury < y1
- || (win->_cury == y1 && win->_curx < x1))
- 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;
- wint_t *oldstr = str;
- wint_t *tmpstr = str;
- 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();
-
- getyx(win, y, x);
-
- if (is_wintouched(win) || (win->_flags & _HASMOVED))
- wrefresh(win);
-
- while ((code = wget_wch(win, &ch)) != ERR) {
- /*
- * Map special characters into key-codes.
- */
- if (ch == '\r')
- ch = '\n';
- if (ch == '\n') {
- code = KEY_CODE_YES;
- ch = KEY_ENTER;
- }
- if (ch < KEY_MIN) {
- if (ch == erasec) {
- ch = KEY_BACKSPACE;
- code = KEY_CODE_YES;
- }
- if (ch == killc) {
- ch = KEY_EOL;
- code = KEY_CODE_YES;
- }
- }
- 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 == KEY_DOWN || ch == KEY_ENTER) {
- if (oldecho == TRUE
- && win->_cury == win->_maxy
- && win->_scroll)
- wechochar(win, (chtype) '\n');
- break;
- }
- if (ch == KEY_LEFT || ch == KEY_BACKSPACE) {
- if (tmpstr > oldstr) {
- tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
- }
- } else if (ch == KEY_EOL) {
- while (tmpstr > oldstr) {
- tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho);
- }
- } else {
- beep();
- }
- } else if (maxlen >= 0 && tmpstr - oldstr >= maxlen) {
- beep();
- } else {
- *tmpstr++ = ch;
- *tmpstr = 0;
- if (oldecho == TRUE) {
- int oldy = win->_cury;
-
- if (wadd_wint(win, tmpstr - 1) == ERR) {
- /*
- * We can't really use the lower-right corner for input,
- * since it'll mess up bookkeeping for erases.
- */
- 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++ = WEOF;
- *tmpstr = 0;
- }
- returnCode(ERR);
- }
-
- T(("wgetn_wstr returns %s", _nc_viswibuf(oldstr)));
-
- returnCode(OK);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_hline_set.c b/contrib/ncurses/ncurses/widechar/lib_hline_set.c
deleted file mode 100644
index 43175de83464..000000000000
--- a/contrib/ncurses/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: lib_hline_set.c,v 1.2 2002/03/23 21:35:34 tom Exp $")
-
-NCURSES_EXPORT(int)
-whline_set(WINDOW *win, const cchar_t * ch, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T start;
- NCURSES_SIZE_T end;
-
- T((T_CALLED("whline_set(%p,%s,%d)"), win, _tracecchar_t(ch), n));
-
- if (win) {
- struct ldat *line = &(win->_line[win->_cury]);
- NCURSES_CH_T wch;
-
- start = win->_curx;
- end = start + n - 1;
- if (end > win->_maxx)
- end = win->_maxx;
-
- CHANGED_RANGE(line, start, end);
-
- if (ch == 0)
- wch = *WACS_HLINE;
- else
- wch = *ch;
- wch = _nc_render(win, wch);
-
- while (end >= start) {
- line->text[end] = wch;
- end--;
- }
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_in_wch.c b/contrib/ncurses/ncurses/widechar/lib_in_wch.c
deleted file mode 100644
index 5cd92e382de4..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_in_wch.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2004,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall 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 *
- ****************************************************************************/
-
-/*
-** lib_in_wch.c
-**
-** The routine win_wch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_in_wch.c,v 1.4 2006/09/03 15:41:22 tom Exp $")
-
-NCURSES_EXPORT(int)
-win_wch(WINDOW *win, cchar_t *wcval)
-{
- int row, col;
- int code = OK;
-
- TR(TRACE_CCALLS, (T_CALLED("win_wch(%p,%p)"), win, wcval));
- if (win != 0
- && wcval != 0) {
- getyx(win, row, col);
-
- *wcval = win->_line[row].text[col];
- TR(TRACE_CCALLS, ("data %s", _tracecchar_t(wcval)));
- } else {
- code = ERR;
- }
- TR(TRACE_CCALLS, (T_RETURN("%d"), code));
- return (code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c b/contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c
deleted file mode 100644
index e9f0646ea66a..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2004-2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall 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 *
- ****************************************************************************/
-
-/*
-** lib_in_wchnstr.c
-**
-** The routine win_wchnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_in_wchnstr.c,v 1.7 2007/02/11 01:00:00 tom Exp $")
-
-NCURSES_EXPORT(int)
-win_wchnstr(WINDOW *win, cchar_t *wchstr, int n)
-{
- int code = OK;
-
- T((T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
- if (win != 0
- && wchstr != 0) {
- NCURSES_CH_T *src;
- int row, col;
- int j, k, limit;
-
- getyx(win, row, col);
- limit = getmaxx(win) - col;
- src = &(win->_line[row].text[col]);
-
- if (n < 0) {
- n = limit;
- } else if (n > limit) {
- n = limit;
- }
- for (j = k = 0; j < n; ++j) {
- if (j == 0 || !WidecExt(src[j]) || isWidecBase(src[j])) {
- wchstr[k++] = src[j];
- }
- }
- memset(&(wchstr[k]), 0, sizeof(*wchstr));
- T(("result = %s", _nc_viscbuf(wchstr, n)));
- } else {
- code = ERR;
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_ins_wch.c b/contrib/ncurses/ncurses/widechar/lib_ins_wch.c
deleted file mode 100644
index c3d0420e53b8..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_ins_wch.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2003,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas Dickey 2002 *
- ****************************************************************************/
-
-/*
-** lib_ins_wch.c
-**
-** The routine wins_wch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_ins_wch.c,v 1.8 2005/12/03 20:24:19 tom Exp $")
-
-/*
- * Insert the given character, updating the current location to simplify
- * inserting a string.
- */
-static int
-_nc_insert_wch(WINDOW *win, const cchar_t *wch)
-{
- int cells = wcwidth(CharOf(CHDEREF(wch)));
- int cell;
-
- if (cells <= 0)
- cells = 1;
-
- if (win->_curx <= win->_maxx) {
- struct ldat *line = &(win->_line[win->_cury]);
- NCURSES_CH_T *end = &(line->text[win->_curx]);
- NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
- NCURSES_CH_T *temp2 = temp1 - cells;
-
- CHANGED_TO_EOL(line, win->_curx, win->_maxx);
- while (temp1 > end)
- *temp1-- = *temp2--;
-
- *temp1 = _nc_render(win, *wch);
- for (cell = 1; cell < cells; ++cell) {
- SetWidecExt(temp1[cell], cell);
- }
-
- win->_curx++;
- }
- return OK;
-}
-
-NCURSES_EXPORT(int)
-wins_wch(WINDOW *win, const cchar_t *wch)
-{
- NCURSES_SIZE_T oy;
- NCURSES_SIZE_T ox;
- int code = ERR;
-
- T((T_CALLED("wins_wch(%p, %s)"), win, _tracecchar_t(wch)));
-
- if (win != 0) {
- oy = win->_cury;
- ox = win->_curx;
-
- code = _nc_insert_wch(win, wch);
-
- win->_curx = ox;
- win->_cury = oy;
- _nc_synchook(win);
- }
- returnCode(code);
-}
-
-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) {
- if (n < 1)
- n = wcslen(wstr);
- code = OK;
- if (n > 0) {
- oy = win->_cury;
- ox = win->_curx;
- for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
- int len = wcwidth(*cp);
-
- if (len != 1 || !is8bits(*cp)) {
- cchar_t tmp_cchar;
- wchar_t tmp_wchar = *cp;
- memset(&tmp_cchar, 0, sizeof(tmp_cchar));
- (void) setcchar(&tmp_cchar,
- &tmp_wchar,
- WA_NORMAL,
- 0,
- (void *) 0);
- code = _nc_insert_wch(win, &tmp_cchar);
- } else {
- /* tabs, other ASCII stuff */
- code = _nc_insert_ch(win, (chtype) (*cp));
- }
- if (code != OK)
- break;
- }
-
- win->_curx = ox;
- win->_cury = oy;
- _nc_synchook(win);
- }
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_inwstr.c b/contrib/ncurses/ncurses/widechar/lib_inwstr.c
deleted file mode 100644
index 2207a5f5d19f..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_inwstr.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall 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 *
- ****************************************************************************/
-
-/*
-** lib_inwstr.c
-**
-** The routines winnwstr() and winwstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_inwstr.c,v 1.4 2004/10/23 20:41:28 tom Exp $")
-
-NCURSES_EXPORT(int)
-winnwstr(WINDOW *win, wchar_t *wstr, int n)
-{
- 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 (!isWidecExt(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/contrib/ncurses/ncurses/widechar/lib_key_name.c b/contrib/ncurses/ncurses/widechar/lib_key_name.c
deleted file mode 100644
index e24c9654d564..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_key_name.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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_key_name.c
-**
-** The routine key_name().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_key_name.c,v 1.2 2007/06/12 21:01:13 tom Exp $")
-
-NCURSES_EXPORT(NCURSES_CONST char *)
-key_name(wchar_t c)
-{
- cchar_t my_cchar;
- wchar_t *my_wchars;
- size_t len;
-
- /* FIXME: move to _nc_globals */
- static char result[MB_LEN_MAX + 1];
-
- memset(&my_cchar, 0, sizeof(my_cchar));
- my_cchar.chars[0] = c;
- my_cchar.chars[1] = L'\0';
-
- my_wchars = wunctrl(&my_cchar);
- len = wcstombs(result, my_wchars, sizeof(result) - 1);
- if (isEILSEQ(len) || (len == 0)) {
- return "UNKNOWN KEY";
- }
-
- result[len] = '\0';
- return result;
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c b/contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c
deleted file mode 100644
index e61277574311..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_pecho_wchar.c,v 1.1 2004/01/03 21:42:01 tom Exp $")
-
-NCURSES_EXPORT(int)
-pecho_wchar(WINDOW *pad, const cchar_t * wch)
-{
- T((T_CALLED("pecho_wchar(%p, %s)"), pad, _tracech_t(wch)));
-
- if (pad == 0)
- returnCode(ERR);
-
- if (!(pad->_flags & _ISPAD))
- returnCode(wecho_wchar(pad, wch));
-
- wadd_wch(pad, wch);
- 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/contrib/ncurses/ncurses/widechar/lib_slk_wset.c b/contrib/ncurses/ncurses/widechar/lib_slk_wset.c
deleted file mode 100644
index 646b5d9e2fa8..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_slk_wset.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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_slk_wset.c
- * Set soft label text.
- */
-#include <curses.priv.h>
-
-#if HAVE_WCTYPE_H
-#include <wctype.h>
-#endif
-
-MODULE_ID("$Id: lib_slk_wset.c,v 1.11 2005/01/16 01:03:53 tom Exp $")
-
-NCURSES_EXPORT(int)
-slk_wset(int i, const wchar_t *astr, int format)
-{
- int result = ERR;
- size_t arglen;
- const wchar_t *str;
- char *mystr;
- mbstate_t state;
-
- T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format));
-
- init_mb(state);
- str = astr;
- if ((arglen = wcsrtombs(NULL, &str, 0, &state)) != (size_t) -1) {
- if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) {
- str = astr;
- if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {
- /* glibc documentation claims that the terminating L'\0'
- * is written, but it is not...
- */
- mystr[arglen] = 0;
- result = slk_set(i, mystr, format);
- }
- free(mystr);
- }
- }
- returnCode(result);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_unget_wch.c b/contrib/ncurses/ncurses/widechar/lib_unget_wch.c
deleted file mode 100644
index b2dc7ff96f1b..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_unget_wch.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2004,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 2002 *
- ****************************************************************************/
-
-/*
-** lib_unget_wch.c
-**
-** The routine unget_wch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id: lib_unget_wch.c,v 1.9 2007/11/25 00:57:00 tom Exp $")
-
-/*
- * Wrapper for wcrtomb() which obtains the length needed for the given
- * wide-character 'source'.
- */
-NCURSES_EXPORT(size_t)
-_nc_wcrtomb(char *target, wchar_t source, mbstate_t * state)
-{
- int result;
-
- if (target == 0) {
- wchar_t temp[2];
- const wchar_t *tempp = temp;
- temp[0] = source;
- temp[1] = 0;
- result = wcsrtombs(NULL, &tempp, 0, state);
- } else {
- result = wcrtomb(target, source, state);
- }
- if (!isEILSEQ(result) && (result == 0))
- result = 1;
- return result;
-}
-
-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)"), (unsigned long) wch));
-
- init_mb(state);
- length = _nc_wcrtomb(0, wch, &state);
-
- if (length != (size_t) (-1)
- && length != 0) {
- char *string;
-
- if ((string = (char *) malloc(length)) != 0) {
- init_mb(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;
- }
- } else {
- result = ERR;
- }
-
- returnCode(result);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_vid_attr.c b/contrib/ncurses/ncurses/widechar/lib_vid_attr.c
deleted file mode 100644
index 1dc679e6d907..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_vid_attr.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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 <term.h>
-
-MODULE_ID("$Id: lib_vid_attr.c,v 1.5 2007/06/30 22:03:02 tom Exp $")
-
-#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
-
-#define TurnOn(mask,mode) \
- if ((turn_on & mask) && mode) { doPut(mode); }
-
-#define TurnOff(mask,mode) \
- if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
-
- /* if there is no current screen, assume we *can* do color */
-#define SetColorsIf(why, old_attr, old_pair) \
- if (can_color && (why)) { \
- TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \
- if ((pair != old_pair) \
- || (fix_pair0 && (pair == 0)) \
- || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \
- _nc_do_color(old_pair, pair, reverse, outc); \
- } \
- }
-
-#define set_color(mode, pair) mode &= ALL_BUT_COLOR; mode |= COLOR_PAIR(pair)
-
-NCURSES_EXPORT(int)
-vid_puts(attr_t newmode, short pair, void *opts GCC_UNUSED, int (*outc) (int))
-{
-#if NCURSES_EXT_COLORS
- static attr_t previous_attr = A_NORMAL;
- static int previous_pair = 0;
-
- attr_t turn_on, turn_off;
- bool reverse = FALSE;
- bool can_color = (SP == 0 || SP->_coloron);
-#if NCURSES_EXT_FUNCS
- bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
-#else
-#define fix_pair0 FALSE
-#endif
-
- newmode &= A_ATTRIBUTES;
- T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
-
- /* this allows us to go on whether or not newterm() has been called */
- if (SP) {
- previous_attr = AttrOf(SCREEN_ATTRS(SP));
- previous_pair = GetPair(SCREEN_ATTRS(SP));
- }
-
- TR(TRACE_ATTRS, ("previous attribute was %s, %d",
- _traceattr(previous_attr), previous_pair));
-
-#if !USE_XMC_SUPPORT
- if ((SP != 0)
- && (magic_cookie_glitch > 0))
- newmode &= ~(SP->_xmc_suppress);
-#endif
-
- /*
- * If we have a terminal that cannot combine color with video
- * attributes, use the colors in preference.
- */
- if ((pair != 0
- || fix_pair0)
- && (no_color_video > 0)) {
- /*
- * If we had chosen the A_xxx definitions to correspond to the
- * no_color_video mask, we could simply shift it up and mask off the
- * attributes. But we did not (actually copied Solaris' definitions).
- * However, this is still simpler/faster than a lookup table.
- *
- * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK,
- * A_DIM, A_BOLD which are 1:1 with no_color_video. The bits that
- * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and
- * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS
- * macro so this will work properly for the wide-character layout.
- */
- unsigned value = no_color_video;
- attr_t mask = NCURSES_BITS((value & 63)
- | ((value & 192) << 1)
- | ((value & 256) >> 2), 8);
-
- if ((mask & A_REVERSE) != 0
- && (newmode & A_REVERSE) != 0) {
- reverse = TRUE;
- mask &= ~A_REVERSE;
- }
- newmode &= ~mask;
- }
-
- if (newmode == previous_attr
- && pair == previous_pair)
- returnCode(OK);
-
- if (reverse) {
- newmode &= ~A_REVERSE;
- }
-
- turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
- turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
-
- SetColorsIf(((pair == 0) && !fix_pair0), previous_attr, previous_pair);
-
- if (newmode == A_NORMAL) {
- if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) {
- doPut(exit_alt_charset_mode);
- previous_attr &= ~A_ALTCHARSET;
- }
- if (previous_attr) {
- if (exit_attribute_mode) {
- doPut(exit_attribute_mode);
- } else {
- if (!SP || SP->_use_rmul) {
- TurnOff(A_UNDERLINE, exit_underline_mode);
- }
- if (!SP || SP->_use_rmso) {
- TurnOff(A_STANDOUT, exit_standout_mode);
- }
- }
- previous_attr &= ALL_BUT_COLOR;
- previous_pair = 0;
- }
-
- SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
- } else if (set_attributes) {
- if (turn_on || turn_off) {
- TPUTS_TRACE("set_attributes");
- tputs(TPARM_9(set_attributes,
- (newmode & A_STANDOUT) != 0,
- (newmode & A_UNDERLINE) != 0,
- (newmode & A_REVERSE) != 0,
- (newmode & A_BLINK) != 0,
- (newmode & A_DIM) != 0,
- (newmode & A_BOLD) != 0,
- (newmode & A_INVIS) != 0,
- (newmode & A_PROTECT) != 0,
- (newmode & A_ALTCHARSET) != 0), 1, outc);
- previous_attr &= ALL_BUT_COLOR;
- previous_pair = 0;
- }
- SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
- } else {
-
- TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
-
- TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
-
- if (!SP || SP->_use_rmul) {
- TurnOff(A_UNDERLINE, exit_underline_mode);
- }
-
- if (!SP || SP->_use_rmso) {
- TurnOff(A_STANDOUT, exit_standout_mode);
- }
-
- if (turn_off && exit_attribute_mode) {
- doPut(exit_attribute_mode);
- turn_on |= (newmode & ALL_BUT_COLOR);
- previous_attr &= ALL_BUT_COLOR;
- previous_pair = 0;
- }
- SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
-
- TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
- /* *INDENT-OFF* */
- TurnOn(A_ALTCHARSET, enter_alt_charset_mode);
- TurnOn(A_BLINK, enter_blink_mode);
- TurnOn(A_BOLD, enter_bold_mode);
- TurnOn(A_DIM, enter_dim_mode);
- TurnOn(A_REVERSE, enter_reverse_mode);
- TurnOn(A_STANDOUT, enter_standout_mode);
- TurnOn(A_PROTECT, enter_protected_mode);
- TurnOn(A_INVIS, enter_secure_mode);
- TurnOn(A_UNDERLINE, enter_underline_mode);
-#if USE_WIDEC_SUPPORT
- TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
- TurnOn(A_LEFT, enter_left_hl_mode);
- TurnOn(A_LOW, enter_low_hl_mode);
- TurnOn(A_RIGHT, enter_right_hl_mode);
- TurnOn(A_TOP, enter_top_hl_mode);
- TurnOn(A_VERTICAL, enter_vertical_hl_mode);
-#endif
- /* *INDENT-ON* */
-
- }
-
- if (reverse)
- newmode |= A_REVERSE;
-
- if (SP) {
- SetAttr(SCREEN_ATTRS(SP), newmode);
- SetPair(SCREEN_ATTRS(SP), pair);
- } else {
- previous_attr = newmode;
- previous_pair = pair;
- }
-
- returnCode(OK);
-#else
- T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
- set_color(newmode, pair);
- returnCode(vidputs(newmode, outc));
-#endif
-}
-
-#undef vid_attr
-NCURSES_EXPORT(int)
-vid_attr(attr_t newmode, short pair, void *opts)
-{
- T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair));
- returnCode(vid_puts(newmode, pair, opts, _nc_outch));
-}
-
-/*
- * This implementation uses the same mask values for A_xxx and WA_xxx, so
- * we can use termattrs() for part of the logic.
- */
-NCURSES_EXPORT(attr_t)
-term_attrs(void)
-{
- attr_t attrs;
-
- T((T_CALLED("term_attrs()")));
- attrs = termattrs();
-
- /* these are only supported for wide-character mode */
- if (enter_horizontal_hl_mode)
- attrs |= WA_HORIZONTAL;
- if (enter_left_hl_mode)
- attrs |= WA_LEFT;
- if (enter_low_hl_mode)
- attrs |= WA_LOW;
- if (enter_right_hl_mode)
- attrs |= WA_RIGHT;
- if (enter_top_hl_mode)
- attrs |= WA_TOP;
- if (enter_vertical_hl_mode)
- attrs |= WA_VERTICAL;
-
- returnAttr(attrs);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_vline_set.c b/contrib/ncurses/ncurses/widechar/lib_vline_set.c
deleted file mode 100644
index af42df1f24ab..000000000000
--- a/contrib/ncurses/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: lib_vline_set.c,v 1.2 2002/03/23 21:36:01 tom Exp $")
-
-NCURSES_EXPORT(int)
-wvline_set(WINDOW *win, const cchar_t * ch, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T row, col;
- NCURSES_SIZE_T end;
-
- T((T_CALLED("wvline(%p,%s,%d)"), win, _tracecchar_t(ch), n));
-
- if (win) {
- NCURSES_CH_T wch;
- row = win->_cury;
- col = win->_curx;
- end = row + n - 1;
- if (end > win->_maxy)
- end = win->_maxy;
-
- if (ch == 0)
- wch = *WACS_VLINE;
- else
- wch = *ch;
- wch = _nc_render(win, wch);
-
- while (end >= row) {
- struct ldat *line = &(win->_line[end]);
- line->text[col] = wch;
- CHANGED_CELL(line, col);
- end--;
- }
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_wacs.c b/contrib/ncurses/ncurses/widechar/lib_wacs.c
deleted file mode 100644
index fe893b4d2f8b..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_wacs.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas Dickey 2002 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id: lib_wacs.c,v 1.7 2006/12/17 15:16:17 tom Exp $")
-
-NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 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) {
- int wide = wcwidth(table[n].value[active]);
-
- m = table[n].map;
- if (active && (wide == 1)) {
- SetChar(_nc_wacs[m], table[n].value[active], A_NORMAL);
- } else if (acs_map[m] & A_ALTCHARSET) {
- SetChar(_nc_wacs[m], m, A_ALTCHARSET);
- } else {
- SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL);
- }
-
- T(("#%d, SetChar(%c, %#04x) = %s",
- n, m,
- table[n].value[active],
- _tracecchar_t(&_nc_wacs[m])));
- }
-}
diff --git a/contrib/ncurses/ncurses/widechar/lib_wunctrl.c b/contrib/ncurses/ncurses/widechar/lib_wunctrl.c
deleted file mode 100644
index be2259acdcff..000000000000
--- a/contrib/ncurses/ncurses/widechar/lib_wunctrl.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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>
-
-MODULE_ID("$Id: lib_wunctrl.c,v 1.12 2007/06/12 20:22:32 tom Exp $")
-
-NCURSES_EXPORT(wchar_t *)
-wunctrl(cchar_t *wc)
-{
- static wchar_t str[CCHARW_MAX + 1], *sp;
-
- if (Charable(*wc)) {
- const char *p = unctrl((unsigned) _nc_to_char((wint_t) CharOf(*wc)));
-
- for (sp = str; *p; ++p) {
- *sp++ = _nc_to_widechar(*p);
- }
- *sp = 0;
- return str;
- } else
- return wc->chars;
-}
diff --git a/contrib/ncurses/panel/Makefile.in b/contrib/ncurses/panel/Makefile.in
deleted file mode 100644
index 89dbeeac9009..000000000000
--- a/contrib/ncurses/panel/Makefile.in
+++ /dev/null
@@ -1,159 +0,0 @@
-# $Id: Makefile.in,v 1.52 2007/04/28 14:56:11 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-# 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
-
-x = @EXEEXT@
-o = .@OBJEXT@
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-LIBTOOL_CLEAN = @LIB_CLEAN@
-LIBTOOL_COMPILE = @LIB_COMPILE@
-LIBTOOL_LINK = @LIB_LINK@
-LIBTOOL_INSTALL = @LIB_INSTALL@
-LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROGRAM@
-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 = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @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@)
-
-LINK = $(LIBTOOL_LINK)
-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 = @LIB_PREP@
-
-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)/../mkdirs.sh $@
-
-# 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/contrib/ncurses/panel/headers b/contrib/ncurses/panel/headers
deleted file mode 100644
index 8719ea15dc7b..000000000000
--- a/contrib/ncurses/panel/headers
+++ /dev/null
@@ -1,32 +0,0 @@
-##############################################################################
-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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
-# vile:makemode
diff --git a/contrib/ncurses/panel/llib-lpanel b/contrib/ncurses/panel/llib-lpanel
deleted file mode 100644
index de49c234ecaa..000000000000
--- a/contrib/ncurses/panel/llib-lpanel
+++ /dev/null
@@ -1,182 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1997,2002,2005 *
- ****************************************************************************/
-/* LINTLIBRARY */
-
-/* ./panel.c */
-
-#include "panel.priv.h"
-
-#undef _nc_retrace_panel
-PANEL *_nc_retrace_panel(
- PANEL *pan)
- { return(*(PANEL **)0); }
-
-#undef _nc_my_visbuf
-const char *_nc_my_visbuf(
- const void *ptr)
- { 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/contrib/ncurses/panel/llib-lpanelw b/contrib/ncurses/panel/llib-lpanelw
deleted file mode 100644
index 48bd1e0db5a7..000000000000
--- a/contrib/ncurses/panel/llib-lpanelw
+++ /dev/null
@@ -1,182 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be 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,2005 *
- ****************************************************************************/
-/* LINTLIBRARY */
-
-/* ./panel.c */
-
-#include "panel.priv.h"
-
-#undef _nc_retrace_panel
-PANEL *_nc_retrace_panel(
- PANEL *pan)
- { return(*(PANEL **)0); }
-
-#undef _nc_my_visbuf
-const char *_nc_my_visbuf(
- const void *ptr)
- { 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/contrib/ncurses/panel/modules b/contrib/ncurses/panel/modules
deleted file mode 100644
index d0f7a796678f..000000000000
--- a/contrib/ncurses/panel/modules
+++ /dev/null
@@ -1,51 +0,0 @@
-# $Id: modules,v 1.9 2006/12/24 00:53:17 tom Exp $
-##############################################################################
-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1995-on
-#
-
-@ 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)
-
-# vile:makemode
diff --git a/contrib/ncurses/panel/p_above.c b/contrib/ncurses/panel/p_above.c
deleted file mode 100644
index 32495f627f2d..000000000000
--- a/contrib/ncurses/panel/p_above.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_above.c,v 1.6 2005/02/19 16:44:57 tom Exp $")
-
-NCURSES_EXPORT(PANEL *)
-panel_above(const PANEL * pan)
-{
- T((T_CALLED("panel_above(%p)"), pan));
- if (!pan)
- {
- /* if top and bottom are equal, we have no or only the pseudo panel;
- if not, we return the panel above the pseudo panel */
- returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_bottom_panel->above);
- }
- else
- returnPanel(pan->above);
-}
diff --git a/contrib/ncurses/panel/p_below.c b/contrib/ncurses/panel/p_below.c
deleted file mode 100644
index c4b241015f5b..000000000000
--- a/contrib/ncurses/panel/p_below.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_below.c,v 1.6 2005/02/19 16:45:10 tom Exp $")
-
-NCURSES_EXPORT(PANEL *)
-panel_below(const PANEL * pan)
-{
- T((T_CALLED("panel_below(%p)"), pan));
- if (!pan)
- {
- /* if top and bottom are equal, we have no or only the pseudo panel */
- returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_top_panel);
- }
- else
- {
- /* we must not return the pseudo panel */
- returnPanel(Is_Pseudo(pan->below) ? (PANEL *) 0 : pan->below);
- }
-}
diff --git a/contrib/ncurses/panel/p_bottom.c b/contrib/ncurses/panel/p_bottom.c
deleted file mode 100644
index b861fd9b2ce7..000000000000
--- a/contrib/ncurses/panel/p_bottom.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_bottom.c,v 1.11 2005/02/19 16:38:16 tom Exp $")
-
-NCURSES_EXPORT(int)
-bottom_panel(PANEL * pan)
-{
- int err = OK;
-
- T((T_CALLED("bottom_panel(%p)"), pan));
- 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;
-
- returnCode(err);
-}
diff --git a/contrib/ncurses/panel/p_delete.c b/contrib/ncurses/panel/p_delete.c
deleted file mode 100644
index 24ee26b4ff23..000000000000
--- a/contrib/ncurses/panel/p_delete.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_delete.c,v 1.8 2005/02/19 16:38:45 tom Exp $")
-
-NCURSES_EXPORT(int)
-del_panel(PANEL * pan)
-{
- int err = OK;
-
- T((T_CALLED("del_panel(%p)"), pan));
- if (pan)
- {
- dBug(("--> del_panel %s", USER_PTR(pan->user)));
- HIDE_PANEL(pan, err, OK);
- free((void *)pan);
- }
- else
- err = ERR;
-
- returnCode(err);
-}
diff --git a/contrib/ncurses/panel/p_hidden.c b/contrib/ncurses/panel/p_hidden.c
deleted file mode 100644
index 624c07dae0ba..000000000000
--- a/contrib/ncurses/panel/p_hidden.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_hidden.c,v 1.7 2005/02/19 16:39:17 tom Exp $")
-
-NCURSES_EXPORT(int)
-panel_hidden(const PANEL * pan)
-{
- T((T_CALLED("panel_hidden(%p)"), pan));
- if (!pan)
- returnCode(ERR);
- returnCode(IS_LINKED(pan) ? FALSE : TRUE);
-}
diff --git a/contrib/ncurses/panel/p_hide.c b/contrib/ncurses/panel/p_hide.c
deleted file mode 100644
index 08d8853a201c..000000000000
--- a/contrib/ncurses/panel/p_hide.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_hide.c,v 1.9 2005/02/19 16:39:41 tom Exp $")
-
-NCURSES_EXPORT(int)
-hide_panel(register PANEL * pan)
-{
- int err = OK;
-
- T((T_CALLED("hide_panel(%p)"), pan));
- if (!pan)
- returnCode(ERR);
-
- dBug(("--> hide_panel %s", USER_PTR(pan->user)));
- dStack("<u%d>", 1, pan);
-
- HIDE_PANEL(pan, err, ERR);
-
- dStack("<u%d>", 9, pan);
-
- returnCode(err);
-}
diff --git a/contrib/ncurses/panel/p_move.c b/contrib/ncurses/panel/p_move.c
deleted file mode 100644
index 3818e8cba860..000000000000
--- a/contrib/ncurses/panel/p_move.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_move.c,v 1.9 2005/02/19 16:46:49 tom Exp $")
-
-NCURSES_EXPORT(int)
-move_panel(PANEL * pan, int starty, int startx)
-{
- T((T_CALLED("move_panel(%p,%d,%d)"), pan, starty, startx));
-
- if (!pan)
- returnCode(ERR);
-
- if (IS_LINKED(pan))
- {
- Touchpan(pan);
- PANEL_UPDATE(pan, (PANEL *) 0);
- }
-
- returnCode(mvwin(pan->win, starty, startx));
-}
diff --git a/contrib/ncurses/panel/p_new.c b/contrib/ncurses/panel/p_new.c
deleted file mode 100644
index 3e48e3696735..000000000000
--- a/contrib/ncurses/panel/p_new.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_new.c,v 1.8 2005/02/19 16:41:03 tom Exp $")
-
-#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;
-
- T((T_CALLED("new_panel(%p)"), win));
-
- if (!win)
- returnPanel(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);
- }
- returnPanel(pan);
-}
diff --git a/contrib/ncurses/panel/p_replace.c b/contrib/ncurses/panel/p_replace.c
deleted file mode 100644
index 5d0d295c8b17..000000000000
--- a/contrib/ncurses/panel/p_replace.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_replace.c,v 1.9 2005/02/19 16:41:31 tom Exp $")
-
-NCURSES_EXPORT(int)
-replace_panel(PANEL * pan, WINDOW *win)
-{
- T((T_CALLED("replace_panel(%p,%p)"), pan, win));
-
- if (!pan)
- returnCode(ERR);
-
- if (IS_LINKED(pan))
- {
- Touchpan(pan);
- PANEL_UPDATE(pan, (PANEL *) 0);
- }
-
- pan->win = win;
-
- returnCode(OK);
-}
diff --git a/contrib/ncurses/panel/p_show.c b/contrib/ncurses/panel/p_show.c
deleted file mode 100644
index 35eee237b958..000000000000
--- a/contrib/ncurses/panel/p_show.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_show.c,v 1.11 2005/02/19 16:42:02 tom Exp $")
-
-NCURSES_EXPORT(int)
-show_panel(PANEL * pan)
-{
- int err = OK;
-
- T((T_CALLED("show_panel(%p)"), pan));
-
- if (!pan)
- returnCode(ERR);
-
- if (Is_Top(pan))
- returnCode(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);
-
- returnCode(OK);
-}
diff --git a/contrib/ncurses/panel/p_top.c b/contrib/ncurses/panel/p_top.c
deleted file mode 100644
index 8bd1d9fb3fec..000000000000
--- a/contrib/ncurses/panel/p_top.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_top.c,v 1.5 2005/02/19 16:42:23 tom Exp $")
-
-NCURSES_EXPORT(int)
-top_panel(PANEL * pan)
-{
- T((T_CALLED("top_panel(%p)"), pan));
- returnCode(show_panel(pan));
-}
diff --git a/contrib/ncurses/panel/p_update.c b/contrib/ncurses/panel/p_update.c
deleted file mode 100644
index 5967718160ff..000000000000
--- a/contrib/ncurses/panel/p_update.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_update.c,v 1.9 2005/02/19 16:49:47 tom Exp $")
-
-NCURSES_EXPORT(void)
-update_panels(void)
-{
- PANEL *pan;
-
- T((T_CALLED("update_panels()")));
- 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;
- }
-
- returnVoid;
-}
diff --git a/contrib/ncurses/panel/p_user.c b/contrib/ncurses/panel/p_user.c
deleted file mode 100644
index ffa25f85ae12..000000000000
--- a/contrib/ncurses/panel/p_user.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_user.c,v 1.6 2005/02/19 16:52:44 tom Exp $")
-
-NCURSES_EXPORT(int)
-set_panel_userptr(PANEL * pan, NCURSES_CONST void *uptr)
-{
- T((T_CALLED("set_panel_userptr(%p,%p)"), pan, uptr));
- if (!pan)
- returnCode(ERR);
- pan->user = uptr;
- returnCode(OK);
-}
-
-NCURSES_EXPORT(NCURSES_CONST void *)
-panel_userptr(const PANEL * pan)
-{
- T((T_CALLED("panel_userptr(%p)"), pan));
- returnCVoidPtr(pan ? pan->user : (NCURSES_CONST void *)0);
-}
diff --git a/contrib/ncurses/panel/p_win.c b/contrib/ncurses/panel/p_win.c
deleted file mode 100644
index e7d2cea8e3fe..000000000000
--- a/contrib/ncurses/panel/p_win.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: p_win.c,v 1.5 2005/02/19 16:44:16 tom Exp $")
-
-NCURSES_EXPORT(WINDOW *)
-panel_window(const PANEL * pan)
-{
- T((T_CALLED("panel_window(%p)"), pan));
- returnWin(pan ? pan->win : (WINDOW *)0);
-}
diff --git a/contrib/ncurses/panel/panel.c b/contrib/ncurses/panel/panel.c
deleted file mode 100644
index 16a8083d64b2..000000000000
--- a/contrib/ncurses/panel/panel.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: panel.c,v 1.23 2005/02/19 18:04:31 tom Exp $")
-
-/*+-------------------------------------------------------------------------
- _nc_retrace_panel (pan)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-NCURSES_EXPORT(PANEL *)
-_nc_retrace_panel(PANEL * pan)
-{
- T((T_RETURN("%p"), pan));
- return pan;
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- _nc_my_visbuf(ptr)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-#ifndef TRACE_TXT
-NCURSES_EXPORT(const char *)
-_nc_my_visbuf(const void *ptr)
-{
- 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 */
-extern void _nc_dummy_panel(void);
-void
-_nc_dummy_panel(void)
-{
-}
-# endif
-#endif
diff --git a/contrib/ncurses/panel/panel.h b/contrib/ncurses/panel/panel.h
deleted file mode 100644
index 1e02091d97f2..000000000000
--- a/contrib/ncurses/panel/panel.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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> *
- ****************************************************************************/
-
-/* $Id: panel.h,v 1.10 2006/05/27 19:49:40 tom Exp $ */
-
-/* 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/contrib/ncurses/panel/panel.priv.h b/contrib/ncurses/panel/panel.priv.h
deleted file mode 100644
index 98d741ff6ef0..000000000000
--- a/contrib/ncurses/panel/panel.priv.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders 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.priv.h,v 1.21 2005/11/26 15:27:00 tom Exp $ */
-
-#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 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
-
-# define returnPanel(code) TRACE_RETURN(code,panel)
-
- extern NCURSES_EXPORT(PANEL *) _nc_retrace_panel (PANEL *);
- extern NCURSES_EXPORT(void) _nc_dPanel (const char*, const PANEL*);
- extern NCURSES_EXPORT(void) _nc_dStack (const char*, int, const PANEL*);
- extern NCURSES_EXPORT(void) _nc_Wnoutrefresh (const PANEL*);
- 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 returnPanel(code) return code
-# 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/contrib/ncurses/progs/MKtermsort.sh b/contrib/ncurses/progs/MKtermsort.sh
deleted file mode 100755
index 18b90ac265d8..000000000000
--- a/contrib/ncurses/progs/MKtermsort.sh
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/bin/sh
-# $Id: MKtermsort.sh,v 1.9 2003/01/11 22:23:50 tom Exp $
-#
-# MKtermsort.sh -- generate indirection vectors for the various sort methods
-#
-##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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/contrib/ncurses/progs/Makefile.in b/contrib/ncurses/progs/Makefile.in
deleted file mode 100644
index 38f4e74fbb8e..000000000000
--- a/contrib/ncurses/progs/Makefile.in
+++ /dev/null
@@ -1,297 +0,0 @@
-# $Id: Makefile.in,v 1.77 2007/10/13 22:25:53 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be 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-on
-#
-# 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 = @EXEEXT@
-o = .@OBJEXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-top_srcdir = @top_srcdir@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-LIBTOOL_CLEAN = @LIB_CLEAN@
-LIBTOOL_COMPILE = @LIB_COMPILE@
-LIBTOOL_LINK = @LIB_LINK@
-LIBTOOL_INSTALL = @LIB_INSTALL@
-LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
-
-INSTALL = @INSTALL@
-INSTALL_PROG = @INSTALL_PROGRAM@
-transform = @program_transform_name@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-INCDIR = $(top_srcdir)/include
-CPPFLAGS = -I../progs -I$(srcdir) -DHAVE_CONFIG_H @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@)
-
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-LOCAL_LIBDIR = @top_builddir@/lib
-
-LD = @LD@
-LINK = @LINK_PROGS@ $(LIBTOOL_LINK)
-LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
-LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
-LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG)
-LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
-LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LIBS_TIC = @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
-LDFLAGS_TIC = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC)
-
-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
-LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses @LIBS@
-
-AUTO_SRC = \
- termsort.c \
- transform.h
-
-# tic relies on direct access to the terminfo database
-GET_PROGS = infocmp$x clear$x tput$x tset$x toe$x
-PUT_PROGS = @MAKE_TERMINFO@ tic$x
-PROGS = $(PUT_PROGS) $(GET_PROGS)
-
-# Default library, for linking applications
-DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-
-HEADER_DEPS = \
- ../include/curses.h \
- $(INCDIR)/term_entry.h \
- $(INCDIR)/tic.h \
- $(INCDIR)/nc_alloc.h
-
-################################################################################
-all: $(AUTO_SRC) $(PROGS)
-
-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/'
-
-# transformed names for installing files
-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)`
-
-# transformed names for comparing at runtime
-define_captoinfo = `echo captoinfo| $(TRANSFORM)`
-define_infotocap = `echo infotocap| $(TRANSFORM)`
-define_init = `echo init| $(TRANSFORM)`
-define_reset = `echo reset| $(TRANSFORM)`
-
-transform.h :
- echo "#define PROG_CAPTOINFO \"$(define_captoinfo)\"" >$@
- echo "#define PROG_INFOTOCAP \"$(define_infotocap)\"" >>$@
- echo "#define PROG_RESET \"$(define_reset)\"" >>$@
- echo "#define PROG_INIT \"$(define_init)\"" >>$@
-
-install.progs: $(AUTO_SRC) $(PROGS) $(DESTDIR)$(bindir)
-@MAKE_TERMINFO@ $(LIBTOOL_INSTALL) $(INSTALL_PROG) tic$x $(DESTDIR)$(bindir)/$(actual_tic)
-@MAKE_TERMINFO@ $(LIBTOOL_INSTALL) $(INSTALL_PROG) 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) $(INSTALL_PROG) infocmp$x $(DESTDIR)$(bindir)/$(actual_infocmp)
- $(LIBTOOL_INSTALL) $(INSTALL_PROG) clear$x $(DESTDIR)$(bindir)/$(actual_clear)
- $(LIBTOOL_INSTALL) $(INSTALL_PROG) tput$x $(DESTDIR)$(bindir)/$(actual_tput)
- $(LIBTOOL_INSTALL) $(INSTALL_PROG) 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_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tic)
-@MAKE_TERMINFO@ -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_toe)
-@MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_captoinfo)
-@MAKE_TERMINFO@ -@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
- -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_infocmp)
- -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_clear)
- -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tput)
- -@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tset)
- -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
-
-$(DESTDIR)$(bindir) :
- sh $(srcdir)/../mkdirs.sh $@
-
-#
-# 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_TIC) -o $@
-
-DEPS_TOE = \
- $(MODEL)/toe$o
-
-toe$x: $(DEPS_TOE) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@
-
-DEPS_CLEAR = \
- $(MODEL)/clear$o
-
-clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
-
-DEPS_TPUT = \
- $(MODEL)/tput$o
-
-tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
-
-DEPS_INFOCMP = \
- $(MODEL)/infocmp$o \
- $(MODEL)/dump_entry$o
-
-infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
-
-DEPS_TSET = \
- $(MODEL)/tset$o
-
-tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
-
-termsort.c: $(srcdir)/MKtermsort.sh
- sh $(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
-
-clean :: mostlyclean
- -sh -c "if test -n '$x' ; then $(MAKE) clean x=''; fi"
- -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/contrib/ncurses/progs/capconvert b/contrib/ncurses/progs/capconvert
deleted file mode 100755
index 8199bbf09b7e..000000000000
--- a/contrib/ncurses/progs/capconvert
+++ /dev/null
@@ -1,256 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: capconvert,v 1.4 2006/04/22 21:46:17 tom Exp $
-#
-# 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/contrib/ncurses/progs/clear.c b/contrib/ncurses/progs/clear.c
deleted file mode 100644
index 9f5a543848a1..000000000000
--- a/contrib/ncurses/progs/clear.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * clear.c -- clears the terminal's screen
- */
-
-#define USE_LIBTINFO
-#include <progs.priv.h>
-
-MODULE_ID("$Id: clear.c,v 1.11 2007/10/13 22:16:02 tom Exp $")
-
-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);
- ExitProgram((tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR)
- ? EXIT_FAILURE
- : EXIT_SUCCESS);
-}
diff --git a/contrib/ncurses/progs/clear.sh b/contrib/ncurses/progs/clear.sh
deleted file mode 100755
index f26112b97c38..000000000000
--- a/contrib/ncurses/progs/clear.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-exec tput clear
diff --git a/contrib/ncurses/progs/dump_entry.c b/contrib/ncurses/progs/dump_entry.c
deleted file mode 100644
index eeee5dbb6a04..000000000000
--- a/contrib/ncurses/progs/dump_entry.c
+++ /dev/null
@@ -1,1264 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: dump_entry.c,v 1.82 2008/04/19 22:27:04 tom Exp $")
-
-#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 char *save_sgr;
-
-static DYNBUF outbuf;
-static DYNBUF tmpbuf;
-
-/* indirection pointers for implementing sort and display modes */
-static const PredIdx *bool_indirect, *num_indirect, *str_indirect;
-static NCURSES_CONST char *const *bool_names;
-static NCURSES_CONST char *const *num_names;
-static NCURSES_CONST char *const *str_names;
-
-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(PredType type, PredIdx 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(PredType type, PredIdx 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;
-
-#define is_termcap(type) (idx < (int) sizeof(type##_from_termcap) && \
- type##_from_termcap[idx])
-
- case V_BSD: /* BSD */
- switch (type) {
- case BOOLEAN:
- return is_termcap(bool);
- case NUMBER:
- return is_termcap(num);
- case STRING:
- return is_termcap(str);
- }
- break;
- }
-
- return (FALSE); /* pacify the compiler */
-}
-
-static void
-trim_trailing(void)
-{
- while (outbuf.used > 0 && outbuf.text[outbuf.used - 1] == ' ')
- outbuf.text[--outbuf.used] = '\0';
-}
-
-static void
-force_wrap(void)
-{
- oldcol = column;
- trim_trailing();
- 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 void
-indent_DYN(DYNBUF * buffer, int level)
-{
- int n;
-
- for (n = 0; n < level; n++)
- strncpy_DYN(buffer, "\t", 1);
-}
-
-static bool
-has_params(const char *src)
-{
- bool result = FALSE;
- int len = strlen(src);
- int n;
- bool ifthen = FALSE;
- bool params = FALSE;
-
- for (n = 0; n < len - 1; ++n) {
- if (!strncmp(src + n, "%p", 2)) {
- params = TRUE;
- } else if (!strncmp(src + n, "%;", 2)) {
- ifthen = TRUE;
- result = params;
- break;
- }
- }
- if (!ifthen) {
- result = ((len > 50) && params);
- }
- return result;
-}
-
-static char *
-fmt_complex(char *src, int level)
-{
- bool percent = FALSE;
- bool params = has_params(src);
-
- while (*src != '\0') {
- switch (*src) {
- case '\\':
- percent = FALSE;
- strncpy_DYN(&tmpbuf, src++, 1);
- break;
- case '%':
- percent = TRUE;
- break;
- case '?': /* "if" */
- case 't': /* "then" */
- case 'e': /* "else" */
- if (percent) {
- percent = FALSE;
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- /* treat a "%e" as else-if, on the same level */
- if (*src == 'e') {
- indent_DYN(&tmpbuf, level);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src, 1);
- src++;
- params = has_params(src);
- if (!params && *src != '\0' && *src != '%') {
- strncpy_DYN(&tmpbuf, "\n", 1);
- indent_DYN(&tmpbuf, level + 1);
- }
- } else {
- indent_DYN(&tmpbuf, level + 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src, 1);
- if (*src++ == '?') {
- src = fmt_complex(src, level + 1);
- if (*src != '\0' && *src != '%') {
- strncpy_DYN(&tmpbuf, "\n", 1);
- indent_DYN(&tmpbuf, level + 1);
- }
- } else if (level == 1) {
- _nc_warning("%%%c without %%?", *src);
- }
- }
- continue;
- }
- break;
- case ';': /* "endif" */
- if (percent) {
- percent = FALSE;
- if (level > 1) {
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- indent_DYN(&tmpbuf, level);
- 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';
- indent_DYN(&tmpbuf, level + 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- }
- params = FALSE;
- percent = FALSE;
- break;
- case ' ':
- strncpy_DYN(&tmpbuf, "\\s", 2);
- ++src;
- continue;
- default:
- percent = FALSE;
- break;
- }
- strncpy_DYN(&tmpbuf, src++, 1);
- }
- return src;
-}
-
-#define SAME_CAP(n,cap) (&tterm->Strings[n] == &cap)
-
-int
-fmt_entry(TERMTYPE *tterm,
- PredFunc pred,
- bool content_only,
- bool suppress_untranslatable,
- bool infodump,
- int numbers)
-{
- PredIdx i, j;
- char buffer[MAX_TERMINFO_LENGTH];
- char *capability;
- NCURSES_CONST char *name;
- int predval, len;
- PredIdx num_bools = 0;
- PredIdx num_values = 0;
- PredIdx 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);
- capability = tterm->Strings[i];
-
- if (!version_filter(STRING, i))
- continue;
- else if (isObsolete(outform, name))
- continue;
-
-#if NCURSES_XNAMES
- /*
- * Extended names can be longer than 2 characters, but termcap programs
- * cannot read those (filter them out).
- */
- if (outform == F_TERMCAP && (strlen(name) > 2))
- continue;
-#endif
-
- if (outform == F_TERMCAP) {
- /*
- * Some older versions of vi want rmir/smir to be defined
- * for ich/ich1 to work. If they're not defined, force
- * them to be output as defined and empty.
- */
- if (PRESENT(insert_character) || PRESENT(parm_ich)) {
- if (SAME_CAP(i, enter_insert_mode)
- && enter_insert_mode == ABSENT_STRING) {
- (void) strcpy(buffer, "im=");
- WRAP_CONCAT;
- continue;
- }
-
- if (SAME_CAP(i, exit_insert_mode)
- && exit_insert_mode == ABSENT_STRING) {
- (void) strcpy(buffer, "ei=");
- WRAP_CONCAT;
- continue;
- }
- }
- /*
- * termcap applications such as screen will be confused if sgr0
- * is translated to a string containing rmacs. Filter that out.
- */
- if (PRESENT(exit_attribute_mode)) {
- if (SAME_CAP(i, exit_attribute_mode)) {
- char *trimmed_sgr0;
- char *my_sgr = set_attributes;
-
- set_attributes = save_sgr;
-
- trimmed_sgr0 = _nc_trim_sgr0(tterm);
- if (strcmp(capability, trimmed_sgr0))
- capability = trimmed_sgr0;
-
- set_attributes = my_sgr;
- }
- }
- }
-
- predval = pred(STRING, i);
- buffer[0] = '\0';
-
- if (predval != FAIL) {
- if (capability != ABSENT_STRING
- && i + 1 > num_strings)
- num_strings = i + 1;
-
- if (!VALID_STRING(capability)) {
- sprintf(buffer, "%s@", name);
- WRAP_CONCAT;
- } else if (outform == F_TERMCAP || outform == F_TCONVERR) {
- int params = ((i < (int) SIZEOF(parametrized))
- ? parametrized[i]
- : 0);
- char *srccap = _nc_tic_expand(capability, 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(capability) + 1;
- WRAP_CONCAT;
- } else {
- char *src = _nc_tic_expand(capability,
- 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(capability) + 1;
- wrap_concat(tmpbuf.text);
- outcount = TRUE;
- }
- }
- /* e.g., trimmed_sgr0 */
- if (capability != tterm->Strings[i])
- free(capability);
- }
- 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 (VALID_STRING(memory_lock)) {
- (void) sprintf(buffer, "meml=%s", memory_lock);
- WRAP_CONCAT;
- }
- if (VALID_STRING(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;
- strcpy_DYN(&outbuf, " ");
- }
- }
-#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)
-{
- PredIdx 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;
-}
-
-/*
- * Check if the given acsc string is a 1-1 mapping, i.e., just-like-vt100.
- * Also, since this is for termcap, we only care about the line-drawing map.
- */
-#define isLine(c) (strchr("lmkjtuvwqxn", c) != 0)
-
-static bool
-one_one_mapping(const char *mapping)
-{
- bool result = TRUE;
-
- if (mapping != ABSENT_STRING) {
- int n = 0;
- while (mapping[n] != '\0') {
- if (isLine(mapping[n]) &&
- mapping[n] != mapping[n + 1]) {
- result = FALSE;
- break;
- }
- n += 2;
- }
- }
- return result;
-}
-
-#define FMT_ENTRY() \
- fmt_entry(tterm, pred, \
- 0, \
- suppress_untranslatable, \
- infodump, numbers)
-
-#define SHOW_WHY PRINTF
-
-static bool
-purged_acs(TERMTYPE *tterm)
-{
- bool result = FALSE;
-
- if (VALID_STRING(acs_chars)) {
- if (!one_one_mapping(acs_chars)) {
- enter_alt_charset_mode = ABSENT_STRING;
- exit_alt_charset_mode = ABSENT_STRING;
- SHOW_WHY("# (rmacs/smacs removed for consistency)\n");
- }
- result = TRUE;
- }
- return result;
-}
-
-/*
- * Dump a single entry.
- */
-void
-dump_entry(TERMTYPE *tterm,
- bool suppress_untranslatable,
- bool limited,
- int numbers,
- PredFunc pred)
-{
- TERMTYPE save_tterm;
- 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;
- }
-
- save_sgr = set_attributes;
-
- if (((len = FMT_ENTRY()) > critlen)
- && limited) {
-
- save_tterm = *tterm;
- 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.
- */
- bool changed = FALSE;
-
-#if NCURSES_XNAMES
- /*
- * Extended names are most likely function-key definitions. Drop
- * those first.
- */
- int n;
- for (n = STRCOUNT; n < NUM_STRINGS(tterm); n++) {
- const char *name = ExtStrname(tterm, n, strnames);
-
- if (VALID_STRING(tterm->Strings[n])) {
- set_attributes = ABSENT_STRING;
- /* we remove long names anyway - only report the short */
- if (strlen(name) <= 2) {
- SHOW_WHY("# (%s removed to fit entry within %d bytes)\n",
- name,
- critlen);
- }
- changed = TRUE;
- if ((len = FMT_ENTRY()) <= critlen)
- break;
- }
- }
-#endif
- if (VALID_STRING(set_attributes)) {
- set_attributes = ABSENT_STRING;
- SHOW_WHY("# (sgr removed to fit entry within %d bytes)\n",
- critlen);
- changed = TRUE;
- }
- if (!changed || ((len = FMT_ENTRY()) > critlen)) {
- if (purged_acs(tterm)) {
- acs_chars = ABSENT_STRING;
- SHOW_WHY("# (acsc removed to fit entry within %d bytes)\n",
- critlen);
- changed = TRUE;
- }
- }
- if (!changed || ((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) {
- (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",
- len, legend);
- }
- tversion = oldversion;
- }
- set_attributes = save_sgr;
- *tterm = save_tterm;
- }
- } else if (!version_filter(STRING, STR_IDX(acs_chars))) {
- save_tterm = *tterm;
- if (purged_acs(tterm)) {
- len = FMT_ENTRY();
- }
- *tterm = save_tterm;
- }
-}
-
-void
-dump_uses(const char *name, bool infodump)
-/* dump "use=" clauses in the appropriate format */
-{
- char buffer[MAX_TERMINFO_LENGTH];
-
- if (outform == F_TERMCAP || outform == F_TCONVERR)
- trim_trailing();
- (void) sprintf(buffer, "%s%s", infodump ? "use=" : "tc=", name);
- wrap_concat(buffer);
-}
-
-int
-show_entry(void)
-{
- trim_trailing();
- (void) fputs(outbuf.text, stdout);
- putchar('\n');
- return outbuf.used;
-}
-
-void
-compare_entry(void (*hook) (PredType t, PredIdx i, const char *name),
- TERMTYPE *tp GCC_UNUSED,
- bool quiet)
-/* compare two entries */
-{
- PredIdx 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 = UChar(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 = UChar(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/contrib/ncurses/progs/dump_entry.h b/contrib/ncurses/progs/dump_entry.h
deleted file mode 100644
index f802ecb783f7..000000000000
--- a/contrib/ncurses/progs/dump_entry.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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: dump_entry.h,v 1.29 2006/08/19 21:11:14 tom Exp $
- *
- * Dump control definitions and variables
- */
-
-#ifndef DUMP_ENTRY_H
-#define DUMP_ENTRY_H 1
-
-/* capability output formats */
-#define F_TERMINFO 0 /* use terminfo names */
-#define F_VARIABLE 1 /* use C variable names */
-#define 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 */
-
-typedef unsigned PredType;
-typedef int PredIdx;
-typedef int (*PredFunc)(PredType, PredIdx);
-
-extern NCURSES_CONST char *nametrans(const char *);
-extern int fmt_entry(TERMTYPE *, PredFunc, bool, bool, bool, int);
-extern int show_entry(void);
-extern void compare_entry(void (*)(PredType, PredIdx, const char *), TERMTYPE *, bool);
-extern void dump_entry(TERMTYPE *, bool, bool, int, PredFunc);
-extern void dump_init(const char *, int, int, int, int, bool);
-extern void dump_uses(const char *, bool);
-extern void repair_acsc(TERMTYPE * tp);
-
-#define FAIL -1
-
-#endif /* DUMP_ENTRY_H */
diff --git a/contrib/ncurses/progs/infocmp.c b/contrib/ncurses/progs/infocmp.c
deleted file mode 100644
index 8680df35d34f..000000000000
--- a/contrib/ncurses/progs/infocmp.c
+++ /dev/null
@@ -1,1652 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * infocmp.c -- decompile an entry, or compare two entries
- * written by Eric S. Raymond
- * and Thomas E Dickey
- */
-
-#include <progs.priv.h>
-
-#include <dump_entry.h>
-
-MODULE_ID("$Id: infocmp.c,v 1.96 2008/01/19 21:08:07 tom Exp $")
-
-#define L_CURL "{"
-#define R_CURL "}"
-
-#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 ENTRY *entries; /* terminfo entries */
-static int termcount; /* count of terminal entries */
-
-static bool limited = TRUE; /* "-r" option is not set */
-static bool quiet = FALSE;
-static bool literal = FALSE;
-static const char *bool_sep = ":";
-static const char *s_absent = "NULL";
-static const char *s_cancel = "NULL";
-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();
- free(entries);
- _nc_free_tic(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(PredIdx 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(unsigned type, PredIdx 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? */
-{
- unsigned 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((PredIdx) 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(PredType type, PredIdx idx, const char *name)
-/* predicate function to use for entry difference reports */
-{
- register ENTRY *e1 = &entries[0];
- register ENTRY *e2 = &entries[1];
- char buf1[MAX_STRING], buf2[MAX_STRING];
- 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 controls widely supported by emulators */
- {"\033=", "DECPAM"}, /* application keypad mode */
- {"\033>", "DECPNM"}, /* normal keypad mode */
- {"\033<", "DECANSI"}, /* enter ANSI mode */
- {"\033[!p", "DECSTR"}, /* soft reset */
- {"\033 F", "S7C1T"}, /* 7-bit controls */
-
- {(char *) 0, (char *) 0}
-};
-
-static const assoc std_modes[] =
-/* ECMA \E[ ... [hl] modes recognized by many emulators */
-{
- {"2", "AM"}, /* keyboard action mode */
- {"4", "IRM"}, /* insert/replace mode */
- {"12", "SRM"}, /* send/receive mode */
- {"20", "LNM"}, /* linefeed mode */
- {(char *) 0, (char *) 0}
-};
-
-static const assoc private_modes[] =
-/* DEC \E[ ... [hl] modes recognized by many emulators */
-{
- {"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 int
-skip_csi(const char *cap)
-{
- int result = 0;
- if (cap[0] == '\033' && cap[1] == '[')
- result = 2;
- else if (UChar(cap[0]) == 0233)
- result = 1;
- return result;
-}
-
-static bool
-same_param(const char *table, const char *param, unsigned length)
-{
- bool result = FALSE;
- if (strncmp(table, param, length) == 0) {
- result = !isdigit(UChar(param[length]));
- }
- return result;
-}
-
-static char *
-lookup_params(const assoc * table, char *dst, char *src)
-{
- const char *ep = strtok(src, ";");
- const assoc *ap;
-
- do {
- bool found = FALSE;
-
- for (ap = table; ap->from; ap++) {
- size_t tlen = strlen(ap->from);
-
- if (same_param(ap->from, ep, tlen)) {
- (void) strcat(dst, ap->to);
- found = TRUE;
- break;
- }
- }
-
- if (!found)
- (void) strcat(dst, ep);
- (void) strcat(dst, ";");
- } while
- ((ep = strtok((char *) 0, ";")));
-
- dst[strlen(dst) - 1] = '\0';
-
- return dst;
-}
-
-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;
- const assoc *ap;
- int tp_lines = tp->Numbers[2];
-
- if (cap == ABSENT_STRING || cap == CANCELLED_STRING)
- return;
- (void) printf("%s: ", name);
-
- buf[0] = '\0';
- for (sp = cap; *sp; sp++) {
- int i;
- int csi;
- size_t len = 0;
- size_t next;
- const char *expansion = 0;
- char buf3[MAX_TERMINFO_LENGTH];
-
- /* 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) {
- csi = skip_csi(sp);
- for (ap = std_caps; ap->from; ap++) {
- size_t adj = csi ? 2 : 0;
-
- len = strlen(ap->from);
- if (csi && skip_csi(ap->from) != csi)
- continue;
- if (len > adj
- && strncmp(ap->from + adj, sp + csi, len - adj) == 0) {
- expansion = ap->to;
- len -= adj;
- len += csi;
- break;
- }
- }
- }
-
- /* now check for standard-mode sequences */
- if (!expansion
- && (csi = skip_csi(sp)) != 0
- && (len = strspn(sp + csi, "0123456789;"))
- && (next = csi + len)
- && ((sp[next] == 'h') || (sp[next] == 'l'))) {
-
- (void) strcpy(buf2, (sp[next] == 'h') ? "ECMA+" : "ECMA-");
- (void) strncpy(buf3, sp + csi, len);
- buf3[len] = '\0';
- len += csi + 1;
-
- expansion = lookup_params(std_modes, buf2, buf3);
- }
-
- /* now check for private-mode sequences */
- if (!expansion
- && (csi = skip_csi(sp)) != 0
- && sp[csi] == '?'
- && (len = strspn(sp + csi + 1, "0123456789;"))
- && (next = csi + 1 + len)
- && ((sp[next] == 'h') || (sp[next] == 'l'))) {
-
- (void) strcpy(buf2, (sp[next] == 'h') ? "DEC+" : "DEC-");
- (void) strncpy(buf3, sp + csi + 1, len);
- buf3[len] = '\0';
- len += csi + 2;
-
- expansion = lookup_params(private_modes, buf2, buf3);
- }
-
- /* now check for ECMA highlight sequences */
- if (!expansion
- && (csi = skip_csi(sp)) != 0
- && (len = strspn(sp + csi, "0123456789;")) != 0
- && (next = csi + len)
- && sp[next] == 'm') {
-
- (void) strcpy(buf2, "SGR:");
- (void) strncpy(buf3, sp + csi, len);
- buf3[len] = '\0';
- len += csi + 1;
-
- expansion = lookup_params(ecma_highlights, buf2, buf3);
- }
-
- if (!expansion
- && (csi = skip_csi(sp)) != 0
- && sp[csi] == 'm') {
- len = csi + 1;
- (void) strcpy(buf2, "SGR:");
- strcat(buf2, ecma_highlights[0].to);
- expansion = buf2;
- }
-
- /* now check for scroll region reset */
- if (!expansion
- && (csi = skip_csi(sp)) != 0) {
- if (sp[csi] == 'r') {
- expansion = "RSR";
- len = 1;
- } else {
- (void) sprintf(buf2, "1;%dr", tp_lines);
- len = strlen(buf2);
- if (strncmp(buf2, sp + csi, len) == 0)
- expansion = "RSR";
- }
- len += csi;
- }
-
- /* now check for home-down */
- if (!expansion
- && (csi = skip_csi(sp)) != 0) {
- (void) sprintf(buf2, "%d;1H", tp_lines);
- len = strlen(buf2);
- if (strncmp(buf2, sp + csi, len) == 0) {
- expansion = "LL";
- } else {
- (void) sprintf(buf2, "%dH", tp_lines);
- len = strlen(buf2);
- if (strncmp(buf2, sp + csi, len) == 0) {
- expansion = "LL";
- }
- }
- len += csi;
- }
-
- /* now look at the expansion we got, if any */
- 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, literal, NULLHOOK);
-
- if (itrace)
- (void) fprintf(stderr, "Resolving file %d...\n", n - 0);
-
- /* maybe do use resolution */
- if (!_nc_resolve_uses2(!limited, literal)) {
- (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);
- }
- }
- ExitProgram(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,
- "%s: dumping differences\n",
- _nc_progname);
- (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,
- "%s: dumping common capabilities\n",
- _nc_progname);
- (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,
- "%s: dumping differences\n",
- _nc_progname);
- (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)"
- ," -U eliminate post-processing of entries"
- ," -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)"
-#if NCURSES_XNAMES
- ," -x treat unknown capabilities as user-defined"
-#endif
- };
- 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]);
- }
- ExitProgram(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)
-{
- unsigned 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';
- (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/* %3u: %-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/* %3u: %-8s */\t%s,\n", n,
- ExtNumname(term, n, numnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
- size = (sizeof(TERMTYPE)
- + (NUM_BOOLEANS(term) * sizeof(term->Booleans[0]))
- + (NUM_NUMBERS(term) * sizeof(term->Numbers[0])));
-
- (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/* %3u: %-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/* %3u: bool */\t\"%s\",\n",
- n, ExtBoolname(term, n, boolnames));
- }
- for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
- (void) printf("\t/* %3u: num */\t\"%s\",\n",
- n, ExtNumname(term, n, numnames));
- }
- for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
- (void) printf("\t/* %3u: 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");
-#else
- (void) term;
-#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);
- ExitProgram(EXIT_FAILURE);
- }
- return (int) value;
-}
-
-static char *
-terminal_env(void)
-{
- char *terminal;
-
- if ((terminal = getenv("TERM")) == 0) {
- (void) fprintf(stderr,
- "%s: environment variable TERM not set\n",
- _nc_progname);
- exit(EXIT_FAILURE);
- }
- return terminal;
-}
-
-/***************************************************************************
- *
- * Main sequence
- *
- ***************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- /* Avoid "local data >32k" error with mwcc */
- /* Also avoid overflowing smaller stacks on systems like AmigaOS */
- path *tfile = 0;
- char **tname = 0;
- int maxterms;
-
- char **myargv;
-
- char *firstdir, *restdir;
- int c, i, len;
- bool formatted = FALSE;
- bool filecompare = FALSE;
- int initdump = 0;
- bool init_analyze = FALSE;
- bool suppress_untranslatable = FALSE;
-
- /* where is the terminfo database location going to default to? */
- restdir = firstdir = 0;
-
-#if NCURSES_XNAMES
- use_extended_names(FALSE);
-#endif
-
- _nc_progname = _nc_rootname(argv[0]);
-
- /* make sure we have enough space to add two terminal entries */
- myargv = typeCalloc(char *, argc + 3);
- memcpy(myargv, argv, sizeof(char *) * argc);
- argv = myargv;
-
- while ((c = getopt(argc,
- argv,
- "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != -1) {
- 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;
- 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,
- "%s: unknown sort mode\n",
- _nc_progname);
- ExitProgram(EXIT_FAILURE);
- }
- break;
-
- case 'T':
- limited = FALSE;
- break;
-
-#if NCURSES_XNAMES
- case 't':
- _nc_disable_period = FALSE;
- suppress_untranslatable = TRUE;
- break;
-#endif
-
- case 'U':
- literal = TRUE;
- break;
-
- case 'u':
- compare = C_USEALL;
- break;
-
- case 'V':
- puts(curses_version());
- ExitProgram(EXIT_SUCCESS);
-
- case 'v':
- itrace = optarg_to_number();
- set_trace_level(itrace);
- break;
-
- case 'w':
- mwidth = optarg_to_number();
- break;
-
-#if NCURSES_XNAMES
- case 'x':
- use_extended_names(TRUE);
- break;
-#endif
-
- default:
- usage();
- }
- }
-
- maxterms = (argc + 2 - optind);
- tfile = typeMalloc(path, maxterms);
- tname = typeCalloc(char *, maxterms);
- entries = typeCalloc(ENTRY, maxterms);
-
- if (tfile == 0
- || tname == 0
- || entries == 0) {
- fprintf(stderr, "%s: not enough memory\n", _nc_progname);
- ExitProgram(EXIT_FAILURE);
- }
-
- /* 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_env();
-
- /* if user is after a comparison, make sure we have two entries */
- if (compare != C_DEFAULT && optind >= argc - 1)
- argv[argc++] = terminal_env();
-
- /* 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++) {
- const char *directory = termcount ? restdir : firstdir;
- int status;
-
- tname[termcount] = argv[optind];
-
- if (directory) {
-#if USE_DATABASE
-#if MIXEDCASE_FILENAMES
-#define LEAF_FMT "%c"
-#else
-#define LEAF_FMT "%02x"
-#endif
- (void) sprintf(tfile[termcount], "%s/" LEAF_FMT "/%s",
- directory,
- UChar(*argv[optind]), argv[optind]);
- if (itrace)
- (void) fprintf(stderr,
- "%s: reading entry %s from file %s\n",
- _nc_progname,
- argv[optind], tfile[termcount]);
-
- status = _nc_read_file_entry(tfile[termcount],
- &entries[termcount].tterm);
-#else
- (void) fprintf(stderr, "%s: terminfo files not supported\n",
- _nc_progname);
- ExitProgram(EXIT_FAILURE);
-#endif
- } else {
- if (itrace)
- (void) fprintf(stderr,
- "%s: reading entry %s from database\n",
- _nc_progname,
- tname[termcount]);
-
- status = _nc_read_entry(tname[termcount],
- tfile[termcount],
- &entries[termcount].tterm);
- directory = TERMINFO; /* for error message */
- }
-
- if (status <= 0) {
- (void) fprintf(stderr,
- "%s: couldn't open terminfo file %s.\n",
- _nc_progname,
- tfile[termcount]);
- ExitProgram(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);
- }
-
- /* analyze the init strings */
- else 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
- } else {
-
- /*
- * Here's where the real work gets done
- */
- switch (compare) {
- case C_DEFAULT:
- if (itrace)
- (void) fprintf(stderr,
- "%s: about to dump %s\n",
- _nc_progname,
- tname[0]);
- (void) printf("#\tReconstructed via infocmp from file: %s\n",
- tfile[0]);
- dump_entry(&entries[0].tterm,
- suppress_untranslatable,
- limited,
- numbers,
- NULL);
- len = show_entry();
- if (itrace)
- (void) fprintf(stderr, "%s: length %d\n", _nc_progname, len);
- break;
-
- case C_DIFFERENCE:
- if (itrace)
- (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_COMMON:
- if (itrace)
- (void) fprintf(stderr,
- "%s: dumping common capabilities\n",
- _nc_progname);
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_NAND:
- if (itrace)
- (void) fprintf(stderr,
- "%s: dumping differences\n",
- _nc_progname);
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_USEALL:
- if (itrace)
- (void) fprintf(stderr, "%s: dumping use entry\n", _nc_progname);
- dump_entry(&entries[0].tterm,
- suppress_untranslatable,
- limited,
- numbers,
- use_predicate);
- for (i = 1; i < termcount; i++)
- dump_uses(tname[i], !(outform == F_TERMCAP
- || outform == F_TCONVERR));
- len = show_entry();
- if (itrace)
- (void) fprintf(stderr, "%s: length %d\n", _nc_progname, 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);
-
-#if NO_LEAKS
- free(myargv);
- free(tfile);
- free(tname);
-#endif
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* infocmp.c ends here */
diff --git a/contrib/ncurses/progs/modules b/contrib/ncurses/progs/modules
deleted file mode 100644
index 3b4f3b602369..000000000000
--- a/contrib/ncurses/progs/modules
+++ /dev/null
@@ -1,43 +0,0 @@
-# $Id: modules,v 1.13 2006/12/24 00:53:21 tom Exp $
-# Program modules (some are in ncurses lib!)
-##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1995-on
-#
-
-@ base
-clear progs $(srcdir) $(HEADER_DEPS)
-tic progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h
-toe progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h
-dump_entry progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
-infocmp progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h
-tput progs $(srcdir) $(HEADER_DEPS) transform.h termsort.c
-tset progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h
-
-# vile:makemode
diff --git a/contrib/ncurses/progs/progs.priv.h b/contrib/ncurses/progs/progs.priv.h
deleted file mode 100644
index d445c3366591..000000000000
--- a/contrib/ncurses/progs/progs.priv.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1997-on *
- ****************************************************************************/
-/*
- * $Id: progs.priv.h,v 1.33 2007/10/13 20:33:53 tom Exp $
- *
- * 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>
-#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)
-# if defined(_FILE_OFFSET_BITS) && defined(HAVE_STRUCT_DIRENT64)
-# if !defined(_LP64) && (_FILE_OFFSET_BITS == 64)
-# define DIRENT struct dirent64
-# else
-# define DIRENT struct dirent
-# endif
-# else
-# define DIRENT struct dirent
-# endif
-#else
-# define DIRENT struct 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_tparm.h>
-
-#include <nc_alloc.h>
-#if HAVE_NC_FREEALL
-#undef ExitProgram
-#ifdef USE_LIBTINFO
-#define ExitProgram(code) _nc_free_tinfo(code)
-#else
-#define ExitProgram(code) _nc_free_tic(code)
-#endif
-#endif
-
-/* 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/contrib/ncurses/progs/tic.c b/contrib/ncurses/progs/tic.c
deleted file mode 100644
index 84781026e51c..000000000000
--- a/contrib/ncurses/progs/tic.c
+++ /dev/null
@@ -1,1513 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 <transform.h>
-
-MODULE_ID("$Id: tic.c,v 1.133 2007/07/21 17:45:59 tom Exp $")
-
-const char *_nc_progname = "tic";
-
-static FILE *log_fp;
-static FILE *tmp_fp;
-static bool capdump = FALSE; /* running as infotocap? */
-static bool infodump = FALSE; /* running as captoinfo? */
-static bool showsummary = FALSE;
-static const char *to_remove;
-
-static void (*save_check_termtype) (TERMTYPE *, bool);
-static void check_termtype(TERMTYPE *tt, bool);
-
-static const char usage_string[] = "\
-[-e names] \
-[-o dir] \
-[-R name] \
-[-v[n]] \
-[-V] \
-[-w[n]] \
-[-\
-1\
-a\
-C\
-c\
-f\
-G\
-g\
-I\
-L\
-N\
-r\
-s\
-T\
-t\
-U\
-x\
-] \
-source-file\n";
-
-static void
-cleanup(void)
-{
- 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();
- ExitProgram(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
- " -U suppress post-processing of entries",
- " -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);
- }
- ExitProgram(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((char *) 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);
- ExitProgram(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);
- ExitProgram(EXIT_FAILURE);
- }
- return fp;
-}
-
-#if NO_LEAKS
-static void
-free_namelist(char **src)
-{
- if (src != 0) {
- int n;
- for (n = 0; src[n] != 0; ++n)
- free(src[n]);
- free(src);
- }
-}
-#endif
-
-/* Parse the "-e" option-value into a list of names */
-static char **
-make_namelist(char *src)
-{
- 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;
- else
- free(s);
- nn++;
- }
- }
- if (pass == 1) {
- dst = typeCalloc(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(char *, nn + 1);
- }
- }
- if (showsummary && (dst != 0)) {
- fprintf(log_fp, "Entries that will be compiled:\n");
- for (n = 0; dst[n] != 0; n++)
- fprintf(log_fp, "%u:%s\n", n + 1, dst[n]);
- }
- return dst;
-}
-
-static bool
-matches(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? */
- bool literal = FALSE; /* suppress post-processing? */
- int numbers = 0; /* format "%'char'" to/from "%{number}" */
- bool forceresolve = FALSE; /* force resolution */
- bool limited = TRUE;
- char *tversion = (char *) NULL;
- const char *source_file = "terminfo";
- char **namelst = 0;
- char *outdir = (char *) NULL;
- bool check_only = FALSE;
- bool suppress_untranslatable = FALSE;
-
- 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:TUVace:fGgo:rstvwx")) != -1) {
- 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;
- literal = TRUE;
- break;
- case 'R':
- tversion = optarg;
- break;
- case 'T':
- limited = FALSE;
- break;
- case 'U':
- literal = TRUE;
- 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_termtype2;
- _nc_check_termtype2 = 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();
- ExitProgram(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);
- ExitProgram(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();
- ExitProgram(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 || literal, FALSE,
- ((check_only || infodump || capdump)
- ? NULLHOOK
- : immedhook));
-
- /* do use resolution */
- if (check_only || (!infodump && !capdump) || forceresolve) {
- if (!_nc_resolve_uses2(TRUE, literal) && !check_only) {
- cleanup();
- ExitProgram(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-- > 0) {
- if (infodump)
- (void) putchar(fgetc(tmp_fp));
- else
- put_translate(fgetc(tmp_fp));
- }
-
- dump_entry(&qp->tterm, suppress_untranslatable,
- limited, numbers, NULL);
- for (j = 0; j < qp->nuses; j++)
- dump_uses(qp->uses[j].name, !capdump);
- len = show_entry();
- 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");
- }
-#if NO_LEAKS
- free_namelist(namelst);
-#endif
- cleanup();
- ExitProgram(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).
- */
-#undef CUR
-#define CUR tp->
-
-/*
- * Check if the alternate character-set capabilities are consistent.
- */
-static void
-check_acs(TERMTYPE *tp)
-{
- if (VALID_STRING(acs_chars)) {
- const char *boxes = "lmkjtuvwqxn";
- char mapped[256];
- char missing[256];
- const char *p;
- char *q;
-
- memset(mapped, 0, sizeof(mapped));
- for (p = acs_chars; *p != '\0'; p += 2) {
- if (p[1] == '\0') {
- _nc_warning("acsc has odd number of characters");
- break;
- }
- mapped[UChar(p[0])] = p[1];
- }
- if (mapped[UChar('I')] && !mapped[UChar('i')]) {
- _nc_warning("acsc refers to 'I', which is probably an error");
- }
- for (p = boxes, q = missing; *p != '\0'; ++p) {
- if (!mapped[UChar(p[0])]) {
- *q++ = p[0];
- }
- *q = '\0';
- }
- if (*missing != '\0' && strcmp(missing, boxes)) {
- _nc_warning("acsc is missing some line-drawing mapping: %s", missing);
- }
- }
-}
-
-/*
- * Check if the color capabilities are consistent
- */
-static void
-check_colors(TERMTYPE *tp)
-{
- 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);
- PAIRED(set_color_pair, initialize_pair);
-
- if (VALID_STRING(set_foreground)
- && VALID_STRING(set_a_foreground)
- && !_nc_capcmp(set_foreground, set_a_foreground))
- _nc_warning("expected setf/setaf to be different");
-
- if (VALID_STRING(set_background)
- && VALID_STRING(set_a_background)
- && !_nc_capcmp(set_background, set_a_background))
- _nc_warning("expected setb/setab to be different");
-
- /* see: has_colors() */
- if (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)) {
- if (!VALID_STRING(orig_pair) && !VALID_STRING(orig_colors))
- _nc_warning("expected either op/oc string for resetting colors");
- }
-}
-
-static int
-keypad_final(const char *string)
-{
- int result = '\0';
-
- if (VALID_STRING(string)
- && *string++ == '\033'
- && *string++ == 'O'
- && strlen(string) == 1) {
- result = *string;
- }
-
- return result;
-}
-
-static int
-keypad_index(const char *string)
-{
- char *test;
- const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */
- int ch;
- int result = -1;
-
- if ((ch = keypad_final(string)) != '\0') {
- test = strchr(list, ch);
- if (test != 0)
- result = (test - list);
- }
- return result;
-}
-
-/*
- * Do a quick sanity-check for vt100-style keypads to see if the 5-key keypad
- * is mapped inconsistently.
- */
-static void
-check_keypad(TERMTYPE *tp)
-{
- char show[80];
-
- if (VALID_STRING(key_a1) &&
- VALID_STRING(key_a3) &&
- VALID_STRING(key_b2) &&
- VALID_STRING(key_c1) &&
- VALID_STRING(key_c3)) {
- char final[6];
- int list[5];
- int increase = 0;
- int j, k, kk;
- int last;
- int test;
-
- final[0] = keypad_final(key_a1);
- final[1] = keypad_final(key_a3);
- final[2] = keypad_final(key_b2);
- final[3] = keypad_final(key_c1);
- final[4] = keypad_final(key_c3);
- final[5] = '\0';
-
- /* special case: legacy coding using 1,2,3,0,. on the bottom */
- if (!strcmp(final, "qsrpn"))
- return;
-
- list[0] = keypad_index(key_a1);
- list[1] = keypad_index(key_a3);
- list[2] = keypad_index(key_b2);
- list[3] = keypad_index(key_c1);
- list[4] = keypad_index(key_c3);
-
- /* check that they're all vt100 keys */
- for (j = 0; j < 5; ++j) {
- if (list[j] < 0) {
- return;
- }
- }
-
- /* check if they're all in increasing order */
- for (j = 1; j < 5; ++j) {
- if (list[j] > list[j - 1]) {
- ++increase;
- }
- }
- if (increase != 4) {
- show[0] = '\0';
-
- for (j = 0, last = -1; j < 5; ++j) {
- for (k = 0, kk = -1, test = 100; k < 5; ++k) {
- if (list[k] > last &&
- list[k] < test) {
- test = list[k];
- kk = k;
- }
- }
- last = test;
- switch (kk) {
- case 0:
- strcat(show, " ka1");
- break;
- case 1:
- strcat(show, " ka3");
- break;
- case 2:
- strcat(show, " kb2");
- break;
- case 3:
- strcat(show, " kc1");
- break;
- case 4:
- strcat(show, " kc3");
- break;
- }
- }
-
- _nc_warning("vt100 keypad order inconsistent: %s", show);
- }
-
- } else if (VALID_STRING(key_a1) ||
- VALID_STRING(key_a3) ||
- VALID_STRING(key_b2) ||
- VALID_STRING(key_c1) ||
- VALID_STRING(key_c3)) {
- show[0] = '\0';
- if (keypad_index(key_a1) >= 0)
- strcat(show, " ka1");
- if (keypad_index(key_a3) >= 0)
- strcat(show, " ka3");
- if (keypad_index(key_b2) >= 0)
- strcat(show, " kb2");
- if (keypad_index(key_c1) >= 0)
- strcat(show, " kc1");
- if (keypad_index(key_c3) >= 0)
- strcat(show, " kc3");
- if (*show != '\0')
- _nc_warning("vt100 keypad map incomplete:%s", show);
- }
-}
-
-/*
- * 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;
-}
-
-/*
- * Skip a delay altogether, e.g., when comparing a simple string to sgr,
- * the latter may have a worst-case delay on the end.
- */
-static char *
-ignore_delays(char *s)
-{
- int delaying = 0;
-
- do {
- switch (*s) {
- case '$':
- if (delaying == 0)
- delaying = 1;
- break;
- case '<':
- if (delaying == 1)
- delaying = 2;
- break;
- case '\0':
- delaying = 0;
- break;
- default:
- if (delaying) {
- s = skip_delay(s);
- if (*s == '>')
- ++s;
- delaying = 0;
- }
- break;
- }
- if (delaying)
- ++s;
- } while (delaying);
- return s;
-}
-
-/*
- * An sgr string may contain several settings other than the one we're
- * interested in, essentially sgr0 + rmacs + whatever. As long as the
- * "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++;
- }
- /* ignore delays on the end of the string */
- a = ignore_delays(a);
- return ((num != 0) || (*a == 0));
-}
-
-static char *
-check_sgr(TERMTYPE *tp, char *zero, int num, char *cap, const char *name)
-{
- char *test;
-
- _nc_tparm_err = 0;
- test = TPARM_9(set_attributes,
- num == 1,
- num == 2,
- num == 3,
- num == 4,
- num == 5,
- num == 6,
- num == 7,
- num == 8,
- num == 9);
- if (test != 0) {
- if (PRESENT(cap)) {
- if (!similar_sgr(num, test, cap)) {
- _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 (_nc_capcmp(test, zero)) {
- _nc_warning("sgr(%d) present, but not %s", num, name);
- }
- } else if (PRESENT(cap)) {
- _nc_warning("sgr(%d) missing, but %s present", num, name);
- }
- if (_nc_tparm_err)
- _nc_warning("stack error in sgr(%d) string", num);
- return test;
-}
-
-#define CHECK_SGR(num,name) check_sgr(tp, zero, num, name, #name)
-
-#ifdef TRACE
-/*
- * If tic is compiled with TRACE, we'll be able to see the output from the
- * DEBUG() macro. But since it doesn't use traceon(), it always goes to
- * the standard error. Use this function to make it simpler to follow the
- * resulting debug traces.
- */
-static void
-show_where(unsigned level)
-{
- if (_nc_tracing >= DEBUG_LEVEL(level)) {
- char my_name[256];
- _nc_get_type(my_name);
- fprintf(stderr, "\"%s\", line %d, '%s' ",
- _nc_get_source(),
- _nc_curr_line, my_name);
- }
-}
-
-#else
-#define show_where(level) /* nothing */
-#endif
-
-/* other sanity-checks (things that we don't want in the normal
- * logic that reads a terminfo entry)
- */
-static void
-check_termtype(TERMTYPE *tp, bool literal)
-{
- bool conflict = FALSE;
- unsigned j, k;
- char fkeys[STRCOUNT];
-
- /*
- * A terminal entry may contain more than one keycode assigned to
- * a given string (e.g., KEY_END and KEY_LL). But curses will only
- * return one (the last one assigned).
- */
- if (!(_nc_syntax == SYN_TERMCAP && capdump)) {
- memset(fkeys, 0, sizeof(fkeys));
- for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
- char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
- 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 (!_nc_capcmp(a, b)) {
- fkeys[j] = 1;
- fkeys[k] = 1;
- if (first) {
- if (!conflict) {
- _nc_warning("Conflicting key definitions (using the last)");
- conflict = TRUE;
- }
- fprintf(stderr, "... %s is the same as %s",
- keyname((int) _nc_tinfo_fkeys[j].code),
- keyname((int) _nc_tinfo_fkeys[k].code));
- first = FALSE;
- } else {
- fprintf(stderr, ", %s",
- keyname((int) _nc_tinfo_fkeys[k].code));
- }
- }
- }
- 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);
- }
-
- check_acs(tp);
- check_colors(tp);
- check_keypad(tp);
-
- /*
- * 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)
- && !_nc_capcmp(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 = 0;
-
- _nc_tparm_err = 0;
- if (PRESENT(exit_attribute_mode)) {
- zero = strdup(CHECK_SGR(0, exit_attribute_mode));
- } else {
- zero = strdup(TPARM_9(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0));
- }
- if (_nc_tparm_err)
- _nc_warning("stack error in sgr(0) string");
-
- if (zero != 0) {
- CHECK_SGR(1, enter_standout_mode);
- CHECK_SGR(2, enter_underline_mode);
- CHECK_SGR(3, enter_reverse_mode);
- CHECK_SGR(4, enter_blink_mode);
- CHECK_SGR(5, enter_dim_mode);
- CHECK_SGR(6, enter_bold_mode);
- CHECK_SGR(7, enter_secure_mode);
- CHECK_SGR(8, enter_protected_mode);
- CHECK_SGR(9, enter_alt_charset_mode);
- free(zero);
- } else {
- _nc_warning("sgr(0) did not return a value");
- }
- } else if (PRESENT(exit_attribute_mode) &&
- set_attributes != CANCELLED_STRING) {
- if (_nc_syntax == SYN_TERMINFO)
- _nc_warning("missing sgr string");
- }
-
- if (PRESENT(exit_attribute_mode)) {
- char *check_sgr0 = _nc_trim_sgr0(tp);
-
- if (check_sgr0 == 0 || *check_sgr0 == '\0') {
- _nc_warning("trimmed sgr0 is empty");
- } else {
- show_where(2);
- if (check_sgr0 != exit_attribute_mode) {
- DEBUG(2,
- ("will trim sgr0\n\toriginal sgr0=%s\n\ttrimmed sgr0=%s",
- _nc_visbuf2(1, exit_attribute_mode),
- _nc_visbuf2(2, check_sgr0)));
- free(check_sgr0);
- } else {
- DEBUG(2,
- ("will not trim sgr0\n\toriginal sgr0=%s",
- _nc_visbuf(exit_attribute_mode)));
- }
- }
- }
-#ifdef TRACE
- show_where(2);
- if (!auto_right_margin) {
- DEBUG(2,
- ("can write to lower-right directly"));
- } else if (PRESENT(enter_am_mode) && PRESENT(exit_am_mode)) {
- DEBUG(2,
- ("can write to lower-right by suppressing automargin"));
- } else if ((PRESENT(enter_insert_mode) && PRESENT(exit_insert_mode))
- || PRESENT(insert_character) || PRESENT(parm_ich)) {
- DEBUG(2,
- ("can write to lower-right by using inserts"));
- } else {
- DEBUG(2,
- ("cannot write to lower-right"));
- }
-#endif
-
- /*
- * Some standard applications (e.g., vi) and some non-curses
- * 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, literal);
-}
diff --git a/contrib/ncurses/progs/toe.c b/contrib/ncurses/progs/toe.c
deleted file mode 100644
index 38b85cb362ed..000000000000
--- a/contrib/ncurses/progs/toe.c
+++ /dev/null
@@ -1,501 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * toe.c --- table of entries report generator
- */
-
-#include <progs.priv.h>
-
-#include <sys/stat.h>
-
-#if USE_HASHED_DB
-#include <hashed_db.h>
-#endif
-
-MODULE_ID("$Id: toe.c,v 1.48 2008/01/05 20:41:26 tom Exp $")
-
-#define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
-
-const char *_nc_progname;
-
-#if NO_LEAKS
-#undef ExitProgram
-static void ExitProgram(int code) GCC_NORETURN;
-static void
-ExitProgram(int code)
-{
- _nc_free_entries(_nc_head);
- _nc_free_tic(code);
-}
-#endif
-
-#if USE_HASHED_DB
-static bool
-make_db_name(char *dst, const char *src, unsigned limit)
-{
- static const char suffix[] = DBM_SUFFIX;
-
- bool result = FALSE;
- unsigned lens = sizeof(suffix) - 1;
- unsigned size = strlen(src);
- unsigned need = lens + size;
-
- if (need <= limit) {
- if (size >= lens
- && !strcmp(src + size - lens, suffix))
- (void) strcpy(dst, src);
- else
- (void) sprintf(dst, "%s%s", src, suffix);
- result = TRUE;
- }
- return result;
-}
-#endif
-
-static bool
-is_database(const char *path)
-{
- bool result = FALSE;
-#if USE_DATABASE
- if (_nc_is_dir_path(path) && access(path, R_OK | X_OK) == 0) {
- result = TRUE;
- }
-#endif
-#if USE_TERMCAP
- if (_nc_is_file_path(path) && access(path, R_OK) == 0) {
- result = TRUE;
- }
-#endif
-#if USE_HASHED_DB
- if (!result) {
- char filename[PATH_MAX];
- if (_nc_is_file_path(path) && access(path, R_OK) == 0) {
- result = TRUE;
- } else if (make_db_name(filename, path, sizeof(filename))) {
- if (_nc_is_file_path(filename) && access(filename, R_OK) == 0) {
- result = TRUE;
- }
- }
- }
-#endif
- return result;
-}
-
-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 == '\0')
- desc = "(No description)";
-
- (void) printf("%-10s\t%s\n", cn, desc);
-}
-
-#if USE_TERMCAP
-static void
-show_termcap(char *buffer,
- void (*hook) (const char *, TERMTYPE *tp))
-{
- TERMTYPE data;
- char *next = strchr(buffer, ':');
- char *last;
- char *list = buffer;
-
- if (next)
- *next = '\0';
-
- last = strrchr(buffer, '|');
- if (last)
- ++last;
-
- data.term_names = strdup(buffer);
- while ((next = strtok(list, "|")) != 0) {
- if (next != last)
- hook(next, &data);
- list = 0;
- }
- free(data.term_names);
-}
-#endif
-
-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++) {
-#if USE_DATABASE
- if (_nc_is_dir_path(eargv[i])) {
- DIR *termdir;
- 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;
- 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) || !_nc_is_file_path(name_2))
- continue;
-
- status = _nc_read_file_entry(name_2, &lterm);
- if (status <= 0) {
- (void) fflush(stdout);
- (void) fprintf(stderr,
- "%s: couldn't open terminfo file %s.\n",
- _nc_progname, 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);
- }
- _nc_free_termtype(&lterm);
- }
- closedir(entrydir);
- }
- closedir(termdir);
- }
-#if USE_HASHED_DB
- else {
- DB *capdbp;
- char filename[PATH_MAX];
-
- if (make_db_name(filename, eargv[i], sizeof(filename))) {
- if ((capdbp = _nc_db_open(filename, FALSE)) != 0) {
- DBT key, data;
- int code;
-
- code = _nc_db_first(capdbp, &key, &data);
- while (code == 0) {
- TERMTYPE lterm;
- int used;
- char *have;
- char *cn;
-
- if (_nc_db_have_data(&key, &data, &have, &used)) {
- if (_nc_read_termtype(&lterm, have, used) > 0) {
- /* only visit things once, by primary name */
- cn = _nc_first_name(lterm.term_names);
- /* apply the selected hook function */
- (*hook) (cn, &lterm);
- _nc_free_termtype(&lterm);
- }
- }
- code = _nc_db_next(capdbp, &key, &data);
- }
-
- _nc_db_close(capdbp);
- }
- }
- }
-#endif
-#endif
-#if USE_TERMCAP
-#if HAVE_BSD_CGETENT
- char *db_array[2];
- char *buffer = 0;
-
- if (verbosity)
- (void) printf("#\n#%s:\n#\n", eargv[i]);
-
- db_array[0] = eargv[i];
- db_array[1] = 0;
-
- if (cgetfirst(&buffer, db_array)) {
- show_termcap(buffer, hook);
- free(buffer);
- while (cgetnext(&buffer, db_array)) {
- show_termcap(buffer, hook);
- free(buffer);
- }
- }
- cgetclose();
-#else
- /* scan termcap text-file only */
- if (_nc_is_file_path(eargv[i])) {
- char buffer[2048];
- FILE *fp;
-
- if ((fp = fopen(eargv[i], "r")) != 0) {
- while (fgets(buffer, sizeof(buffer), fp) != 0) {
- if (*buffer == '#')
- continue;
- if (isspace(*buffer))
- continue;
- show_termcap(buffer, hook);
- }
- fclose(fp);
- }
- }
-#endif
-#endif
- }
-
- return (EXIT_SUCCESS);
-}
-
-static void
-usage(void)
-{
- (void) fprintf(stderr, "usage: %s [-ahuUV] [-v n] [file...]\n", _nc_progname);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- bool all_dirs = FALSE;
- bool direct_dependencies = FALSE;
- bool invert_dependencies = FALSE;
- bool header = FALSE;
- char *report_file = 0;
- int i;
- int code;
- int this_opt, last_opt = '?';
- int v_opt = 0;
-
- _nc_progname = _nc_rootname(argv[0]);
-
- while ((this_opt = getopt(argc, argv, "0123456789ahu:vU:V")) != -1) {
- /* handle optional parameter */
- if (isdigit(this_opt)) {
- switch (last_opt) {
- case 'v':
- v_opt = (this_opt - '0');
- break;
- default:
- if (isdigit(last_opt))
- v_opt *= 10;
- else
- v_opt = 0;
- v_opt += (this_opt - '0');
- last_opt = this_opt;
- }
- continue;
- }
- switch (this_opt) {
- case 'a':
- all_dirs = TRUE;
- break;
- case 'h':
- header = TRUE;
- break;
- case 'u':
- direct_dependencies = TRUE;
- report_file = optarg;
- break;
- case 'v':
- v_opt = 1;
- break;
- case 'U':
- invert_dependencies = TRUE;
- report_file = optarg;
- break;
- case 'V':
- puts(curses_version());
- ExitProgram(EXIT_SUCCESS);
- default:
- usage();
- }
- }
- set_trace_level(v_opt);
-
- if (report_file != 0) {
- if (freopen(report_file, "r", stdin) == 0) {
- (void) fflush(stdout);
- fprintf(stderr, "%s: can't open %s\n", _nc_progname, report_file);
- ExitProgram(EXIT_FAILURE);
- }
-
- /* parse entries out of the source file */
- _nc_set_source(report_file);
- _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 if (all_dirs) {
- DBDIRS state;
- int offset;
- int pass;
- const char *path;
- char **eargv = 0;
-
- code = EXIT_FAILURE;
- for (pass = 0; pass < 2; ++pass) {
- unsigned count = 0;
-
- _nc_first_db(&state, &offset);
- while ((path = _nc_next_db(&state, &offset)) != 0) {
- if (!is_database(path)) {
- ;
- } else if (eargv != 0) {
- unsigned n;
- int found = FALSE;
-
- /* eliminate duplicates */
- for (n = 0; n < count; ++n) {
- if (!strcmp(path, eargv[n])) {
- found = TRUE;
- break;
- }
- }
- if (!found) {
- eargv[count] = strdup(path);
- ++count;
- }
- } else {
- ++count;
- }
- }
- if (!pass) {
- eargv = typeCalloc(char *, count + 1);
- } else {
- code = typelist((int) count, eargv, header, deschook);
- while (count-- > 0)
- free(eargv[count]);
- free(eargv);
- }
- }
- } else {
- DBDIRS state;
- int offset;
- const char *path;
- char *eargv[3];
- int count = 0;
-
- _nc_first_db(&state, &offset);
- while ((path = _nc_next_db(&state, &offset)) != 0) {
- if (is_database(path)) {
- eargv[count++] = strdup(path);
- break;
- }
- }
- eargv[count] = 0;
-
- code = typelist(count, eargv, header, deschook);
-
- while (count-- > 0)
- free(eargv[count]);
- }
- _nc_last_db();
-
- ExitProgram(code);
-}
diff --git a/contrib/ncurses/progs/tput.c b/contrib/ncurses/progs/tput.c
deleted file mode 100644
index 8745cc9977ad..000000000000
--- a/contrib/ncurses/progs/tput.c
+++ /dev/null
@@ -1,438 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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.
- */
-
-#define USE_LIBTINFO
-#include <progs.priv.h>
-
-#if !PURE_TERMINFO
-#include <termsort.c>
-#endif
-#include <transform.h>
-
-MODULE_ID("$Id: tput.c,v 1.41 2007/10/13 20:34:16 tom Exp $")
-
-#define PUTS(s) fputs(s, stdout)
-#define PUTCHAR(c) putchar(c)
-#define FLUSH fflush(stdout)
-
-typedef enum {
- Numbers = 0
- ,Num_Str
- ,Num_Str_Str
-} TParams;
-
-static char *prg_name;
-static bool is_init = FALSE;
-static bool is_reset = FALSE;
-
-static void
-quit(int status, const char *fmt,...)
-{
- va_list argp;
-
- va_start(argp, fmt);
- fprintf(stderr, "%s: ", prg_name);
- vfprintf(stderr, fmt, argp);
- fprintf(stderr, "\n");
- va_end(argp);
- ExitProgram(status);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: %s [-V] [-S] [-T term] capname\n", prg_name);
- ExitProgram(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;
-
- 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_2(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_1(set_left_margin_parm, 0));
- PUTS(TPARM_1(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_1(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_1(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_3string != 0) {
- PUTS(init_3string);
- }
- 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, "unknown terminfo capability '%s'", name);
- } else if (s != ABSENT_STRING) {
- if (argc > 1) {
- int k;
- int popcount;
- long numbers[1 + NUM_PARM];
- char *strings[1 + NUM_PARM];
- char *p_is_s[NUM_PARM];
-
- /* 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 <= NUM_PARM; k++) {
- numbers[k] = 0;
- strings[k] = 0;
- }
-
- switch (tparm_type(name)) {
- case Num_Str:
- s = TPARM_2(s, numbers[1], strings[2]);
- break;
- case Num_Str_Str:
- s = TPARM_3(s, numbers[1], strings[2], strings[3]);
- break;
- case Numbers:
- default:
- (void) _nc_tparm_analyze(s, p_is_s, &popcount);
-#define myParam(n) (p_is_s[n - 1] != 0 ? ((long) strings[n]) : numbers[n])
- s = TPARM_9(s,
- myParam(1),
- myParam(2),
- myParam(3),
- myParam(4),
- myParam(5),
- myParam(6),
- myParam(7),
- myParam(8),
- myParam(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;
-
- check_aliases(prg_name = _nc_rootname(argv[0]));
-
- term = getenv("TERM");
-
- while ((c = getopt(argc, argv, "ST:V")) != -1) {
- switch (c) {
- case 'S':
- cmdline = FALSE;
- break;
- case 'T':
- use_env(FALSE);
- term = optarg;
- break;
- case 'V':
- puts(curses_version());
- ExitProgram(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();
- ExitProgram(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
- && tput(argnum, argvec) != 0) {
- if (result == 0)
- result = 4; /* will return value >4 */
- ++result;
- }
- }
-
- ExitProgram(result);
-}
diff --git a/contrib/ncurses/progs/tset.c b/contrib/ncurses/progs/tset.c
deleted file mode 100644
index 3d6091224979..000000000000
--- a/contrib/ncurses/progs/tset.c
+++ /dev/null
@@ -1,1305 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or 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 *
- ****************************************************************************/
-
-/*
- * 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 USE_LIBTINFO
-#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 <dump_entry.h>
-#include <transform.h>
-
-MODULE_ID("$Id: tset.c,v 1.70 2007/10/13 22:22:04 tom Exp $")
-
-extern char **environ;
-
-#undef CTRL
-#define CTRL(x) ((x) & 0x1f)
-
-const char *_nc_progname = "tset";
-
-static TTY mode, oldmode, original;
-
-static bool opt_c; /* set control-chars */
-static bool opt_w; /* set window-size */
-
-static bool can_restore = FALSE;
-static bool isreset = FALSE; /* invoked as reset */
-static int terasechar = -1; /* new erase character */
-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);
- ExitProgram(EXIT_FAILURE);
- /* NOTREACHED */
-}
-
-static void
-err(const char *fmt,...)
-{
- va_list ap;
- va_start(ap, fmt);
- (void) fprintf(stderr, "%s: ", _nc_progname);
- (void) vfprintf(stderr, fmt, ap);
- va_end(ap);
- exit_error();
- /* NOTREACHED */
-}
-
-static void
-failed(const char *msg)
-{
- char temp[BUFSIZ];
- unsigned len = strlen(_nc_progname) + 2;
-
- if (len < sizeof(temp) - 12) {
- strcpy(temp, _nc_progname);
- strcat(temp, ": ");
- } else {
- strcpy(temp, "tset: ");
- }
- perror(strncat(temp, msg, sizeof(temp) - strlen(temp) - 2));
- exit_error();
- /* NOTREACHED */
-}
-
-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 = (MAP *) 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 && !_nc_is_abs_path(p)) {
- /* 'unsetenv("TERMCAP")' is not portable.
- * The 'environ' array is better.
- */
- int n;
- for (n = 0; environ[n] != 0; n++) {
- if (!strncmp("TERMCAP=", environ[n], 8)) {
- 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, "%s: unknown terminal type %s\n",
- _nc_progname, ttype);
- ttype = 0;
- } else {
- (void) fprintf(stderr,
- "%s: can't initialize terminal type %s (error %d)\n",
- _nc_progname, 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 unless the
- * commonly-altered ones are defined.
- */
-#if !(defined(CERASE) && defined(CINTR) && defined(CKILL) && defined(CQUIT))
-#undef CEOF
-#undef CERASE
-#undef CINTR
-#undef CKILL
-#undef CLNEXT
-#undef CRPRNT
-#undef CQUIT
-#undef CSTART
-#undef CSTOP
-#undef CSUSP
-#endif
-
-/* control-character defaults */
-#ifndef CEOF
-#define CEOF CTRL('D')
-#endif
-#ifndef CERASE
-#define CERASE CTRL('H')
-#endif
-#ifndef CINTR
-#define CINTR 127 /* ^? */
-#endif
-#ifndef CKILL
-#define CKILL CTRL('U')
-#endif
-#ifndef CLNEXT
-#define CLNEXT CTRL('v')
-#endif
-#ifndef CRPRNT
-#define CRPRNT CTRL('r')
-#endif
-#ifndef CQUIT
-#define CQUIT CTRL('\\')
-#endif
-#ifndef CSTART
-#define CSTART CTRL('Q')
-#endif
-#ifndef CSTOP
-#define CSTOP CTRL('S')
-#endif
-#ifndef CSUSP
-#define CSUSP CTRL('Z')
-#endif
-
-#if defined(_POSIX_VDISABLE)
-#define DISABLED(val) (((_POSIX_VDISABLE != -1) \
- && ((val) == _POSIX_VDISABLE)) \
- || ((val) <= 0))
-#else
-#define DISABLED(val) ((int)(val) <= 0)
-#endif
-
-#define CHK(val, dft) (DISABLED(val) ? 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
-#endif
-#ifdef CRDLY
- | CRDLY
-#endif
-#ifdef TABDLY
- | TABDLY
-#endif
-#ifdef BSDLY
- | BSDLY
-#endif
-#ifdef VTDLY
- | VTDLY
-#endif
-#ifdef FFDLY
- | 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 (DISABLED(mode.c_cc[VERASE]) || terasechar >= 0)
- mode.c_cc[VERASE] = terasechar >= 0 ? terasechar : default_erase();
-
- if (DISABLED(mode.c_cc[VINTR]) || intrchar >= 0)
- mode.c_cc[VINTR] = intrchar >= 0 ? intrchar : CINTR;
-
- if (DISABLED(mode.c_cc[VKILL]) || tkillchar >= 0)
- mode.c_cc[VKILL] = tkillchar >= 0 ? tkillchar : CKILL;
-#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(void)
-{
- 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 than .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");
-
- if (DISABLED(newer))
- (void) fprintf(stderr, "undef.\n");
- /*
- * Check 'delete' before 'backspace', since the key_backspace value
- * is ambiguous.
- */
- else 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", UChar(newer), UChar(newer));
- } else
- (void) fprintf(stderr, "%c.\n", UChar(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(void)
-{
- static const char *tbl[] =
- {
- ""
- ,"Options:"
- ," -c set control characters"
- ," -e ch erase character"
- ," -I no initialization strings"
- ," -i ch interrupt character"
- ," -k ch kill character"
- ," -m mapping map identifier to type"
- ," -Q do not output control key settings"
- ," -r display term on stderr"
- ," -s output TERM set command"
- ," -V print curses-version"
- ," -w set window-size"
- };
- unsigned n;
- (void) fprintf(stderr, "Usage: %s [options] [terminal]\n", _nc_progname);
- for (n = 0; n < sizeof(tbl) / sizeof(tbl[0]); ++n)
- fprintf(stderr, "%s\n", tbl[n]);
- exit_error();
- /* NOTREACHED */
-}
-
-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;
-
- obsolete(argv);
- noinit = noset = quiet = Sflag = sflag = showterm = 0;
- while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != -1) {
- switch (ch) {
- case 'c': /* set control-chars */
- opt_c = TRUE;
- 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 'q': /* display term only */
- noset = 1;
- break;
- case 'r': /* display term on stderr */
- showterm = 1;
- break;
- case 'S': /* OBSOLETE: output TERM & TERMCAP */
- Sflag = 1;
- break;
- case 's': /* output TERM set command */
- sflag = 1;
- break;
- case 'V': /* print curses-version */
- puts(curses_version());
- ExitProgram(EXIT_SUCCESS);
- case 'w': /* set window-size */
- opt_w = TRUE;
- break;
- case '?':
- default:
- usage();
- }
- }
-
- _nc_progname = _nc_rootname(*argv);
- argc -= optind;
- argv += optind;
-
- if (argc > 1)
- usage();
-
- if (!opt_c && !opt_w)
- opt_c = opt_w = TRUE;
-
- if (GET_TTY(STDERR_FILENO, &mode) < 0)
- failed("standard error");
- can_restore = TRUE;
- original = oldmode = mode;
-#ifdef TERMIOS
- ospeed = cfgetospeed(&mode);
-#else
- ospeed = mode.sg_ospeed;
-#endif
-
- if (!strcmp(_nc_progname, PROG_RESET)) {
- isreset = TRUE;
- reset_mode();
- }
-
- ttype = get_termcap_entry(*argv);
-
- if (!noset) {
- tcolumns = columns;
- tlines = lines;
-
-#if defined(TIOCGWINSZ) && defined(TIOCSWINSZ)
- if (opt_w) {
- /* Set window size */
- (void) ioctl(STDERR_FILENO, TIOCGWINSZ, &win);
- if (win.ws_row == 0 && win.ws_col == 0 &&
- tlines > 0 && tcolumns > 0) {
- win.ws_row = tlines;
- win.ws_col = tcolumns;
- (void) ioctl(STDERR_FILENO, TIOCSWINSZ, &win);
- }
- }
-#endif
- if (opt_c) {
- 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, CKILL);
- report("Interrupt", VINTR, CINTR);
- }
-#endif
- }
-
- if (Sflag)
- err("The -S option is not supported under terminfo.");
-
- if (sflag) {
- int len;
- char *var;
- char *leaf;
- /*
- * Figure out what shell we're using. A hack, we look for an
- * environmental variable SHELL ending in "csh".
- */
- if ((var = getenv("SHELL")) != 0
- && ((len = strlen(leaf = _nc_basename(var))) >= 3)
- && !strcmp(leaf + len - 3, "csh"))
- p = "set noglob;\nsetenv TERM %s;\nunset noglob;\n";
- else
- p = "TERM=%s;\n";
- (void) printf(p, ttype);
- }
-
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/contrib/ncurses/tar-copy.sh b/contrib/ncurses/tar-copy.sh
deleted file mode 100755
index 3df1bc11169e..000000000000
--- a/contrib/ncurses/tar-copy.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-# $Id: tar-copy.sh,v 1.5 2003/10/25 14:40:07 tom Exp $
-##############################################################################
-# Copyright (c) 1998,2003 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey
-#
-# 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$$
-
-cd $2
-TEST=`ls -d $1 2>/dev/null`
-if test -z "$TEST"
-then
- echo "... no match for \"$1\" in $2"
-else
- echo "... installing files matching \"$1\" in $2"
- trap "rm -f $TMP" 0 1 2 5 15
- 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
-fi