From 7977961487d57da48a9073f8eb75e61cc48782fe Mon Sep 17 00:00:00 2001 From: rafan Date: Sun, 9 Nov 2008 09:06:04 +0000 Subject: - Flatten the vendor area --- contrib/ncurses/ANNOUNCE | 463 - contrib/ncurses/AUTHORS | 38 - contrib/ncurses/INSTALL | 1619 -- contrib/ncurses/MANIFEST | 1024 - contrib/ncurses/Makefile.in | 97 - contrib/ncurses/Makefile.os2 | 259 - contrib/ncurses/NEWS | 8571 -------- contrib/ncurses/README | 210 - contrib/ncurses/README.emx | 72 - contrib/ncurses/TO-DO | 201 - contrib/ncurses/aclocal.m4 | 5306 ----- contrib/ncurses/announce.html.in | 600 - contrib/ncurses/config.guess | 1528 -- contrib/ncurses/config.sub | 1662 -- contrib/ncurses/configure | 17673 --------------- contrib/ncurses/configure.in | 1782 -- contrib/ncurses/convert_configure.pl | 119 - contrib/ncurses/dist.mk | 160 - contrib/ncurses/doc/hackguide.doc | 682 - .../doc/html/NCURSES-Programming-HOWTO.html | 6413 ------ contrib/ncurses/doc/html/announce.html | 600 - contrib/ncurses/doc/html/hackguide.html | 914 - contrib/ncurses/doc/html/ncurses-intro.html | 2722 --- contrib/ncurses/doc/ncurses-intro.doc | 2501 --- contrib/ncurses/form/Makefile.in | 165 - contrib/ncurses/form/READ.ME | 42 - contrib/ncurses/form/f_trace.c | 70 - contrib/ncurses/form/fld_arg.c | 98 - contrib/ncurses/form/fld_attr.c | 119 - contrib/ncurses/form/fld_current.c | 137 - contrib/ncurses/form/fld_def.c | 399 - contrib/ncurses/form/fld_dup.c | 101 - contrib/ncurses/form/fld_ftchoice.c | 65 - contrib/ncurses/form/fld_ftlink.c | 87 - contrib/ncurses/form/fld_info.c | 109 - contrib/ncurses/form/fld_just.c | 86 - contrib/ncurses/form/fld_link.c | 96 - contrib/ncurses/form/fld_max.c | 77 - contrib/ncurses/form/fld_move.c | 64 - contrib/ncurses/form/fld_newftyp.c | 135 - contrib/ncurses/form/fld_opts.c | 138 - contrib/ncurses/form/fld_pad.c | 85 - contrib/ncurses/form/fld_page.c | 82 - contrib/ncurses/form/fld_stat.c | 79 - contrib/ncurses/form/fld_type.c | 97 - contrib/ncurses/form/fld_user.c | 72 - contrib/ncurses/form/form.h | 403 - contrib/ncurses/form/form.priv.h | 252 - contrib/ncurses/form/frm_cursor.c | 70 - contrib/ncurses/form/frm_data.c | 193 - contrib/ncurses/form/frm_def.c | 409 - contrib/ncurses/form/frm_driver.c | 4581 ---- contrib/ncurses/form/frm_hook.c | 142 - contrib/ncurses/form/frm_opts.c | 127 - contrib/ncurses/form/frm_page.c | 106 - contrib/ncurses/form/frm_post.c | 124 - contrib/ncurses/form/frm_req_name.c | 170 - contrib/ncurses/form/frm_scale.c | 66 - contrib/ncurses/form/frm_sub.c | 77 - contrib/ncurses/form/frm_user.c | 72 - contrib/ncurses/form/frm_win.c | 77 - contrib/ncurses/form/fty_alnum.c | 167 - contrib/ncurses/form/fty_alpha.c | 167 - contrib/ncurses/form/fty_enum.c | 338 - contrib/ncurses/form/fty_int.c | 246 - contrib/ncurses/form/fty_ipv4.c | 105 - contrib/ncurses/form/fty_num.c | 290 - contrib/ncurses/form/fty_regex.c | 306 - contrib/ncurses/form/headers | 32 - contrib/ncurses/form/llib-lform | 734 - contrib/ncurses/form/llib-lformw | 740 - contrib/ncurses/form/modules | 76 - contrib/ncurses/include/Caps | 1264 -- contrib/ncurses/include/Caps.aix4 | 1255 -- contrib/ncurses/include/Caps.hpux11 | 1278 -- contrib/ncurses/include/Caps.keys | 1354 -- contrib/ncurses/include/Caps.osf1r5 | 1274 -- contrib/ncurses/include/Caps.uwin | 1090 - contrib/ncurses/include/MKhashsize.sh | 42 - contrib/ncurses/include/MKkey_defs.sh | 182 - contrib/ncurses/include/MKncurses_def.sh | 80 - contrib/ncurses/include/MKparametrized.sh | 62 - contrib/ncurses/include/MKterm.h.awk.in | 318 - contrib/ncurses/include/Makefile.in | 126 - contrib/ncurses/include/capdefaults.c | 84 - contrib/ncurses/include/curses.h.in | 1230 -- contrib/ncurses/include/curses.tail | 179 - contrib/ncurses/include/curses.wide | 252 - contrib/ncurses/include/edit_cfg.sh | 67 - contrib/ncurses/include/hashed_db.h | 67 - contrib/ncurses/include/headers | 42 - contrib/ncurses/include/nc_alloc.h | 104 - contrib/ncurses/include/nc_panel.h | 66 - contrib/ncurses/include/nc_tparm.h | 65 - contrib/ncurses/include/ncurses_cfg.hin | 72 - contrib/ncurses/include/ncurses_defs | 203 - contrib/ncurses/include/ncurses_dll.h | 86 - contrib/ncurses/include/term_entry.h | 168 - contrib/ncurses/include/termcap.h.in | 75 - contrib/ncurses/include/tic.h | 332 - contrib/ncurses/include/unctrl.h.in | 63 - contrib/ncurses/install-sh | 294 - contrib/ncurses/man/MKterminfo.sh | 110 - contrib/ncurses/man/Makefile.in | 80 - contrib/ncurses/man/captoinfo.1m | 193 - contrib/ncurses/man/clear.1 | 53 - contrib/ncurses/man/curs_add_wch.3x | 135 - contrib/ncurses/man/curs_add_wchstr.3x | 97 - contrib/ncurses/man/curs_addch.3x | 181 - contrib/ncurses/man/curs_addchstr.3x | 99 - contrib/ncurses/man/curs_addstr.3x | 97 - contrib/ncurses/man/curs_addwstr.3x | 94 - contrib/ncurses/man/curs_attr.3x | 270 - contrib/ncurses/man/curs_beep.3x | 63 - contrib/ncurses/man/curs_bkgd.3x | 98 - contrib/ncurses/man/curs_bkgrnd.3x | 106 - contrib/ncurses/man/curs_border.3x | 155 - contrib/ncurses/man/curs_border_set.3x | 207 - contrib/ncurses/man/curs_clear.3x | 121 - contrib/ncurses/man/curs_color.3x | 248 - contrib/ncurses/man/curs_delch.3x | 70 - contrib/ncurses/man/curs_deleteln.3x | 91 - contrib/ncurses/man/curs_extend.3x | 85 - contrib/ncurses/man/curs_get_wch.3x | 161 - contrib/ncurses/man/curs_get_wstr.3x | 178 - contrib/ncurses/man/curs_getcchar.3x | 144 - contrib/ncurses/man/curs_getch.3x | 328 - contrib/ncurses/man/curs_getstr.3x | 122 - contrib/ncurses/man/curs_getyx.3x | 106 - contrib/ncurses/man/curs_in_wch.3x | 68 - contrib/ncurses/man/curs_in_wchstr.3x | 122 - contrib/ncurses/man/curs_inch.3x | 77 - contrib/ncurses/man/curs_inchstr.3x | 101 - contrib/ncurses/man/curs_initscr.3x | 132 - contrib/ncurses/man/curs_inopts.3x | 242 - contrib/ncurses/man/curs_ins_wch.3x | 65 - contrib/ncurses/man/curs_ins_wstr.3x | 108 - contrib/ncurses/man/curs_insch.3x | 74 - contrib/ncurses/man/curs_insstr.3x | 101 - contrib/ncurses/man/curs_instr.3x | 89 - contrib/ncurses/man/curs_inwstr.3x | 93 - contrib/ncurses/man/curs_kernel.3x | 186 - contrib/ncurses/man/curs_legacy.3x | 93 - contrib/ncurses/man/curs_mouse.3x | 310 - contrib/ncurses/man/curs_move.3x | 69 - contrib/ncurses/man/curs_opaque.3x | 133 - contrib/ncurses/man/curs_outopts.3x | 222 - contrib/ncurses/man/curs_overlay.3x | 87 - contrib/ncurses/man/curs_pad.3x | 162 - contrib/ncurses/man/curs_print.3x | 74 - contrib/ncurses/man/curs_printw.3x | 94 - contrib/ncurses/man/curs_refresh.3x | 144 - contrib/ncurses/man/curs_scanw.3x | 97 - contrib/ncurses/man/curs_scr_dump.3x | 102 - contrib/ncurses/man/curs_scroll.3x | 96 - contrib/ncurses/man/curs_slk.3x | 205 - contrib/ncurses/man/curs_termattrs.3x | 134 - contrib/ncurses/man/curs_termcap.3x | 167 - contrib/ncurses/man/curs_terminfo.3x | 336 - contrib/ncurses/man/curs_threads.3x | 603 - contrib/ncurses/man/curs_touch.3x | 116 - contrib/ncurses/man/curs_trace.3x | 153 - contrib/ncurses/man/curs_util.3x | 226 - contrib/ncurses/man/curs_window.3x | 188 - contrib/ncurses/man/default_colors.3x | 144 - contrib/ncurses/man/define_key.3x | 65 - contrib/ncurses/man/form.3x | 208 - contrib/ncurses/man/form_cursor.3x | 75 - contrib/ncurses/man/form_data.3x | 63 - contrib/ncurses/man/form_driver.3x | 324 - contrib/ncurses/man/form_field.3x | 98 - contrib/ncurses/man/form_field_attributes.3x | 92 - contrib/ncurses/man/form_field_buffer.3x | 112 - contrib/ncurses/man/form_field_info.3x | 85 - contrib/ncurses/man/form_field_just.3x | 78 - contrib/ncurses/man/form_field_new.3x | 106 - contrib/ncurses/man/form_field_opts.3x | 124 - contrib/ncurses/man/form_field_userptr.3x | 69 - contrib/ncurses/man/form_field_validation.3x | 144 - contrib/ncurses/man/form_fieldtype.3x | 148 - contrib/ncurses/man/form_hook.3x | 100 - contrib/ncurses/man/form_new.3x | 89 - contrib/ncurses/man/form_new_page.3x | 77 - contrib/ncurses/man/form_opts.3x | 90 - contrib/ncurses/man/form_page.3x | 96 - contrib/ncurses/man/form_post.3x | 91 - contrib/ncurses/man/form_requestname.3x | 70 - contrib/ncurses/man/form_userptr.3x | 69 - contrib/ncurses/man/form_win.3x | 95 - contrib/ncurses/man/infocmp.1m | 437 - contrib/ncurses/man/infotocap.1m | 77 - contrib/ncurses/man/key_defined.3x | 60 - contrib/ncurses/man/keybound.3x | 64 - contrib/ncurses/man/keyok.3x | 63 - contrib/ncurses/man/legacy_coding.3x | 82 - contrib/ncurses/man/make_sed.sh | 89 - contrib/ncurses/man/man_db.renames | 176 - contrib/ncurses/man/manlinks.sed | 102 - contrib/ncurses/man/menu.3x | 193 - contrib/ncurses/man/menu_attributes.3x | 100 - contrib/ncurses/man/menu_cursor.3x | 73 - contrib/ncurses/man/menu_driver.3x | 201 - contrib/ncurses/man/menu_format.3x | 87 - contrib/ncurses/man/menu_hook.3x | 101 - contrib/ncurses/man/menu_items.3x | 93 - contrib/ncurses/man/menu_mark.3x | 86 - contrib/ncurses/man/menu_new.3x | 86 - contrib/ncurses/man/menu_opts.3x | 104 - contrib/ncurses/man/menu_pattern.3x | 91 - contrib/ncurses/man/menu_post.3x | 91 - contrib/ncurses/man/menu_requestname.3x | 71 - contrib/ncurses/man/menu_spacing.3x | 84 - contrib/ncurses/man/menu_userptr.3x | 69 - contrib/ncurses/man/menu_win.3x | 95 - contrib/ncurses/man/mitem_current.3x | 102 - contrib/ncurses/man/mitem_name.3x | 65 - contrib/ncurses/man/mitem_new.3x | 90 - contrib/ncurses/man/mitem_opts.3x | 84 - contrib/ncurses/man/mitem_userptr.3x | 70 - contrib/ncurses/man/mitem_value.3x | 76 - contrib/ncurses/man/mitem_visible.3x | 59 - contrib/ncurses/man/ncurses.3x | 1141 - contrib/ncurses/man/panel.3x | 190 - contrib/ncurses/man/resizeterm.3x | 100 - contrib/ncurses/man/term.5 | 283 - contrib/ncurses/man/term.7 | 204 - contrib/ncurses/man/terminfo.head | 107 - contrib/ncurses/man/terminfo.tail | 1703 -- contrib/ncurses/man/tic.1m | 331 - contrib/ncurses/man/toe.1m | 107 - contrib/ncurses/man/tput.1 | 325 - contrib/ncurses/man/tset.1 | 288 - contrib/ncurses/man/wresize.3x | 64 - contrib/ncurses/menu/Makefile.in | 167 - contrib/ncurses/menu/READ.ME | 42 - contrib/ncurses/menu/eti.h | 54 - contrib/ncurses/menu/headers | 33 - contrib/ncurses/menu/llib-lmenu | 545 - contrib/ncurses/menu/llib-lmenuw | 547 - contrib/ncurses/menu/m_attribs.c | 143 - contrib/ncurses/menu/m_cursor.c | 112 - contrib/ncurses/menu/m_driver.c | 555 - contrib/ncurses/menu/m_format.c | 131 - contrib/ncurses/menu/m_global.c | 596 - contrib/ncurses/menu/m_hook.c | 151 - contrib/ncurses/menu/m_item_cur.c | 113 - contrib/ncurses/menu/m_item_nam.c | 72 - contrib/ncurses/menu/m_item_new.c | 274 - contrib/ncurses/menu/m_item_opt.c | 159 - contrib/ncurses/menu/m_item_top.c | 107 - contrib/ncurses/menu/m_item_use.c | 76 - contrib/ncurses/menu/m_item_val.c | 104 - contrib/ncurses/menu/m_item_vis.c | 68 - contrib/ncurses/menu/m_items.c | 110 - contrib/ncurses/menu/m_new.c | 114 - contrib/ncurses/menu/m_opts.c | 183 - contrib/ncurses/menu/m_pad.c | 95 - contrib/ncurses/menu/m_pattern.c | 124 - contrib/ncurses/menu/m_post.c | 377 - contrib/ncurses/menu/m_req_name.c | 125 - contrib/ncurses/menu/m_scale.c | 73 - contrib/ncurses/menu/m_spacing.c | 108 - contrib/ncurses/menu/m_sub.c | 86 - contrib/ncurses/menu/m_trace.c | 77 - contrib/ncurses/menu/m_userptr.c | 76 - contrib/ncurses/menu/m_win.c | 86 - contrib/ncurses/menu/menu.h | 256 - contrib/ncurses/menu/menu.priv.h | 152 - contrib/ncurses/menu/mf_common.h | 95 - contrib/ncurses/menu/modules | 63 - contrib/ncurses/misc/Makefile.in | 152 - contrib/ncurses/misc/chkdef.cmd | 114 - contrib/ncurses/misc/cleantic.cmd | 44 - contrib/ncurses/misc/cmpdef.cmd | 134 - contrib/ncurses/misc/csort | 36 - contrib/ncurses/misc/emx.src | 885 - contrib/ncurses/misc/form.def | 101 - contrib/ncurses/misc/form.ref | 106 - contrib/ncurses/misc/gen_edit.sh | 58 - contrib/ncurses/misc/jpf-indent | 119 - contrib/ncurses/misc/makedef.cmd | 179 - contrib/ncurses/misc/makellib | 167 - contrib/ncurses/misc/menu.def | 81 - contrib/ncurses/misc/menu.ref | 73 - contrib/ncurses/misc/ncu-indent | 130 - contrib/ncurses/misc/ncurses-config.in | 161 - contrib/ncurses/misc/ncurses.def | 447 - contrib/ncurses/misc/ncurses.ref | 572 - contrib/ncurses/misc/panel.def | 20 - contrib/ncurses/misc/panel.ref | 18 - contrib/ncurses/misc/run_tic.in | 174 - contrib/ncurses/misc/shlib | 141 - contrib/ncurses/misc/tabset/std | 1 - contrib/ncurses/misc/tabset/stdcrt | 1 - contrib/ncurses/misc/tabset/vt100 | 3 - contrib/ncurses/misc/tabset/vt300 | 3 - contrib/ncurses/misc/tdlint | 113 - contrib/ncurses/misc/terminfo.src | 21691 ------------------- contrib/ncurses/mk-0th.awk | 109 - contrib/ncurses/mk-1st.awk | 474 - contrib/ncurses/mk-2nd.awk | 146 - contrib/ncurses/mk-hdr.awk | 107 - contrib/ncurses/mkdirs.sh | 51 - contrib/ncurses/ncurses/Makefile.in | 284 - contrib/ncurses/ncurses/README | 31 - contrib/ncurses/ncurses/README.IZ | 95 - contrib/ncurses/ncurses/SigAction.h | 109 - contrib/ncurses/ncurses/base/MKkeyname.awk | 156 - contrib/ncurses/ncurses/base/MKlib_gen.sh | 426 - contrib/ncurses/ncurses/base/MKunctrl.awk | 185 - contrib/ncurses/ncurses/base/README | 35 - contrib/ncurses/ncurses/base/define_key.c | 70 - contrib/ncurses/ncurses/base/key_defined.c | 78 - contrib/ncurses/ncurses/base/keybound.c | 51 - contrib/ncurses/ncurses/base/keyok.c | 78 - contrib/ncurses/ncurses/base/legacy_coding.c | 48 - contrib/ncurses/ncurses/base/lib_addch.c | 545 - contrib/ncurses/ncurses/base/lib_addstr.c | 245 - contrib/ncurses/ncurses/base/lib_beep.c | 76 - contrib/ncurses/ncurses/base/lib_bkgd.c | 156 - contrib/ncurses/ncurses/base/lib_box.c | 128 - contrib/ncurses/ncurses/base/lib_chgat.c | 68 - contrib/ncurses/ncurses/base/lib_clear.c | 56 - contrib/ncurses/ncurses/base/lib_clearok.c | 55 - contrib/ncurses/ncurses/base/lib_clrbot.c | 76 - contrib/ncurses/ncurses/base/lib_clreol.c | 91 - contrib/ncurses/ncurses/base/lib_color.c | 593 - contrib/ncurses/ncurses/base/lib_colorset.c | 60 - contrib/ncurses/ncurses/base/lib_delch.c | 69 - contrib/ncurses/ncurses/base/lib_delwin.c | 89 - contrib/ncurses/ncurses/base/lib_dft_fgbg.c | 75 - contrib/ncurses/ncurses/base/lib_echo.c | 61 - contrib/ncurses/ncurses/base/lib_endwin.c | 60 - contrib/ncurses/ncurses/base/lib_erase.c | 92 - contrib/ncurses/ncurses/base/lib_flash.c | 73 - contrib/ncurses/ncurses/base/lib_freeall.c | 146 - contrib/ncurses/ncurses/base/lib_getch.c | 611 - contrib/ncurses/ncurses/base/lib_getstr.c | 224 - contrib/ncurses/ncurses/base/lib_hline.c | 80 - contrib/ncurses/ncurses/base/lib_immedok.c | 54 - contrib/ncurses/ncurses/base/lib_inchstr.c | 64 - contrib/ncurses/ncurses/base/lib_initscr.c | 97 - contrib/ncurses/ncurses/base/lib_insch.c | 155 - contrib/ncurses/ncurses/base/lib_insdel.c | 63 - contrib/ncurses/ncurses/base/lib_insnstr.c | 68 - contrib/ncurses/ncurses/base/lib_instr.c | 112 - contrib/ncurses/ncurses/base/lib_isendwin.c | 51 - contrib/ncurses/ncurses/base/lib_leaveok.c | 55 - contrib/ncurses/ncurses/base/lib_mouse.c | 1367 -- contrib/ncurses/ncurses/base/lib_move.c | 60 - contrib/ncurses/ncurses/base/lib_mvwin.c | 114 - contrib/ncurses/ncurses/base/lib_newterm.c | 217 - contrib/ncurses/ncurses/base/lib_newwin.c | 322 - contrib/ncurses/ncurses/base/lib_nl.c | 79 - contrib/ncurses/ncurses/base/lib_overlay.c | 211 - contrib/ncurses/ncurses/base/lib_pad.c | 322 - contrib/ncurses/ncurses/base/lib_printw.c | 138 - contrib/ncurses/ncurses/base/lib_redrawln.c | 84 - contrib/ncurses/ncurses/base/lib_refresh.c | 288 - contrib/ncurses/ncurses/base/lib_restart.c | 99 - contrib/ncurses/ncurses/base/lib_scanw.c | 106 - contrib/ncurses/ncurses/base/lib_screen.c | 214 - contrib/ncurses/ncurses/base/lib_scroll.c | 150 - contrib/ncurses/ncurses/base/lib_scrollok.c | 55 - contrib/ncurses/ncurses/base/lib_scrreg.c | 60 - contrib/ncurses/ncurses/base/lib_set_term.c | 655 - contrib/ncurses/ncurses/base/lib_slk.c | 219 - contrib/ncurses/ncurses/base/lib_slkatr_set.c | 59 - contrib/ncurses/ncurses/base/lib_slkatrof.c | 58 - contrib/ncurses/ncurses/base/lib_slkatron.c | 58 - contrib/ncurses/ncurses/base/lib_slkatrset.c | 53 - contrib/ncurses/ncurses/base/lib_slkattr.c | 56 - contrib/ncurses/ncurses/base/lib_slkclear.c | 66 - contrib/ncurses/ncurses/base/lib_slkcolor.c | 56 - contrib/ncurses/ncurses/base/lib_slkinit.c | 55 - contrib/ncurses/ncurses/base/lib_slklab.c | 51 - contrib/ncurses/ncurses/base/lib_slkrefr.c | 122 - contrib/ncurses/ncurses/base/lib_slkset.c | 149 - contrib/ncurses/ncurses/base/lib_slktouch.c | 53 - contrib/ncurses/ncurses/base/lib_touch.c | 91 - contrib/ncurses/ncurses/base/lib_ungetch.c | 90 - contrib/ncurses/ncurses/base/lib_vline.c | 79 - contrib/ncurses/ncurses/base/lib_wattroff.c | 64 - contrib/ncurses/ncurses/base/lib_wattron.c | 64 - contrib/ncurses/ncurses/base/lib_winch.c | 54 - contrib/ncurses/ncurses/base/lib_window.c | 250 - contrib/ncurses/ncurses/base/memmove.c | 69 - contrib/ncurses/ncurses/base/nc_panel.c | 41 - contrib/ncurses/ncurses/base/resizeterm.c | 455 - contrib/ncurses/ncurses/base/safe_sprintf.c | 264 - contrib/ncurses/ncurses/base/sigaction.c | 99 - contrib/ncurses/ncurses/base/tries.c | 143 - contrib/ncurses/ncurses/base/use_window.c | 78 - contrib/ncurses/ncurses/base/version.c | 42 - contrib/ncurses/ncurses/base/vsscanf.c | 356 - contrib/ncurses/ncurses/base/wresize.c | 246 - contrib/ncurses/ncurses/curses.priv.h | 1666 -- contrib/ncurses/ncurses/fifo_defs.h | 59 - contrib/ncurses/ncurses/llib-lncurses | 3359 --- contrib/ncurses/ncurses/llib-lncursest | 3493 --- contrib/ncurses/ncurses/llib-lncursesw | 4138 ---- contrib/ncurses/ncurses/modules | 232 - contrib/ncurses/ncurses/tinfo/MKcaptab.awk | 94 - contrib/ncurses/ncurses/tinfo/MKcaptab.sh | 149 - contrib/ncurses/ncurses/tinfo/MKcodes.awk | 161 - contrib/ncurses/ncurses/tinfo/MKfallback.sh | 129 - contrib/ncurses/ncurses/tinfo/MKkeys_list.sh | 62 - contrib/ncurses/ncurses/tinfo/MKnames.awk | 183 - contrib/ncurses/ncurses/tinfo/README | 36 - contrib/ncurses/ncurses/tinfo/access.c | 176 - contrib/ncurses/ncurses/tinfo/add_tries.c | 120 - contrib/ncurses/ncurses/tinfo/alloc_entry.c | 289 - contrib/ncurses/ncurses/tinfo/alloc_ttype.c | 495 - contrib/ncurses/ncurses/tinfo/captoinfo.c | 847 - contrib/ncurses/ncurses/tinfo/comp_error.c | 153 - contrib/ncurses/ncurses/tinfo/comp_expand.c | 192 - contrib/ncurses/ncurses/tinfo/comp_hash.c | 366 - contrib/ncurses/ncurses/tinfo/comp_parse.c | 490 - contrib/ncurses/ncurses/tinfo/comp_scan.c | 915 - contrib/ncurses/ncurses/tinfo/db_iterator.c | 225 - contrib/ncurses/ncurses/tinfo/doalloc.c | 75 - contrib/ncurses/ncurses/tinfo/entries.c | 144 - contrib/ncurses/ncurses/tinfo/free_ttype.c | 77 - contrib/ncurses/ncurses/tinfo/getenv_num.c | 56 - contrib/ncurses/ncurses/tinfo/hashed_db.c | 260 - contrib/ncurses/ncurses/tinfo/home_terminfo.c | 69 - contrib/ncurses/ncurses/tinfo/init_keytry.c | 110 - contrib/ncurses/ncurses/tinfo/lib_acs.c | 193 - contrib/ncurses/ncurses/tinfo/lib_baudrate.c | 235 - contrib/ncurses/ncurses/tinfo/lib_cur_term.c | 76 - contrib/ncurses/ncurses/tinfo/lib_data.c | 294 - contrib/ncurses/ncurses/tinfo/lib_has_cap.c | 65 - contrib/ncurses/ncurses/tinfo/lib_kernel.c | 154 - contrib/ncurses/ncurses/tinfo/lib_longname.c | 57 - contrib/ncurses/ncurses/tinfo/lib_napms.c | 74 - contrib/ncurses/ncurses/tinfo/lib_options.c | 270 - contrib/ncurses/ncurses/tinfo/lib_print.c | 92 - contrib/ncurses/ncurses/tinfo/lib_raw.c | 296 - contrib/ncurses/ncurses/tinfo/lib_setup.c | 618 - contrib/ncurses/ncurses/tinfo/lib_termcap.c | 290 - contrib/ncurses/ncurses/tinfo/lib_termname.c | 44 - contrib/ncurses/ncurses/tinfo/lib_tgoto.c | 203 - contrib/ncurses/ncurses/tinfo/lib_ti.c | 103 - contrib/ncurses/ncurses/tinfo/lib_tparm.c | 791 - contrib/ncurses/ncurses/tinfo/lib_tputs.c | 258 - contrib/ncurses/ncurses/tinfo/lib_ttyflags.c | 210 - contrib/ncurses/ncurses/tinfo/make_keys.c | 142 - contrib/ncurses/ncurses/tinfo/name_match.c | 108 - contrib/ncurses/ncurses/tinfo/parse_entry.c | 991 - contrib/ncurses/ncurses/tinfo/read_entry.c | 544 - contrib/ncurses/ncurses/tinfo/read_termcap.c | 1174 - contrib/ncurses/ncurses/tinfo/setbuf.c | 150 - contrib/ncurses/ncurses/tinfo/strings.c | 142 - contrib/ncurses/ncurses/tinfo/trim_sgr0.c | 326 - contrib/ncurses/ncurses/tinfo/use_screen.c | 60 - contrib/ncurses/ncurses/tinfo/write_entry.c | 773 - contrib/ncurses/ncurses/trace/README | 33 - contrib/ncurses/ncurses/trace/lib_trace.c | 328 - contrib/ncurses/ncurses/trace/lib_traceatr.c | 344 - contrib/ncurses/ncurses/trace/lib_tracebits.c | 271 - contrib/ncurses/ncurses/trace/lib_tracechr.c | 74 - contrib/ncurses/ncurses/trace/lib_tracedmp.c | 184 - contrib/ncurses/ncurses/trace/lib_tracemse.c | 119 - contrib/ncurses/ncurses/trace/trace_buf.c | 105 - contrib/ncurses/ncurses/trace/trace_tries.c | 78 - contrib/ncurses/ncurses/trace/trace_xnames.c | 75 - contrib/ncurses/ncurses/trace/varargs.c | 184 - contrib/ncurses/ncurses/trace/visbuf.c | 321 - contrib/ncurses/ncurses/tty/MKexpanded.sh | 99 - contrib/ncurses/ncurses/tty/hardscroll.c | 325 - contrib/ncurses/ncurses/tty/hashmap.c | 549 - contrib/ncurses/ncurses/tty/lib_mvcur.c | 1245 -- contrib/ncurses/ncurses/tty/lib_tstp.c | 389 - contrib/ncurses/ncurses/tty/lib_twait.c | 444 - contrib/ncurses/ncurses/tty/lib_vidattr.c | 338 - contrib/ncurses/ncurses/tty/tty_display.h | 140 - contrib/ncurses/ncurses/tty/tty_input.h | 61 - contrib/ncurses/ncurses/tty/tty_update.c | 1972 -- contrib/ncurses/ncurses/widechar/charable.c | 80 - contrib/ncurses/ncurses/widechar/lib_add_wch.c | 113 - contrib/ncurses/ncurses/widechar/lib_box_set.c | 113 - contrib/ncurses/ncurses/widechar/lib_cchar.c | 129 - contrib/ncurses/ncurses/widechar/lib_erasewchar.c | 77 - contrib/ncurses/ncurses/widechar/lib_get_wch.c | 119 - contrib/ncurses/ncurses/widechar/lib_get_wstr.c | 231 - contrib/ncurses/ncurses/widechar/lib_hline_set.c | 79 - contrib/ncurses/ncurses/widechar/lib_in_wch.c | 62 - contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c | 76 - contrib/ncurses/ncurses/widechar/lib_ins_wch.c | 144 - contrib/ncurses/ncurses/widechar/lib_inwstr.c | 100 - contrib/ncurses/ncurses/widechar/lib_key_name.c | 62 - contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c | 57 - contrib/ncurses/ncurses/widechar/lib_slk_wset.c | 72 - contrib/ncurses/ncurses/widechar/lib_unget_wch.c | 103 - contrib/ncurses/ncurses/widechar/lib_vid_attr.c | 275 - contrib/ncurses/ncurses/widechar/lib_vline_set.c | 78 - contrib/ncurses/ncurses/widechar/lib_wacs.c | 117 - contrib/ncurses/ncurses/widechar/lib_wunctrl.c | 55 - contrib/ncurses/panel/Makefile.in | 159 - contrib/ncurses/panel/headers | 32 - contrib/ncurses/panel/llib-lpanel | 182 - contrib/ncurses/panel/llib-lpanelw | 182 - contrib/ncurses/panel/modules | 51 - contrib/ncurses/panel/p_above.c | 52 - contrib/ncurses/panel/p_below.c | 54 - contrib/ncurses/panel/p_bottom.c | 72 - contrib/ncurses/panel/p_delete.c | 57 - contrib/ncurses/panel/p_hidden.c | 48 - contrib/ncurses/panel/p_hide.c | 58 - contrib/ncurses/panel/p_move.c | 56 - contrib/ncurses/panel/p_new.c | 108 - contrib/ncurses/panel/p_replace.c | 58 - contrib/ncurses/panel/p_show.c | 69 - contrib/ncurses/panel/p_top.c | 46 - contrib/ncurses/panel/p_update.c | 63 - contrib/ncurses/panel/p_user.c | 56 - contrib/ncurses/panel/p_win.c | 46 - contrib/ncurses/panel/panel.c | 157 - contrib/ncurses/panel/panel.h | 77 - contrib/ncurses/panel/panel.priv.h | 191 - contrib/ncurses/progs/MKtermsort.sh | 164 - contrib/ncurses/progs/Makefile.in | 297 - contrib/ncurses/progs/capconvert | 256 - contrib/ncurses/progs/clear.c | 59 - contrib/ncurses/progs/clear.sh | 29 - contrib/ncurses/progs/dump_entry.c | 1264 -- contrib/ncurses/progs/dump_entry.h | 80 - contrib/ncurses/progs/infocmp.c | 1652 -- contrib/ncurses/progs/modules | 43 - contrib/ncurses/progs/progs.priv.h | 191 - contrib/ncurses/progs/tic.c | 1513 -- contrib/ncurses/progs/toe.c | 501 - contrib/ncurses/progs/tput.c | 438 - contrib/ncurses/progs/tset.c | 1305 -- contrib/ncurses/tar-copy.sh | 77 - 535 files changed, 193451 deletions(-) delete mode 100644 contrib/ncurses/ANNOUNCE delete mode 100644 contrib/ncurses/AUTHORS delete mode 100644 contrib/ncurses/INSTALL delete mode 100644 contrib/ncurses/MANIFEST delete mode 100644 contrib/ncurses/Makefile.in delete mode 100644 contrib/ncurses/Makefile.os2 delete mode 100644 contrib/ncurses/NEWS delete mode 100644 contrib/ncurses/README delete mode 100644 contrib/ncurses/README.emx delete mode 100644 contrib/ncurses/TO-DO delete mode 100644 contrib/ncurses/aclocal.m4 delete mode 100644 contrib/ncurses/announce.html.in delete mode 100755 contrib/ncurses/config.guess delete mode 100755 contrib/ncurses/config.sub delete mode 100755 contrib/ncurses/configure delete mode 100644 contrib/ncurses/configure.in delete mode 100644 contrib/ncurses/convert_configure.pl delete mode 100644 contrib/ncurses/dist.mk delete mode 100644 contrib/ncurses/doc/hackguide.doc delete mode 100644 contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html delete mode 100644 contrib/ncurses/doc/html/announce.html delete mode 100644 contrib/ncurses/doc/html/hackguide.html delete mode 100644 contrib/ncurses/doc/html/ncurses-intro.html delete mode 100644 contrib/ncurses/doc/ncurses-intro.doc delete mode 100644 contrib/ncurses/form/Makefile.in delete mode 100644 contrib/ncurses/form/READ.ME delete mode 100644 contrib/ncurses/form/f_trace.c delete mode 100644 contrib/ncurses/form/fld_arg.c delete mode 100644 contrib/ncurses/form/fld_attr.c delete mode 100644 contrib/ncurses/form/fld_current.c delete mode 100644 contrib/ncurses/form/fld_def.c delete mode 100644 contrib/ncurses/form/fld_dup.c delete mode 100644 contrib/ncurses/form/fld_ftchoice.c delete mode 100644 contrib/ncurses/form/fld_ftlink.c delete mode 100644 contrib/ncurses/form/fld_info.c delete mode 100644 contrib/ncurses/form/fld_just.c delete mode 100644 contrib/ncurses/form/fld_link.c delete mode 100644 contrib/ncurses/form/fld_max.c delete mode 100644 contrib/ncurses/form/fld_move.c delete mode 100644 contrib/ncurses/form/fld_newftyp.c delete mode 100644 contrib/ncurses/form/fld_opts.c delete mode 100644 contrib/ncurses/form/fld_pad.c delete mode 100644 contrib/ncurses/form/fld_page.c delete mode 100644 contrib/ncurses/form/fld_stat.c delete mode 100644 contrib/ncurses/form/fld_type.c delete mode 100644 contrib/ncurses/form/fld_user.c delete mode 100644 contrib/ncurses/form/form.h delete mode 100644 contrib/ncurses/form/form.priv.h delete mode 100644 contrib/ncurses/form/frm_cursor.c delete mode 100644 contrib/ncurses/form/frm_data.c delete mode 100644 contrib/ncurses/form/frm_def.c delete mode 100644 contrib/ncurses/form/frm_driver.c delete mode 100644 contrib/ncurses/form/frm_hook.c delete mode 100644 contrib/ncurses/form/frm_opts.c delete mode 100644 contrib/ncurses/form/frm_page.c delete mode 100644 contrib/ncurses/form/frm_post.c delete mode 100644 contrib/ncurses/form/frm_req_name.c delete mode 100644 contrib/ncurses/form/frm_scale.c delete mode 100644 contrib/ncurses/form/frm_sub.c delete mode 100644 contrib/ncurses/form/frm_user.c delete mode 100644 contrib/ncurses/form/frm_win.c delete mode 100644 contrib/ncurses/form/fty_alnum.c delete mode 100644 contrib/ncurses/form/fty_alpha.c delete mode 100644 contrib/ncurses/form/fty_enum.c delete mode 100644 contrib/ncurses/form/fty_int.c delete mode 100644 contrib/ncurses/form/fty_ipv4.c delete mode 100644 contrib/ncurses/form/fty_num.c delete mode 100644 contrib/ncurses/form/fty_regex.c delete mode 100644 contrib/ncurses/form/headers delete mode 100644 contrib/ncurses/form/llib-lform delete mode 100644 contrib/ncurses/form/llib-lformw delete mode 100644 contrib/ncurses/form/modules delete mode 100644 contrib/ncurses/include/Caps delete mode 100644 contrib/ncurses/include/Caps.aix4 delete mode 100644 contrib/ncurses/include/Caps.hpux11 delete mode 100644 contrib/ncurses/include/Caps.keys delete mode 100644 contrib/ncurses/include/Caps.osf1r5 delete mode 100644 contrib/ncurses/include/Caps.uwin delete mode 100755 contrib/ncurses/include/MKhashsize.sh delete mode 100755 contrib/ncurses/include/MKkey_defs.sh delete mode 100755 contrib/ncurses/include/MKncurses_def.sh delete mode 100755 contrib/ncurses/include/MKparametrized.sh delete mode 100644 contrib/ncurses/include/MKterm.h.awk.in delete mode 100644 contrib/ncurses/include/Makefile.in delete mode 100644 contrib/ncurses/include/capdefaults.c delete mode 100644 contrib/ncurses/include/curses.h.in delete mode 100644 contrib/ncurses/include/curses.tail delete mode 100644 contrib/ncurses/include/curses.wide delete mode 100755 contrib/ncurses/include/edit_cfg.sh delete mode 100644 contrib/ncurses/include/hashed_db.h delete mode 100644 contrib/ncurses/include/headers delete mode 100644 contrib/ncurses/include/nc_alloc.h delete mode 100644 contrib/ncurses/include/nc_panel.h delete mode 100644 contrib/ncurses/include/nc_tparm.h delete mode 100644 contrib/ncurses/include/ncurses_cfg.hin delete mode 100644 contrib/ncurses/include/ncurses_defs delete mode 100644 contrib/ncurses/include/ncurses_dll.h delete mode 100644 contrib/ncurses/include/term_entry.h delete mode 100644 contrib/ncurses/include/termcap.h.in delete mode 100644 contrib/ncurses/include/tic.h delete mode 100644 contrib/ncurses/include/unctrl.h.in delete mode 100755 contrib/ncurses/install-sh delete mode 100755 contrib/ncurses/man/MKterminfo.sh delete mode 100644 contrib/ncurses/man/Makefile.in delete mode 100644 contrib/ncurses/man/captoinfo.1m delete mode 100644 contrib/ncurses/man/clear.1 delete mode 100644 contrib/ncurses/man/curs_add_wch.3x delete mode 100644 contrib/ncurses/man/curs_add_wchstr.3x delete mode 100644 contrib/ncurses/man/curs_addch.3x delete mode 100644 contrib/ncurses/man/curs_addchstr.3x delete mode 100644 contrib/ncurses/man/curs_addstr.3x delete mode 100644 contrib/ncurses/man/curs_addwstr.3x delete mode 100644 contrib/ncurses/man/curs_attr.3x delete mode 100644 contrib/ncurses/man/curs_beep.3x delete mode 100644 contrib/ncurses/man/curs_bkgd.3x delete mode 100644 contrib/ncurses/man/curs_bkgrnd.3x delete mode 100644 contrib/ncurses/man/curs_border.3x delete mode 100644 contrib/ncurses/man/curs_border_set.3x delete mode 100644 contrib/ncurses/man/curs_clear.3x delete mode 100644 contrib/ncurses/man/curs_color.3x delete mode 100644 contrib/ncurses/man/curs_delch.3x delete mode 100644 contrib/ncurses/man/curs_deleteln.3x delete mode 100644 contrib/ncurses/man/curs_extend.3x delete mode 100644 contrib/ncurses/man/curs_get_wch.3x delete mode 100644 contrib/ncurses/man/curs_get_wstr.3x delete mode 100644 contrib/ncurses/man/curs_getcchar.3x delete mode 100644 contrib/ncurses/man/curs_getch.3x delete mode 100644 contrib/ncurses/man/curs_getstr.3x delete mode 100644 contrib/ncurses/man/curs_getyx.3x delete mode 100644 contrib/ncurses/man/curs_in_wch.3x delete mode 100644 contrib/ncurses/man/curs_in_wchstr.3x delete mode 100644 contrib/ncurses/man/curs_inch.3x delete mode 100644 contrib/ncurses/man/curs_inchstr.3x delete mode 100644 contrib/ncurses/man/curs_initscr.3x delete mode 100644 contrib/ncurses/man/curs_inopts.3x delete mode 100644 contrib/ncurses/man/curs_ins_wch.3x delete mode 100644 contrib/ncurses/man/curs_ins_wstr.3x delete mode 100644 contrib/ncurses/man/curs_insch.3x delete mode 100644 contrib/ncurses/man/curs_insstr.3x delete mode 100644 contrib/ncurses/man/curs_instr.3x delete mode 100644 contrib/ncurses/man/curs_inwstr.3x delete mode 100644 contrib/ncurses/man/curs_kernel.3x delete mode 100644 contrib/ncurses/man/curs_legacy.3x delete mode 100644 contrib/ncurses/man/curs_mouse.3x delete mode 100644 contrib/ncurses/man/curs_move.3x delete mode 100644 contrib/ncurses/man/curs_opaque.3x delete mode 100644 contrib/ncurses/man/curs_outopts.3x delete mode 100644 contrib/ncurses/man/curs_overlay.3x delete mode 100644 contrib/ncurses/man/curs_pad.3x delete mode 100644 contrib/ncurses/man/curs_print.3x delete mode 100644 contrib/ncurses/man/curs_printw.3x delete mode 100644 contrib/ncurses/man/curs_refresh.3x delete mode 100644 contrib/ncurses/man/curs_scanw.3x delete mode 100644 contrib/ncurses/man/curs_scr_dump.3x delete mode 100644 contrib/ncurses/man/curs_scroll.3x delete mode 100644 contrib/ncurses/man/curs_slk.3x delete mode 100644 contrib/ncurses/man/curs_termattrs.3x delete mode 100644 contrib/ncurses/man/curs_termcap.3x delete mode 100644 contrib/ncurses/man/curs_terminfo.3x delete mode 100644 contrib/ncurses/man/curs_threads.3x delete mode 100644 contrib/ncurses/man/curs_touch.3x delete mode 100644 contrib/ncurses/man/curs_trace.3x delete mode 100644 contrib/ncurses/man/curs_util.3x delete mode 100644 contrib/ncurses/man/curs_window.3x delete mode 100644 contrib/ncurses/man/default_colors.3x delete mode 100644 contrib/ncurses/man/define_key.3x delete mode 100644 contrib/ncurses/man/form.3x delete mode 100644 contrib/ncurses/man/form_cursor.3x delete mode 100644 contrib/ncurses/man/form_data.3x delete mode 100644 contrib/ncurses/man/form_driver.3x delete mode 100644 contrib/ncurses/man/form_field.3x delete mode 100644 contrib/ncurses/man/form_field_attributes.3x delete mode 100644 contrib/ncurses/man/form_field_buffer.3x delete mode 100644 contrib/ncurses/man/form_field_info.3x delete mode 100644 contrib/ncurses/man/form_field_just.3x delete mode 100644 contrib/ncurses/man/form_field_new.3x delete mode 100644 contrib/ncurses/man/form_field_opts.3x delete mode 100644 contrib/ncurses/man/form_field_userptr.3x delete mode 100644 contrib/ncurses/man/form_field_validation.3x delete mode 100644 contrib/ncurses/man/form_fieldtype.3x delete mode 100644 contrib/ncurses/man/form_hook.3x delete mode 100644 contrib/ncurses/man/form_new.3x delete mode 100644 contrib/ncurses/man/form_new_page.3x delete mode 100644 contrib/ncurses/man/form_opts.3x delete mode 100644 contrib/ncurses/man/form_page.3x delete mode 100644 contrib/ncurses/man/form_post.3x delete mode 100644 contrib/ncurses/man/form_requestname.3x delete mode 100644 contrib/ncurses/man/form_userptr.3x delete mode 100644 contrib/ncurses/man/form_win.3x delete mode 100644 contrib/ncurses/man/infocmp.1m delete mode 100644 contrib/ncurses/man/infotocap.1m delete mode 100644 contrib/ncurses/man/key_defined.3x delete mode 100644 contrib/ncurses/man/keybound.3x delete mode 100644 contrib/ncurses/man/keyok.3x delete mode 100644 contrib/ncurses/man/legacy_coding.3x delete mode 100755 contrib/ncurses/man/make_sed.sh delete mode 100644 contrib/ncurses/man/man_db.renames delete mode 100644 contrib/ncurses/man/manlinks.sed delete mode 100644 contrib/ncurses/man/menu.3x delete mode 100644 contrib/ncurses/man/menu_attributes.3x delete mode 100644 contrib/ncurses/man/menu_cursor.3x delete mode 100644 contrib/ncurses/man/menu_driver.3x delete mode 100644 contrib/ncurses/man/menu_format.3x delete mode 100644 contrib/ncurses/man/menu_hook.3x delete mode 100644 contrib/ncurses/man/menu_items.3x delete mode 100644 contrib/ncurses/man/menu_mark.3x delete mode 100644 contrib/ncurses/man/menu_new.3x delete mode 100644 contrib/ncurses/man/menu_opts.3x delete mode 100644 contrib/ncurses/man/menu_pattern.3x delete mode 100644 contrib/ncurses/man/menu_post.3x delete mode 100644 contrib/ncurses/man/menu_requestname.3x delete mode 100644 contrib/ncurses/man/menu_spacing.3x delete mode 100644 contrib/ncurses/man/menu_userptr.3x delete mode 100644 contrib/ncurses/man/menu_win.3x delete mode 100644 contrib/ncurses/man/mitem_current.3x delete mode 100644 contrib/ncurses/man/mitem_name.3x delete mode 100644 contrib/ncurses/man/mitem_new.3x delete mode 100644 contrib/ncurses/man/mitem_opts.3x delete mode 100644 contrib/ncurses/man/mitem_userptr.3x delete mode 100644 contrib/ncurses/man/mitem_value.3x delete mode 100644 contrib/ncurses/man/mitem_visible.3x delete mode 100644 contrib/ncurses/man/ncurses.3x delete mode 100644 contrib/ncurses/man/panel.3x delete mode 100644 contrib/ncurses/man/resizeterm.3x delete mode 100644 contrib/ncurses/man/term.5 delete mode 100644 contrib/ncurses/man/term.7 delete mode 100644 contrib/ncurses/man/terminfo.head delete mode 100644 contrib/ncurses/man/terminfo.tail delete mode 100644 contrib/ncurses/man/tic.1m delete mode 100644 contrib/ncurses/man/toe.1m delete mode 100644 contrib/ncurses/man/tput.1 delete mode 100644 contrib/ncurses/man/tset.1 delete mode 100644 contrib/ncurses/man/wresize.3x delete mode 100644 contrib/ncurses/menu/Makefile.in delete mode 100644 contrib/ncurses/menu/READ.ME delete mode 100644 contrib/ncurses/menu/eti.h delete mode 100644 contrib/ncurses/menu/headers delete mode 100644 contrib/ncurses/menu/llib-lmenu delete mode 100644 contrib/ncurses/menu/llib-lmenuw delete mode 100644 contrib/ncurses/menu/m_attribs.c delete mode 100644 contrib/ncurses/menu/m_cursor.c delete mode 100644 contrib/ncurses/menu/m_driver.c delete mode 100644 contrib/ncurses/menu/m_format.c delete mode 100644 contrib/ncurses/menu/m_global.c delete mode 100644 contrib/ncurses/menu/m_hook.c delete mode 100644 contrib/ncurses/menu/m_item_cur.c delete mode 100644 contrib/ncurses/menu/m_item_nam.c delete mode 100644 contrib/ncurses/menu/m_item_new.c delete mode 100644 contrib/ncurses/menu/m_item_opt.c delete mode 100644 contrib/ncurses/menu/m_item_top.c delete mode 100644 contrib/ncurses/menu/m_item_use.c delete mode 100644 contrib/ncurses/menu/m_item_val.c delete mode 100644 contrib/ncurses/menu/m_item_vis.c delete mode 100644 contrib/ncurses/menu/m_items.c delete mode 100644 contrib/ncurses/menu/m_new.c delete mode 100644 contrib/ncurses/menu/m_opts.c delete mode 100644 contrib/ncurses/menu/m_pad.c delete mode 100644 contrib/ncurses/menu/m_pattern.c delete mode 100644 contrib/ncurses/menu/m_post.c delete mode 100644 contrib/ncurses/menu/m_req_name.c delete mode 100644 contrib/ncurses/menu/m_scale.c delete mode 100644 contrib/ncurses/menu/m_spacing.c delete mode 100644 contrib/ncurses/menu/m_sub.c delete mode 100644 contrib/ncurses/menu/m_trace.c delete mode 100644 contrib/ncurses/menu/m_userptr.c delete mode 100644 contrib/ncurses/menu/m_win.c delete mode 100644 contrib/ncurses/menu/menu.h delete mode 100644 contrib/ncurses/menu/menu.priv.h delete mode 100644 contrib/ncurses/menu/mf_common.h delete mode 100644 contrib/ncurses/menu/modules delete mode 100644 contrib/ncurses/misc/Makefile.in delete mode 100644 contrib/ncurses/misc/chkdef.cmd delete mode 100644 contrib/ncurses/misc/cleantic.cmd delete mode 100644 contrib/ncurses/misc/cmpdef.cmd delete mode 100755 contrib/ncurses/misc/csort delete mode 100644 contrib/ncurses/misc/emx.src delete mode 100644 contrib/ncurses/misc/form.def delete mode 100644 contrib/ncurses/misc/form.ref delete mode 100755 contrib/ncurses/misc/gen_edit.sh delete mode 100755 contrib/ncurses/misc/jpf-indent delete mode 100644 contrib/ncurses/misc/makedef.cmd delete mode 100755 contrib/ncurses/misc/makellib delete mode 100644 contrib/ncurses/misc/menu.def delete mode 100644 contrib/ncurses/misc/menu.ref delete mode 100755 contrib/ncurses/misc/ncu-indent delete mode 100644 contrib/ncurses/misc/ncurses-config.in delete mode 100644 contrib/ncurses/misc/ncurses.def delete mode 100644 contrib/ncurses/misc/ncurses.ref delete mode 100644 contrib/ncurses/misc/panel.def delete mode 100644 contrib/ncurses/misc/panel.ref delete mode 100644 contrib/ncurses/misc/run_tic.in delete mode 100755 contrib/ncurses/misc/shlib delete mode 100644 contrib/ncurses/misc/tabset/std delete mode 100644 contrib/ncurses/misc/tabset/stdcrt delete mode 100644 contrib/ncurses/misc/tabset/vt100 delete mode 100644 contrib/ncurses/misc/tabset/vt300 delete mode 100755 contrib/ncurses/misc/tdlint delete mode 100644 contrib/ncurses/misc/terminfo.src delete mode 100644 contrib/ncurses/mk-0th.awk delete mode 100644 contrib/ncurses/mk-1st.awk delete mode 100644 contrib/ncurses/mk-2nd.awk delete mode 100644 contrib/ncurses/mk-hdr.awk delete mode 100644 contrib/ncurses/mkdirs.sh delete mode 100644 contrib/ncurses/ncurses/Makefile.in delete mode 100644 contrib/ncurses/ncurses/README delete mode 100644 contrib/ncurses/ncurses/README.IZ delete mode 100644 contrib/ncurses/ncurses/SigAction.h delete mode 100644 contrib/ncurses/ncurses/base/MKkeyname.awk delete mode 100755 contrib/ncurses/ncurses/base/MKlib_gen.sh delete mode 100644 contrib/ncurses/ncurses/base/MKunctrl.awk delete mode 100644 contrib/ncurses/ncurses/base/README delete mode 100644 contrib/ncurses/ncurses/base/define_key.c delete mode 100644 contrib/ncurses/ncurses/base/key_defined.c delete mode 100644 contrib/ncurses/ncurses/base/keybound.c delete mode 100644 contrib/ncurses/ncurses/base/keyok.c delete mode 100644 contrib/ncurses/ncurses/base/legacy_coding.c delete mode 100644 contrib/ncurses/ncurses/base/lib_addch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_addstr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_beep.c delete mode 100644 contrib/ncurses/ncurses/base/lib_bkgd.c delete mode 100644 contrib/ncurses/ncurses/base/lib_box.c delete mode 100644 contrib/ncurses/ncurses/base/lib_chgat.c delete mode 100644 contrib/ncurses/ncurses/base/lib_clear.c delete mode 100644 contrib/ncurses/ncurses/base/lib_clearok.c delete mode 100644 contrib/ncurses/ncurses/base/lib_clrbot.c delete mode 100644 contrib/ncurses/ncurses/base/lib_clreol.c delete mode 100644 contrib/ncurses/ncurses/base/lib_color.c delete mode 100644 contrib/ncurses/ncurses/base/lib_colorset.c delete mode 100644 contrib/ncurses/ncurses/base/lib_delch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_delwin.c delete mode 100644 contrib/ncurses/ncurses/base/lib_dft_fgbg.c delete mode 100644 contrib/ncurses/ncurses/base/lib_echo.c delete mode 100644 contrib/ncurses/ncurses/base/lib_endwin.c delete mode 100644 contrib/ncurses/ncurses/base/lib_erase.c delete mode 100644 contrib/ncurses/ncurses/base/lib_flash.c delete mode 100644 contrib/ncurses/ncurses/base/lib_freeall.c delete mode 100644 contrib/ncurses/ncurses/base/lib_getch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_getstr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_hline.c delete mode 100644 contrib/ncurses/ncurses/base/lib_immedok.c delete mode 100644 contrib/ncurses/ncurses/base/lib_inchstr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_initscr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_insch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_insdel.c delete mode 100644 contrib/ncurses/ncurses/base/lib_insnstr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_instr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_isendwin.c delete mode 100644 contrib/ncurses/ncurses/base/lib_leaveok.c delete mode 100644 contrib/ncurses/ncurses/base/lib_mouse.c delete mode 100644 contrib/ncurses/ncurses/base/lib_move.c delete mode 100644 contrib/ncurses/ncurses/base/lib_mvwin.c delete mode 100644 contrib/ncurses/ncurses/base/lib_newterm.c delete mode 100644 contrib/ncurses/ncurses/base/lib_newwin.c delete mode 100644 contrib/ncurses/ncurses/base/lib_nl.c delete mode 100644 contrib/ncurses/ncurses/base/lib_overlay.c delete mode 100644 contrib/ncurses/ncurses/base/lib_pad.c delete mode 100644 contrib/ncurses/ncurses/base/lib_printw.c delete mode 100644 contrib/ncurses/ncurses/base/lib_redrawln.c delete mode 100644 contrib/ncurses/ncurses/base/lib_refresh.c delete mode 100644 contrib/ncurses/ncurses/base/lib_restart.c delete mode 100644 contrib/ncurses/ncurses/base/lib_scanw.c delete mode 100644 contrib/ncurses/ncurses/base/lib_screen.c delete mode 100644 contrib/ncurses/ncurses/base/lib_scroll.c delete mode 100644 contrib/ncurses/ncurses/base/lib_scrollok.c delete mode 100644 contrib/ncurses/ncurses/base/lib_scrreg.c delete mode 100644 contrib/ncurses/ncurses/base/lib_set_term.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slk.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkatr_set.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkatrof.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkatron.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkatrset.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkattr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkclear.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkcolor.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkinit.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slklab.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkrefr.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slkset.c delete mode 100644 contrib/ncurses/ncurses/base/lib_slktouch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_touch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_ungetch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_vline.c delete mode 100644 contrib/ncurses/ncurses/base/lib_wattroff.c delete mode 100644 contrib/ncurses/ncurses/base/lib_wattron.c delete mode 100644 contrib/ncurses/ncurses/base/lib_winch.c delete mode 100644 contrib/ncurses/ncurses/base/lib_window.c delete mode 100644 contrib/ncurses/ncurses/base/memmove.c delete mode 100644 contrib/ncurses/ncurses/base/nc_panel.c delete mode 100644 contrib/ncurses/ncurses/base/resizeterm.c delete mode 100644 contrib/ncurses/ncurses/base/safe_sprintf.c delete mode 100644 contrib/ncurses/ncurses/base/sigaction.c delete mode 100644 contrib/ncurses/ncurses/base/tries.c delete mode 100644 contrib/ncurses/ncurses/base/use_window.c delete mode 100644 contrib/ncurses/ncurses/base/version.c delete mode 100644 contrib/ncurses/ncurses/base/vsscanf.c delete mode 100644 contrib/ncurses/ncurses/base/wresize.c delete mode 100644 contrib/ncurses/ncurses/curses.priv.h delete mode 100644 contrib/ncurses/ncurses/fifo_defs.h delete mode 100644 contrib/ncurses/ncurses/llib-lncurses delete mode 100644 contrib/ncurses/ncurses/llib-lncursest delete mode 100644 contrib/ncurses/ncurses/llib-lncursesw delete mode 100644 contrib/ncurses/ncurses/modules delete mode 100644 contrib/ncurses/ncurses/tinfo/MKcaptab.awk delete mode 100644 contrib/ncurses/ncurses/tinfo/MKcaptab.sh delete mode 100644 contrib/ncurses/ncurses/tinfo/MKcodes.awk delete mode 100755 contrib/ncurses/ncurses/tinfo/MKfallback.sh delete mode 100755 contrib/ncurses/ncurses/tinfo/MKkeys_list.sh delete mode 100644 contrib/ncurses/ncurses/tinfo/MKnames.awk delete mode 100644 contrib/ncurses/ncurses/tinfo/README delete mode 100644 contrib/ncurses/ncurses/tinfo/access.c delete mode 100644 contrib/ncurses/ncurses/tinfo/add_tries.c delete mode 100644 contrib/ncurses/ncurses/tinfo/alloc_entry.c delete mode 100644 contrib/ncurses/ncurses/tinfo/alloc_ttype.c delete mode 100644 contrib/ncurses/ncurses/tinfo/captoinfo.c delete mode 100644 contrib/ncurses/ncurses/tinfo/comp_error.c delete mode 100644 contrib/ncurses/ncurses/tinfo/comp_expand.c delete mode 100644 contrib/ncurses/ncurses/tinfo/comp_hash.c delete mode 100644 contrib/ncurses/ncurses/tinfo/comp_parse.c delete mode 100644 contrib/ncurses/ncurses/tinfo/comp_scan.c delete mode 100644 contrib/ncurses/ncurses/tinfo/db_iterator.c delete mode 100644 contrib/ncurses/ncurses/tinfo/doalloc.c delete mode 100644 contrib/ncurses/ncurses/tinfo/entries.c delete mode 100644 contrib/ncurses/ncurses/tinfo/free_ttype.c delete mode 100644 contrib/ncurses/ncurses/tinfo/getenv_num.c delete mode 100644 contrib/ncurses/ncurses/tinfo/hashed_db.c delete mode 100644 contrib/ncurses/ncurses/tinfo/home_terminfo.c delete mode 100644 contrib/ncurses/ncurses/tinfo/init_keytry.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_acs.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_baudrate.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_cur_term.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_data.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_has_cap.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_kernel.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_longname.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_napms.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_options.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_print.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_raw.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_setup.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_termcap.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_termname.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_tgoto.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_ti.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_tparm.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_tputs.c delete mode 100644 contrib/ncurses/ncurses/tinfo/lib_ttyflags.c delete mode 100644 contrib/ncurses/ncurses/tinfo/make_keys.c delete mode 100644 contrib/ncurses/ncurses/tinfo/name_match.c delete mode 100644 contrib/ncurses/ncurses/tinfo/parse_entry.c delete mode 100644 contrib/ncurses/ncurses/tinfo/read_entry.c delete mode 100644 contrib/ncurses/ncurses/tinfo/read_termcap.c delete mode 100644 contrib/ncurses/ncurses/tinfo/setbuf.c delete mode 100644 contrib/ncurses/ncurses/tinfo/strings.c delete mode 100644 contrib/ncurses/ncurses/tinfo/trim_sgr0.c delete mode 100644 contrib/ncurses/ncurses/tinfo/use_screen.c delete mode 100644 contrib/ncurses/ncurses/tinfo/write_entry.c delete mode 100644 contrib/ncurses/ncurses/trace/README delete mode 100644 contrib/ncurses/ncurses/trace/lib_trace.c delete mode 100644 contrib/ncurses/ncurses/trace/lib_traceatr.c delete mode 100644 contrib/ncurses/ncurses/trace/lib_tracebits.c delete mode 100644 contrib/ncurses/ncurses/trace/lib_tracechr.c delete mode 100644 contrib/ncurses/ncurses/trace/lib_tracedmp.c delete mode 100644 contrib/ncurses/ncurses/trace/lib_tracemse.c delete mode 100644 contrib/ncurses/ncurses/trace/trace_buf.c delete mode 100644 contrib/ncurses/ncurses/trace/trace_tries.c delete mode 100644 contrib/ncurses/ncurses/trace/trace_xnames.c delete mode 100644 contrib/ncurses/ncurses/trace/varargs.c delete mode 100644 contrib/ncurses/ncurses/trace/visbuf.c delete mode 100755 contrib/ncurses/ncurses/tty/MKexpanded.sh delete mode 100644 contrib/ncurses/ncurses/tty/hardscroll.c delete mode 100644 contrib/ncurses/ncurses/tty/hashmap.c delete mode 100644 contrib/ncurses/ncurses/tty/lib_mvcur.c delete mode 100644 contrib/ncurses/ncurses/tty/lib_tstp.c delete mode 100644 contrib/ncurses/ncurses/tty/lib_twait.c delete mode 100644 contrib/ncurses/ncurses/tty/lib_vidattr.c delete mode 100644 contrib/ncurses/ncurses/tty/tty_display.h delete mode 100644 contrib/ncurses/ncurses/tty/tty_input.h delete mode 100644 contrib/ncurses/ncurses/tty/tty_update.c delete mode 100644 contrib/ncurses/ncurses/widechar/charable.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_add_wch.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_box_set.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_cchar.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_erasewchar.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_get_wch.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_get_wstr.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_hline_set.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_in_wch.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_in_wchnstr.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_ins_wch.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_inwstr.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_key_name.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_pecho_wchar.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_slk_wset.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_unget_wch.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_vid_attr.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_vline_set.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_wacs.c delete mode 100644 contrib/ncurses/ncurses/widechar/lib_wunctrl.c delete mode 100644 contrib/ncurses/panel/Makefile.in delete mode 100644 contrib/ncurses/panel/headers delete mode 100644 contrib/ncurses/panel/llib-lpanel delete mode 100644 contrib/ncurses/panel/llib-lpanelw delete mode 100644 contrib/ncurses/panel/modules delete mode 100644 contrib/ncurses/panel/p_above.c delete mode 100644 contrib/ncurses/panel/p_below.c delete mode 100644 contrib/ncurses/panel/p_bottom.c delete mode 100644 contrib/ncurses/panel/p_delete.c delete mode 100644 contrib/ncurses/panel/p_hidden.c delete mode 100644 contrib/ncurses/panel/p_hide.c delete mode 100644 contrib/ncurses/panel/p_move.c delete mode 100644 contrib/ncurses/panel/p_new.c delete mode 100644 contrib/ncurses/panel/p_replace.c delete mode 100644 contrib/ncurses/panel/p_show.c delete mode 100644 contrib/ncurses/panel/p_top.c delete mode 100644 contrib/ncurses/panel/p_update.c delete mode 100644 contrib/ncurses/panel/p_user.c delete mode 100644 contrib/ncurses/panel/p_win.c delete mode 100644 contrib/ncurses/panel/panel.c delete mode 100644 contrib/ncurses/panel/panel.h delete mode 100644 contrib/ncurses/panel/panel.priv.h delete mode 100755 contrib/ncurses/progs/MKtermsort.sh delete mode 100644 contrib/ncurses/progs/Makefile.in delete mode 100755 contrib/ncurses/progs/capconvert delete mode 100644 contrib/ncurses/progs/clear.c delete mode 100755 contrib/ncurses/progs/clear.sh delete mode 100644 contrib/ncurses/progs/dump_entry.c delete mode 100644 contrib/ncurses/progs/dump_entry.h delete mode 100644 contrib/ncurses/progs/infocmp.c delete mode 100644 contrib/ncurses/progs/modules delete mode 100644 contrib/ncurses/progs/progs.priv.h delete mode 100644 contrib/ncurses/progs/tic.c delete mode 100644 contrib/ncurses/progs/toe.c delete mode 100644 contrib/ncurses/progs/tput.c delete mode 100644 contrib/ncurses/progs/tset.c delete mode 100755 contrib/ncurses/tar-copy.sh (limited to 'contrib/ncurses') diff --git a/contrib/ncurses/ANNOUNCE b/contrib/ncurses/ANNOUNCE deleted file mode 100644 index bbeeb89..0000000 --- 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 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 @ - - 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 57904c4..0000000 --- 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 7917e29..0000000 --- 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 , 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 - - 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 62f052f..0000000 --- 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 cb8cd42..0000000 --- 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 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 1244455..0000000 --- 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 . -# 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 c5126da..0000000 --- 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 for HPUX, which has the corresponding - definitions in . - + 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 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 - (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 and in configure script macro - to make 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 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 - ). - + add test/background.c and test/color_set.c - + modify color_set() function to work with color pair 0 (report by - George Andreou ). - + 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 ). - + 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 - ). - -20031122 - + add linux-vt terminfo entry (Andrey V Lukyanov ). - + 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 ). - + 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 - ). - + 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 ). - -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 ). - + 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 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 ). - -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 ). - -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 - ). - + 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 - ). - + 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 ). - + 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 ). - + 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 ). - + 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 ). - + fix typos and whitespace in manpages (patch by Jason McIntyre - ). - -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 ). - + 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 ). - -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 ). - + 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 ). - -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 ). - -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 ). - + 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 - ). - + 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 and Thomas Esser - ). - + 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 ). - -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 - (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 ). - + 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 - ). - + 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 ). - > 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 ). - + 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 : - + 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 - ). - + 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 , - 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 ) -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 - ). - + 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 ). - -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 - ). - + 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 ). - + 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 ). - + 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 - ). - + 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 - ). - -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 ). - + 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 ). - > 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 ). - + 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 ). - + 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 ). - -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 ). - + 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 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 ). - + 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 ). - + 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 - -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 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 - ) - + 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 ). - -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 , report by Scott Beck - ). - + 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 ). - -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 ). - -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 ). - > 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 - ): - + 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 ). - -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 ). - + add configure check for mbstate_t, needed for wide-character - configuration. On some platforms we must include 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 ). - + 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 ). - > 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 ). This also fixes a - different problem configuring with Mac OS X (reported by Marc Smith - ). - -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 ). - + 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 ). - + 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 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 - ). - + use 'sh' to run mkinstalldirs, to work around problems with buggy - versions of 'make' on OS/2 (report by John Polterak ). - + 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 - header defines a 'bool' type inconsistent with ncurses, - which normally makes 'bool' consistent with C++. Include - 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 is present - (based on a bug report for tin 1.5.9 by Aaron Adams ). - -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 ). - + 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 ). - + modify mouse click resolution so that mouseinterval(-1) will disable - it, e.g., to handle touchscreens via a slow connection (request by - Byron Stanoszek ). - + 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 - ). - + 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 - , for bash 2.05.0 on a Linux 2.0.36 system). - + change kbs in mach terminfo entries to ^? (Marcus Brinkmann - ). - + 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 - ). - + 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 - ). - + 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 ). - + 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 before - 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 - , 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 ). - + 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 : - + 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 ). - + add ELKS terminfo entries (Federico Bianchi - ) - + 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 - ). - -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 - ). - + 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 - ). - -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 - ). - > fix 2 bugs in test/bs.c Erik Sigra : - + 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 - ) (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 , 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., -2.7 (report by Ronald Ho - ). - + add configure check for c++ 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 and Matt Taggart - , 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 ) -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 ). - + 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 ). - -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 - , 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 . 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 - ). - + add check in lib_tgoto.c's is_termcap() function to reject null or - empty strings (reported by Valentin Nechayev 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 ). - -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 - ). - + improved cygwin terminfo entry, based on patch by - . - + 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 ). - -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 ). - + correct help-message and array limit in knight.c (patch by Brian - Raiter ). - > 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 ). - + 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 - ). - + 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 : - + 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 ). - + 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 - ). - -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 - ). - + 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 - (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 ). - + 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 - ). - + 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 ). - + 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 - ). 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 ). - + change functions _nc_parse_entry() and postprocess_termcap() to avoid - using strtok(), because it is non-reentrant (reported by Andrey A - Chernov ). - + 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 - ). - + modify ifdef's in curses.h.in to avoid warning if GCC_PRINTF or - GCC_SCANF was not previously defined (reported by Pavel Roskin - ). - + 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 (). - + 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 - ). - + 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 - , 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 - ). - + 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 - ). - + 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 - ). - + 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 - , 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 ). - + 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 in several places, including - the C++ binding. This is not noted by gcc unless we use the - -fno-builtin option (reported by Igor Schein ). - + 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 ). - + 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 : - + 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 ). - + 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 ). - + 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 ). - -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 to autoconf mailing list). - + modify headers.sh to avoid creating temporary files in the build - directory when installing headers (reported by Sergei Pokrovsky - ) - -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 (for elf64_ia64), - Bernd Kuemmerlen (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 ). - + correct typo in curs_getch.3x manpage regarding noecho (reported by - David Malone ). - + 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 ). - -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 - ). - + 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 in lib_napms.c to compile on MacOS X DP3 - (reported by Gerben Wierda ). - + 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 - , 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 ). - + 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 : - + 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 ). - + 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 ). - + 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 and - Ismael Cordeiro ). - -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 , 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 ). - + update CF_SHARED_OPTS macro for SCO Unixware 7.1 to allow building - shared libraries (reported/tested by Thanh ). - + 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 ). - + 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 ). - + modify raw() and noraw() to clear/restore IEXTEN flag which affects - stty lnext on systems such as FreeBSD (report by Bruce Evans - , via Jason Evans ). - + 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 - ). - + 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 ). - + 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 - ) - + 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 ) - -19991030 - + modify linux terminfo entry to indicate that dim does not mix with - color (reported by Klaus Weide ). - + 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 - )). - + 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 - ). - + 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 - ) - + 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 ). - + 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 - , patch by Juergen Pfeifer). - -990918 pre-release - + add acsc string to HP 70092 terminfo entry (patch by Joerg Wunsch - ). - + 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 , 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 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 ). - > 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 ). - + 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 ). - + 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 ) - + 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 ). - + 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 ). - -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 ) - + 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 ). - + 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 , 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 ). - + 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 ). - -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 ). - + 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" - ) - -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 - ). - + 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 ). - -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 : - + 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 ). - + 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 ). - + 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 ). - -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 ). - + 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 . - + 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 ). - + 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 ). - + 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 - ) - -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 - ). - + 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 - 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 ). - -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 ). - + 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 - ). - + 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 ). - + 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 - 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 and Liviu - Daia). - -980808 - + fix missing include in ditto.c (reported by Bernhard - Rosenkraenzer ) - + add NCSA telnet terminfo entries from Francesco Potorti - , 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 ). - -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 , responding to Duncan Simpson - ). - + arm100 terminfo entries from Dave Millen ). - + 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 ). - + 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 ). - + 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 - ) - -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 ). - > 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 - ) - -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 ). - + 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 ). - + 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 ). - + 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 ). - + modify linux terminfo description to reset color palette (reported - by Telford Tendys ). - + 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 ). - + 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 - ). - + 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 ). - + 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 ). - -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 ) - + 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 ). - + 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 , patch by Thomas Esser - ) - + 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 ). - + modify some man-pages so no '.' or '..' falls between TH and SH - macros, to accommodate man_db program (reported by Ian T. Zimmerman - ). - + 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 ). - + minor documentation fixes (patch by Juergen Pfeifer). - + add setlocale() call to ncurses.c (reported by Claes G. Lindblad - ). - + correct sign-extension in lib_insstr.c (reported by Sotiris - Vassilopoulos ) - -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 ). - + 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 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 - ). - > 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 - + 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 ). - + 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 ). - > 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 - ) - + 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 ). - -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 the same as , 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 - (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 ) - + correct tputs(), which could dereference a null cur_term if invoked - before terminal is initialized (patch by Christopher Seawood - ) - > 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 ) - -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 - + 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 ). - (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 ). - + 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 ). - + 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 . - + 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 ). - + 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 - ) - + 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 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 ) - > 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 ). - > 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 ). - > 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 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 ). - + corrected mapping for ACS_LANTERN, which was 'I' rather than 'i' - (reported by Klaus Weide ). - + many corrections to make progs/capconvert work, as well as make it - reasonably portable and integrated with ncurses 4.1 (reported by Dave - Furstenau ). - -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 ). - + 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 ) - + 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 ) - + 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 ) - + 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 - 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 ). 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 - ) - + 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 ) - + 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 ) - + 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 ). - + 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 ) - + add missing definition for ABI_VERSION to c++/Makefile.in (reported - by Satoshi Adachi ). - + modify link flags to accommodate HP-UX linker which embeds absolute - pathnames in executables linked against shared libraries (reported by - Jason Evans , solved by Alan Shutko - ). - + 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 ) - -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 - ) - -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 ). - -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 - ) - + 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 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 ) - -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 - ) - + 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 ) - + 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 ). - + 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 in configuration test for regex.h (patch by - Andreas Schwab) - + make infocmp recognize -I option, for SVr4 compatibility (reported by - Andreas Schwab ) - -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 - ) - + modify headers to accommodate compilers that don't allow duplicate - "#define" lines for NCURSES_VERSION (reported by Larry W. Virden - ) - + 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 - ) - + 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 ) - -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 ). 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 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 ) - + 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 - ). - -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 - ). - + 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 ) - + 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 - ). - + 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 ) - + 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 ). - + 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 ) - + 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 ) - -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 ) - + 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 ) - + 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 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 - ) - + 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 - + 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 ). - + 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 - ). - + autoconf mods (Tim Mooney ). - + locale fix for forms (Philippe De Muyter ) - + 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 ) - + 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 , 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 in lib_termcap.c to ensure that the prototypes - are consistent (they weren't). -* corrected prototype of tputs in -* 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 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 56bc385..0000000 --- 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 4c04816..0000000 --- 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 22acd0f..0000000 --- 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 faba489..0000000 --- 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 ], - [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 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 ], - [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 -#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 -#include -],[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 . -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 -#include - -#if defined(__cplusplus) - -#ifdef HAVE_GXX_BUILTIN_H -#include -#elif HAVE_GPP_BUILTIN_H -#include -#elif HAVE_BUILTIN_H -#include -#endif - -#else - -#if $cf_cv_header_stdbool_h -#include -#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 ],[ - 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 or , 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 -#endif -#include -#include -#include ], - [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 < -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 '\' | 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 NCursesUserPanel : public NCursesPanel -{ -public: - NCursesUserPanel (int nlines, - int ncols, - int begin_y = 0, - int begin_x = 0, - const T* p_UserData = static_cast(0)) - : NCursesPanel (nlines, ncols, begin_y, begin_x) - { - }; - NCursesUserPanel(const T* p_UserData = static_cast(0)) : NCursesPanel() - { - }; - - virtual ~NCursesUserPanel() {}; -}; -],[ - const char* p_UserData = static_cast(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 -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 -],[],[ - 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 ],[ - 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 -#include -#include - -#ifdef HAVE_SYS_TIME_H -#include -#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 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 -#ifdef HAVE_POLL_H -#include -#else -#include -#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 -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_TERMIOS_H -#include -#define TTY struct termios -#else -#ifdef HAVE_TERMIO_H -#include -#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 -#include ],[ - va_list ap; - vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[ -AC_TRY_LINK([ -#include -#include ],[ - 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 -#include ],[ - 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 < conftest.$ac_ext <&AC_FD_CC - case $cf_attribute in - scanf|printf) - cat >conftest.h <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 <>conftest.ads <>conftest.adb <&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 <>conftest.adb <&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 ],[ -#ifndef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_gnu_source=no], - [cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" - AC_TRY_COMPILE([#include ],[ -#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 - ], - [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 < -],[ - 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 - -#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 ],[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 -#include - ],[ - /* 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 ],[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.so -> -dnl lib.so. -> -dnl lib.so.. -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 <> Makefile -fi -cat >> Makefile <> Makefile <> Makefile <> Makefile <headers.sh <>headers.sh </<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "" >> \$TMPSED - ;; -esac -CF_EOF - -else - cat >>headers.sh <//" >> \$TMPSED - NAME=ncurses.h - fi - echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "s///" >> \$TMPSED - ;; -esac -CF_EOF -fi -cat >>headers.sh < \$TMPSRC -NAME=\`basename \$SRC\` -CF_EOF -if test $WITH_CURSES_H != yes; then - cat >>headers.sh <>headers.sh <>$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 </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 <&AC_FD_CC 1>/dev/null - fi - rm -f conftest.$ac_ext data.o - cat >conftest.$ac_ext <&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 -#include -#ifdef HAVE_UNISTD_H -#include -#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 </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_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_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -else -cat >>$cf_edit_man <\$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -fi -CF_EOF - -if test $with_curses_h != yes ; then -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP - fi -CF_EOF - -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man < - #include - ], - [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 -#include -#include -#include -#include -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 ],[ -#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 ],[ -#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 ],[ -#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 -],[ -#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 -],[ -#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 < -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 -#include ],[ - 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 ],[ - char *p = compile("", "", "", 0); - int x = step("", ""); - ],[cf_cv_regex="regexp.h"],[ - cf_save_LIBS="$LIBS" - LIBS="-lgen $LIBS" - AC_TRY_LINK([#include ],[ - 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..dylib) or postfix -dnl (ex: libncurses.so.). -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 ],[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 -#include -],[int x = SIGWINCH], - [cf_cv_define_sigwinch=yes], - [AC_TRY_COMPILE([ -#undef _XOPEN_SOURCE -#undef _POSIX_SOURCE -#undef _POSIX_C_SOURCE -#include -#include -],[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 -#include -],[ -#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 -#include -#include - -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 -#ifdef HAVE_TERMIOS_H -#include -#else -#ifdef HAVE_TERMIO_H -#include -#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 -#include -#endif -#if !defined(sun) || !defined(HAVE_TERMIOS_H) -#include -#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 ],[ -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 -#include ], - [struct sigaction act], - [sigact_bad=no], - [ -AC_TRY_COMPILE([ -#define _POSIX_SOURCE -#include -#include ], - [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 ], - [struct termios foo; int x = foo.c_iflag], - termios_bad=no, [ - AC_TRY_COMPILE([ -#define _POSIX_SOURCE -#include ], - [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 with ; 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 -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include -#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 -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 ], - [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 -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif], - [$1 state], - [cf_cv_$1=no], - [AC_TRY_COMPILE([ -#include -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#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 -#if (__FreeBSD_version >= 400017) -#include -#include -#else -#include -#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 - ;; -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 ],[ -#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 ],[ -#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 84d5bbe..0000000 --- a/contrib/ncurses/announce.html.in +++ /dev/null @@ -1,600 +0,0 @@ - - - - -Announcing ncurses @VERSION@ - - - - - -

Announcing ncurses @VERSION@

- -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 -ftp://ftp.gnu.org/gnu/ncurses/ . -
It is also available at -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 -
-http://invisible-island.net/cdk/ -
-http://www.vexus.ca/products/CDK/ -
ded -
directory-editor -
-http://invisible-island.net/ded/ -
dialog -
the underlying application used in Slackware's setup, and the basis -for similar applications on GNU/Linux. -
-http://invisible-island.net/dialog/ -
lynx -
the character-screen WWW browser -
-http://lynx.isc.org/release/ -
Midnight Commander -
file manager -
-http://www.ibiblio.org/mc/ -
mutt -
mail utility -
-http://www.mutt.org/ -
ncftp -
file-transfer utility -
-http://www.ncftp.com/ -
nvi -
New vi versions 1.50 are able to use ncurses versions 1.9.7 and later. -
-http://www.bostic.com/vi/ -
-
pinfo -
Lynx-like info browser. -http://dione.ids.pl/~pborys/software/pinfo/ -
tin -
newsreader, supporting color, MIME -http://www.tin.org/ -
vh-1.6 -
Volks-Hypertext browser for the Jargon File -
-http://www.debian.org/Packages/unstable/text/vh.html -
-as well as some that use ncurses for the terminfo support alone: -
-
minicom -
terminal emulator -
- -http://alioth.debian.org/projects/minicom/ -
vile -
vi-like-emacs -
-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. -Jürgen Pfeifer wrote most of the form and menu libraries. -Ongoing work is being done by -Thomas Dickey. -Thomas Dickey -acts as the maintainer for the Free Software Foundation, -which holds the copyright on ncurses. -Contact the current maintainers at -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 -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 -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 -Richard Shuford's -archive . - - - diff --git a/contrib/ncurses/config.guess b/contrib/ncurses/config.guess deleted file mode 100755 index 6ac1d64..0000000 --- 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 . -# Please send patches to . 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 ." - -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 /* 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 - - 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 - #include - - 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 - 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 - #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' /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 - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # 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 < -# include -#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 - 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 -# 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 < 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 d89676e..0000000 --- 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 . 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 ." - -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 7ef479b..0000000 --- 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 -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#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 < if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - 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 </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 <\?\"\']*) - 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 <&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 &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:1692: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:1694: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:1697: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:1699: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &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 ' \ - '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 -$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 - 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 -_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 - 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 -_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 -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 -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 < -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 <&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 &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:2820: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:2822: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:2825: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:2827: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &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 ' \ - '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 -$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 </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 -_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 -/* 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 -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 < -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 <>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 < -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 '\' | 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 -#if (__FreeBSD_version >= 400017) -#include -#include -#else -#include -#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 -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 <&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 <&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 -#include -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 <&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 -/* 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 <&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 -/* 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 <&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 -#include -#ifdef HAVE_UNISTD_H -#include -#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 -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 -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 - ;; -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 -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 -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 -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 -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 -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 -#include - -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 -#include - -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 -#include - -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 -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 - -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 - -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 -/* 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 <&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 -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 -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#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 -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#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 -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#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 -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#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 -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#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 -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#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 - /* 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 - /* 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 - /* 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 <&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 - /* 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 - /* 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 <&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 -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 -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 <&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 -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 -#include - -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_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_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -else -cat >>$cf_edit_man <\$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -fi -CF_EOF - -if test $with_curses_h != yes ; then -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP - fi -CF_EOF - -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man <&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 -#include -#include -#include - -_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 - -_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 - -_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 -#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 <&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 <&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 -_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 <&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 <&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 <&5 -echo "$as_me: checking for $CC __attribute__ directives..." >&6;} -cat > conftest.$ac_ext <&5 - case $cf_attribute in - scanf|printf) - cat >conftest.h <conftest.h <&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 -_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 <&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 -_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 <&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 -/* 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 - #include - -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 -#include -#include -#include - -_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 - -_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 - -_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 -#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 -#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 <&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 -#include -#include - -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 -#include -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 -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 -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 < 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 <&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 -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include -#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 -#include -#include -#include -/* 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 <&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 -#include -#include - -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 <&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 -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 <&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 -#endif -#include -#include -#include -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 <&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 <&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 <&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 <&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 -/* 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 <&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 -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 -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 -#include -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 -#include -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 -#include -#include - -#ifdef HAVE_SYS_TIME_H -#include -#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 <&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 <&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 -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 -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 -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_TERMIOS_H -#include -#define TTY struct termios -#else -#ifdef HAVE_TERMIO_H -#include -#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 -#include -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 -#include -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 -#include -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 -/* 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 -#include -#include -#include -#include -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 -/* 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 -#include -#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 <&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 -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 -#ifdef HAVE_TERMIOS_H -#include -#else -#ifdef HAVE_TERMIO_H -#include -#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 -#include -#endif -#if !defined(sun) || !defined(HAVE_TERMIOS_H) -#include -#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 <&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 -/* 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 -/* 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 -#ifdef HAVE_POLL_H -#include -#else -#include -#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 - - 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 -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 -_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 - -#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 - -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 -#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 -#include - -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 -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 < -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 - -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 - 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 -_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 - 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 -_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 <&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 -#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 -#include - -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 -#include - -#if defined(__cplusplus) - -#ifdef HAVE_GXX_BUILTIN_H -#include -#elif HAVE_GPP_BUILTIN_H -#include -#elif HAVE_BUILTIN_H -#include -#endif - -#else - -#if $cf_cv_header_stdbool_h -#include -#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 - -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 <>confdefs.h <&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 NCursesUserPanel : public NCursesPanel -{ -public: - NCursesUserPanel (int nlines, - int ncols, - int begin_y = 0, - int begin_x = 0, - const T* p_UserData = static_cast(0)) - : NCursesPanel (nlines, ncols, begin_y, begin_x) - { - }; - NCursesUserPanel(const T* p_UserData = static_cast(0)) : NCursesPanel() - { - }; - - virtual ~NCursesUserPanel() {}; -}; - -int -main () -{ - - const char* p_UserData = static_cast(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 -#include - -#if defined(__cplusplus) - -#ifdef HAVE_GXX_BUILTIN_H -#include -#elif HAVE_GPP_BUILTIN_H -#include -#elif HAVE_BUILTIN_H -#include -#endif - -#else - -#if $cf_cv_header_stdbool_h -#include -#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 <>conftest.adb <&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 <>conftest.adb <&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 <>confdefs.h <&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 <>confdefs.h <&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 ." -EOF - -cat >>$CONFIG_STATUS <>$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 <>$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 <>$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 <\$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 <>$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 <> $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 < $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 <> Makefile -fi -cat >> Makefile <> Makefile <> Makefile <> Makefile <headers.sh <>headers.sh </<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "" >> \$TMPSED - ;; -esac -CF_EOF - -else - cat >>headers.sh <//" >> \$TMPSED - NAME=ncurses.h - fi - echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "s///" >> \$TMPSED - ;; -esac -CF_EOF -fi -cat >>headers.sh < \$TMPSRC -NAME=\`basename \$SRC\` -CF_EOF -if test $WITH_CURSES_H != yes; then - cat >>headers.sh <>headers.sh <>$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 8fa5e4e..0000000 --- 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 ],[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 -#include -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 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 911bdc7..0000000 --- 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 <) { - if (/for\s+(\w+)\s+in\s*\$(PATH|ac_dummy)\s*;/) { - $checking_path = 1; - $varname = $1; - $subst= < $@ - -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///g' >> subst.tmp - @echo 's/<\/B>/<\/STRONG>/g' >> subst.tmp - @echo 's///g' >> subst.tmp - @echo 's/<\/I>/<\/EM>/g' >> subst.tmp - @misc/csort < subst.tmp | uniq > subst.sed - @echo '/<\/TITLE>/a\' >> subst.sed - @echo '\' >> subst.sed - @echo '' >> 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 '' > 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 8e0ba5c..0000000 --- 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 @ - - 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 - - (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 3a10106..0000000 --- a/contrib/ncurses/doc/html/NCURSES-Programming-HOWTO.html +++ /dev/null @@ -1,6413 +0,0 @@ - - - - -NCURSES Programming HOWTO - - - -

-
-

NCURSES Programming -HOWTO

-

Pradeep Padala

- -

v1.9, 2005-06-20

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Revision -History
Revision 1.92005-06-20Revised by: ppadala
The license has been changed to the -MIT-style license used by NCURSES. Note that the programs are also -re-licensed under this.
Revision 1.82005-06-17Revised by: ppadala
Lots of updates. Added references and -perl examples. Changes to examples. Many grammatical and stylistic -changes to the content. Changes to NCURSES history.
Revision 1.7.12002-06-25Revised by: ppadala
Added a README file for building and -instructions for building from source.
Revision 1.72002-06-25Revised by: ppadala
Added "Other formats" section and made -a lot of fancy changes to the programs. Inlining of programs is -gone.
Revision 1.6.12002-02-24Revised by: ppadala
Removed the old Changelog section, -cleaned the makefiles
Revision 1.62002-02-16Revised by: ppadala
Corrected a lot of spelling mistakes, -added ACS variables section
Revision 1.52002-01-05Revised by: ppadala
Changed structure to present proper -TOC
Revision 1.3.12001-07-26Revised by: ppadala
Corrected maintainers paragraph, -Corrected stable release number
Revision 1.32001-07-24Revised by: ppadala
Added copyright notices to main -document (LDP license) and programs (GPL), Corrected -printw_example.
Revision 1.22001-06-05Revised by: ppadala
Incorporated ravi's changes. Mainly to -introduction, menu, form, justforfun sections
Revision 1.12001-05-22Revised by: ppadala
Added "a word about window" section, -Added scanw_example.
-
-
-
-

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 -this -address

-
-
-
-
-
-
Table of Contents
-
1. Introduction
-
-
-
1.1. What is NCURSES?
-
1.2. What we can do with -NCURSES
-
1.3. Where to get it
-
1.4. Purpose/Scope of the document
-
1.5. About the Programs
-
1.6. Other Formats of the -document
-
1.7. Credits
-
1.8. Wish List
-
1.9. Copyright
-
-
-
2. Hello World !!!
-
-
-
2.1. Compiling With the NCURSES -Library
-
2.2. Dissection
-
-
-
3. The Gory Details
-
4. Initialization
-
-
-
4.1. Initialization functions
-
4.2. raw() and cbreak()
-
4.3. echo() and noecho()
-
4.4. keypad()
-
4.5. halfdelay()
-
4.6. Miscellaneous Initialization -functions
-
4.7. An Example
-
-
-
5. A Word about Windows
-
6. Output functions
-
-
-
6.1. addch() class of functions
-
6.2. mvaddch(), waddch() and -mvwaddch()
-
6.3. printw() class of -functions
-
6.4. addstr() class of -functions
-
6.5. A word of caution
-
-
-
7. Input functions
-
-
-
7.1. getch() class of functions
-
7.2. scanw() class of functions
-
7.3. getstr() class of -functions
-
7.4. Some examples
-
-
-
8. Attributes
-
-
-
8.1. The details
-
8.2. attron() vs attrset()
-
8.3. attr_get()
-
8.4. attr_ functions
-
8.5. wattr functions
-
8.6. chgat() functions
-
-
-
9. Windows
-
-
-
9.1. The basics
-
9.2. Let there be a Window !!!
-
9.3. Explanation
-
9.4. The other stuff in the -example
-
9.5. Other Border -functions
-
-
-
10. Colors
-
-
-
10.1. The basics
-
10.2. Changing Color -Definitions
-
10.3. Color Content
-
-
-
11. Interfacing with the key board
-
-
-
11.1. The Basics
-
11.2. A Simple Key Usage -example
-
-
-
12. Interfacing with the mouse
-
-
-
12.1. The Basics
-
12.2. Getting the events
-
12.3. Putting it all Together
-
12.4. Miscellaneous -Functions
-
-
-
13. Screen Manipulation
-
-
-
13.1. getyx() functions
-
13.2. Screen Dumping
-
13.3. Window Dumping
-
-
-
14. Miscellaneous features
-
-
-
14.1. curs_set()
-
14.2. Temporarily Leaving Curses -mode
-
14.3. ACS_ variables
-
-
-
15. Other libraries
-
16. Panel Library
-
-
-
16.1. The Basics
-
16.2. Compiling With the Panels -Library
-
16.3. Panel Window Browsing
-
16.4. Using User Pointers
-
16.5. Moving and Resizing -Panels
-
16.6. Hiding and Showing -Panels
-
16.7. panel_above() and panel_below() -Functions
-
-
-
17. Menus Library
-
-
-
17.1. The Basics
-
17.2. Compiling With the Menu -Library
-
17.3. Menu Driver: The work horse of the -menu system
-
17.4. Menu Windows
-
17.5. Scrolling Menus
-
17.6. Multi Columnar Menus
-
17.7. Multi Valued Menus
-
17.8. Menu Options
-
17.9. The useful User Pointer
-
-
-
18. Forms Library
-
-
-
18.1. The Basics
-
18.2. Compiling With the Forms -Library
-
18.3. Playing with Fields
-
18.4. Form Windows
-
18.5. Field Validation
-
18.6. Form Driver: The work horse of the -forms system
-
-
-
19. Tools and Widget Libraries
-
-
-
19.1. CDK (Curses Development Kit)
-
19.2. The dialog
-
19.3. Perl Curses Modules CURSES::FORM -and CURSES::WIDGETS
-
-
-
20. Just For Fun !!!
-
-
-
20.1. The Game of Life
-
20.2. Magic Square
-
20.3. Towers of Hanoi
-
20.4. Queens Puzzle
-
20.5. Shuffle
-
20.6. Typing Tutor
-
-
-
21. References
-
-
-
-

1. -Introduction

-

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.

-

Suppose you wanted to print a line in color. Try typing this on -your console.

- - - - -
-
-echo "^[[0;31;40mIn Color"
-
-

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.

- - - - -
-
-echo "^[[0;37;40m"
-
-

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 termcap. 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 terminfo. -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.

-
-
-

1.1. What is -NCURSES?

-

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.

-

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.

-

A detailed history of NCURSES can be found in the NEWS file from -the source distribution. The current package is maintained by -Thomas Dickey. -You can contact the maintainers at bug-ncurses@gnu.org.

-
-
-
-

1.2. What -we can do with NCURSES

-

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.

-

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.

-

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.

-
-
-
-

1.3. -Where to get it

-

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.

-

Compiling the package

-

NCURSES can be obtained from ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz or any -of the ftp sites mentioned in http://www.gnu.org/order/ftp.html.

-

Read the README and INSTALL files for details on to how to -install it. It usually involves the following operations.

- - - - -
-
-    tar zxvf ncurses<version>.tar.gz  # unzip and untar the archive
-    cd ncurses<version>               # cd to the directory
-    ./configure                             # configure the build according to your 
-                                            # environment
-    make                                    # make it
-    su root                                 # become root
-    make install                            # install it
-
-

Using the RPM

-

NCURSES RPM can be found and downloaded from http://rpmfind.net . The RPM -can be installed with the following command after becoming -root.

- - - - -
-
-    rpm -i <downloaded rpm>
-
-
-
-
-

1.4. Purpose/Scope -of the document

-

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.

-
-
-
-

1.5. -About the Programs

-

All the programs in the document are available in zipped form -here. Unzip and untar it. The directory structure -looks like this.

- - - - -
-
-ncurses
-   |
-   |----> JustForFun     -- just for fun programs
-   |----> basics         -- basic programs
-   |----> demo           -- output files go into this directory after make
-   |          |
-   |          |----> exe -- exe files of all example programs
-   |----> forms          -- programs related to form library
-   |----> menus          -- programs related to menus library
-   |----> panels         -- programs related to panels library
-   |----> perl           -- perl equivalents of the examples (contributed
-   |                            by Anuradha Ratnaweera)
-   |----> Makefile       -- the top level Makefile
-   |----> README         -- the top level README file. contains instructions
-   |----> COPYING        -- copyright notice
-
-

The individual directories contain the following files.

- - - - -
-
-Description of files in each directory
---------------------------------------
-JustForFun
-    |
-    |----> hanoi.c   -- The Towers of Hanoi Solver
-    |----> life.c    -- The Game of Life demo
-    |----> magic.c   -- An Odd Order Magic Square builder 
-    |----> queens.c  -- The famous N-Queens Solver
-    |----> shuffle.c -- A fun game, if you have time to kill
-    |----> tt.c      -- A very trivial typing tutor
-
-  basics
-    |
-    |----> acs_vars.c            -- ACS_ variables example
-    |----> hello_world.c         -- Simple "Hello World" Program
-    |----> init_func_example.c   -- Initialization functions example
-    |----> key_code.c            -- Shows the scan code of the key pressed
-    |----> mouse_menu.c          -- A menu accessible by mouse
-    |----> other_border.c        -- Shows usage of other border functions apa
-    |                               -- rt from box()
-    |----> printw_example.c      -- A very simple printw() example
-    |----> scanw_example.c       -- A very simple getstr() example
-    |----> simple_attr.c         -- A program that can print a c file with 
-    |                               -- comments in attribute
-    |----> simple_color.c        -- A simple example demonstrating colors
-    |----> simple_key.c          -- A menu accessible with keyboard UP, DOWN 
-    |                               -- arrows
-    |----> temp_leave.c          -- Demonstrates temporarily leaving curses mode
-    |----> win_border.c          -- Shows Creation of windows and borders
-    |----> with_chgat.c          -- chgat() usage example
-
-  forms 
-    |
-    |----> form_attrib.c     -- Usage of field attributes
-    |----> form_options.c    -- Usage of field options
-    |----> form_simple.c     -- A simple form example
-    |----> form_win.c        -- Demo of windows associated with forms
-
-  menus 
-    |
-    |----> menu_attrib.c     -- Usage of menu attributes
-    |----> menu_item_data.c  -- Usage of item_name() etc.. functions
-    |----> menu_multi_column.c    -- Creates multi columnar menus
-    |----> menu_scroll.c     -- Demonstrates scrolling capability of menus
-    |----> menu_simple.c     -- A simple menu accessed by arrow keys
-    |----> menu_toggle.c     -- Creates multi valued menus and explains
-    |                           -- REQ_TOGGLE_ITEM
-    |----> menu_userptr.c    -- Usage of user pointer
-    |----> menu_win.c        -- Demo of windows associated with menus
-
-  panels 
-    |
-    |----> panel_browse.c    -- Panel browsing through tab. Usage of user 
-    |                           -- pointer
-    |----> panel_hide.c      -- Hiding and Un hiding of panels
-    |----> panel_resize.c    -- Moving and resizing of panels
-    |----> panel_simple.c    -- A simple panel example
-
-  perl
-    |----> 01-10.pl          -- Perl equivalents of first ten example programs
-
-

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.

-

For every example, I have included path name for the file -relative to the examples directory.

-

If you prefer browsing individual programs, point your browser -to http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/

-

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.

-
-
-
-

1.6. -Other Formats of the document

-

This howto is also availabe in various other formats on the -tldp.org site. Here are the links to other formats of this -document.

- -
-
-

1.6.2. -Building from source

-

If above links are broken or if you want to experiment with sgml -read on.

- - - - -
-
-
    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 <path to docbook html stylesheet>
-        NCURSES-Programming-HOWTO.sgml
-    to get pdf, first create a single html file of the HOWTO with 
-        jade -t sgml -i html -d <path to docbook html stylesheet> -V nochunks
-        NCURSES-Programming-HOWTO.sgml > NCURSES-ONE-BIG-FILE.html
-    then use htmldoc to get pdf file with
-        htmldoc --size universal -t pdf --firstpage p1 -f <output file name.pdf>
-        NCURSES-ONE-BIG-FILE.html
-    for ps, you would use
-        htmldoc --size universal -t ps --firstpage p1 -f <output file name.ps>
-        NCURSES-ONE-BIG-FILE.html
-
-

See LDP Author guide for more details. If all else failes, -mail me at ppadala@gmail.com

-
-
-
-
-

1.7. -Credits

-

I thank Sharath 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.

-

Perl equivalents of the example programs are contributed by -Anuradha -Ratnaweera.

-

Then comes Ravi Parimi, 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.

-
-
-
-

1.8. Wish -List

-

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 me.

-
    -
  • -

    Add examples to last parts of forms section.

    -
  • -
  • -

    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.

    -
  • -
  • -

    Add debug info. _tracef, _tracemouse stuff.

    -
  • -
  • -

    Accessing termcap, terminfo using functions provided by ncurses -package.

    -
  • -
  • -

    Working on two terminals simultaneously.

    -
  • -
  • -

    Add more stuff to miscellaneous section.

    -
  • -
-
-
-
-

1.9. -Copyright

-

Copyright © 2001 by Pradeep Padala.

-

Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, copy, -modify, merge, publish, distribute, distribute with modifications, -sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the -following conditions:

-

The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software.

-

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE.

-

Except as contained in this notice, the name(s) of the above -copyright holders shall not be used in advertising or otherwise to -promote the sale, use or other dealings in this Software without -prior written authorization.

-
-
-
-
-

2. Hello -World !!!

-

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.

-
-
-

2.1. -Compiling With the NCURSES Library

-

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.

- - - - -
-
-    #include <ncurses.h>
-    .
-    .
-    .
-
-    compile and link: gcc <program file> -lncurses
-
-
-

Example 1. The Hello World !!! Program

- - - - -
-
-#include <ncurses.h>
-
-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;
-}
-
-
-
-
-
-

2.2. -Dissection

-

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.

-
-
-

2.2.1. -About initscr()

-

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 stdscr) 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.

-

After this is done, we can do a variety of initializations to -customize our curses settings. These details will be explained -later .

-
-
-
-

2.2.2. -The mysterious refresh()

-

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.

-

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.

-

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 :-)

-
-
-
-

2.2.3. -About endwin()

-

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.

-
-
-
-
-
-

3. The Gory -Details

-

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.

-

Here we go...

-
-
-
-

4. -Initialization

-

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();

- -
-
-

4.2. raw() and -cbreak()

-

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 cbreak() 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.

-
-
-
-

4.3. echo() -and noecho()

-

These functions control the echoing of characters typed by the -user to the terminal. noecho() 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 noecho() 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.

-
-
-
-

4.4. -keypad()

-

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 keypad(stdscr, -TRUE) to enable this feature for the regular screen (stdscr). -You will learn more about key management in later sections of this -document.

-
-
-
-

4.5. -halfdelay()

-

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.

-
-
-
-

4.6. -Miscellaneous Initialization functions

-

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.

-
-
-
-

4.7. An -Example

-

Let's write a program which will clarify the usage of these -functions.

-
-

Example 2. Initialization Function Usage example

- - - - -
-
-#include <ncurses.h>
-
-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;
-}
-
-
-

This program is self-explanatory. But I used functions which -aren't explained yet. The function getch() is used to get a character from user. It is -equivalent to normal getchar() except -that we can disable the line buffering to avoid <enter> after -input. Look for more about getch()and -reading keys in the key management section . -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.

-
-
-
-
-

5. A -Word about Windows

-

Before we plunge into the myriad ncurses functions, let me clear -few things about windows. Windows are explained in detail in -following sections

-

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 stdscr 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.

-

For example, if you call

- - - - -
-
-    printw("Hi There !!!");
-    refresh();
-
-

It prints the string on stdscr at the present cursor position. -Similarly the call to refresh(), works on stdscr only.

-

Say you have created windows then you -have to call a function with a 'w' added to the usual function.

- - - - -
-
-    wprintw(win, "Hi There !!!");
-    wrefresh(win);
-
-

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.

- - - - -
-
-    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         */
-
-

Usually the w-less functions are macros which expand to -corresponding w-function with stdscr as the window parameter.

-
-
-
-

6. Output -functions

-

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.

-

There are three classes of functions which you can use to do -output on screen.

-
    -
  1. -

    addch() class: Print single character with attributes

    -
  2. -
  3. -

    printw() class: Print formatted output similar to printf()

    -
  4. -
  5. -

    addstr() class: Print strings

    -
  6. -
-

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.

-
-
-

6.1. addch() -class of functions

-

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 sections 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.

-

In order to combine a character with some attributes, you have -two options:

-
    -
  • -

    By OR'ing a single character with the desired attribute macros. -These attribute macros could be found in the header file -ncurses.h. For example, you want to -print a character ch(of type char) bold and underlined, you would -call addch() as below.

    - - - - -
    -
    -    addch(ch | A_BOLD | A_UNDERLINE);
    -
    -
  • -
  • -

    By using functions like attrset(),attron(),attroff(). These functions are -explained in the Attributes 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.

    -
  • -
-

Additionally, curses 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 ncurses.h. Try looking for macros beginning with -ACS_ in this file.

-
-
-
-

6.2. mvaddch(), -waddch() and mvwaddch()

-

mvaddch() is used to move the cursor -to a given point, and then print. Thus, the calls:

- - - - -
-
-    move(row,col);    /* moves the cursor to rowth row and colth column */
-    addch(ch);
-
-can be replaced by - - - - -
-
-    mvaddch(row,col,ch);
-
-

waddch() is similar to addch(), except that it adds a character into the -given window. (Note that addch() adds a -character into the window stdscr.)

-

In a similar fashion mvwaddch() -function is used to add a character into the given window at the -given coordinates.

-

Now, we are familiar with the basic output function addch(). But, if we want to print a string, it -would be very annoying to print it character by character. -Fortunately, ncurses provides -printf-like or puts-like functions.

-
-
-
-

6.3. -printw() class of functions

-

These functions are similar to printf() with the added capability of printing at -any position on the screen.

-
-
-

6.3.1. printw() and mvprintw

-

These two functions work much like printf(). mvprintw() 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 printw() function, use move() first and then use printw() though I see no point why one should avoid -using mvprintw(), you have the -flexibility to manipulate.

-
-
-
-

6.3.2. wprintw() and mvwprintw

-

These two functions are similar to above two except that they -print in the corresponding window given as argument.

-
-
-
-

6.3.3. -vwprintw()

-

This function is similar to vprintf(). This can be used when variable number of -arguments are to be printed.

-
-
-
-

6.3.4. A Simple printw example

-
-

Example 3. A Simple printw example

- - - - -
-
-#include <ncurses.h>                   /* ncurses.h includes stdio.h */  
-#include <string.h> 
- 
-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;
-}
-
-
-

Above program demonstrates how easy it is to use printw. You just feed the coordinates and the -message to be appeared on the screen, then it does what you -want.

-

The above program introduces us to a new function getmaxyx(), a macro defined in ncurses.h. It gives the number of columns and the -number of rows in a given window. getmaxyx() does this by updating the variables -given to it. Since getmaxyx() is not a -function we don't pass pointers to it, we just give two integer -variables.

-
-
-
-
-

6.4. -addstr() class of functions

-

addstr() is used to put a character -string into a given window. This function is similar to calling -addch() once for each character in a -given string. This is true for all output functions. There are -other functions from this family such as mvaddstr(),mvwaddstr() and waddstr(), 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.

-
-
-
-

6.5. A word of -caution

-

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 -windows section.

-
-
-
-
-

7. Input -functions

-

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.

-
    -
  1. -

    getch() class: Get a character

    -
  2. -
  3. -

    scanw() class: Get formatted input

    -
  4. -
  5. -

    getstr() class: Get strings

    -
  6. -
-
-
-

7.1. getch() -class of functions

-

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 key management section .

-
-
-
-

7.2. scanw() -class of functions

-

These functions are similar to scanf() with the added capability of getting the -input from any location on the screen.

-
-
-

7.2.1. -scanw() and mvscanw

-

The usage of these functions is similar to that of sscanf(), where the line to be scanned is provided -by wgetstr() function. That is, these -functions call to wgetstr() -function(explained below) and uses the resulting line for a -scan.

-
-
-
-

7.2.2. wscanw() and mvwscanw()

-

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.

-
-
-
-

7.2.3. -vwscanw()

-

This function is similar to vscanf(). -This can be used when a variable number of arguments are to be -scanned.

-
-
-
-
-

7.3. -getstr() class of functions

-

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 getch() until a -newline, carriage return, or end-of-file is received. The resulting -string of characters are pointed to by str, which is a character pointer provided by the -user.

-
-
-
-

7.4. Some -examples

-
-

Example 4. A Simple scanw example

- - - - -
-
-#include <ncurses.h>                   /* ncurses.h includes stdio.h */  
-#include <string.h> 
- 
-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;
-}
-
-
-
-
-
-
-

8. -Attributes

-

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.

-
-

Example 5. A Simple Attributes example

- - - - -
-
-/* pager functionality by Joseph Spainhour" <spainhou@bellsouth.net> */
-#include <ncurses.h>
-#include <stdlib.h>
-
-int main(int argc, char *argv[])
-{ 
-  int ch, prev, row, col;
-  prev = EOF;
-  FILE *fp;
-  int y, x;
-
-  if(argc != 2)
-  {
-    printf("Usage: %s <a c file name>\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("<-Press Any Key->");      /* tell the user to press a key */
-      getch();
-      clear();                          /* clear the screen */
-      move(0, 0);                       /* start at the beginning of the screen */
-    }
-    if(prev == '/' && 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 == '*' && ch == '/')
-      attroff(A_BOLD);                  /* Switch it off once we got *
-                                         * and then / */
-    prev = ch;
-  }
-  endwin();                             /* End curses mode */
-  fclose(fp);
-  return 0;
-}
-
-
-

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 attron() . When we get the pattern */ it is -switched off by attroff() .

-

The above program also introduces us to two useful functions -getyx() and move(). 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 -move() moves the cursor to the -co-ordinates given to it.

-

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.

-
-
-

8.1. -The details

-

Let's get into more details of attributes. The functions -attron(), attroff(), attrset() , and -their sister functions attr_get() etc.. -can be used to switch attributes on/off , get attributes and -produce a colorful display.

-

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 <curses.h> can be passed to -these functions.

- - - - -
-
-    
-    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 
-    
-
-

The last one is the most colorful one :-) Colors are explained -in the next sections.

-

We can OR(|) any number of above attributes to get a combined -effect. If you wanted reverse video with blinking characters you -can use

- - - - -
-
-    attron(A_REVERSE | A_BLINK);
-
-
-
-
-

8.2. attron() vs attrset()

-

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 standend() which is equivalent to attrset(A_NORMAL) which turns off all attributes -and brings you to normal mode.

-
-
-
-

8.3. -attr_get()

-

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.

-
-
-
-

8.4. attr_ -functions

-

There are series of functions like attr_set(), attr_on etc.. -These are similar to above functions except that they take -parameters of type attr_t.

-
-
-
-

8.5. wattr -functions

-

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.

-
-
-
-

8.6. chgat() -functions

-

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.

-

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.

- - - - -
-
-    chgat(-1, A_REVERSE, 0, NULL);
-
-

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.

-

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.

-
-

Example 6. Chgat() Usage example

- - - - -
-
-#include <ncurses.h>
-
-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;
-}
-
-
-

This example also introduces us to the color world of curses. -Colors will be explained in detail later. Use 0 for no color.

-
-
-
-
-

9. -Windows

-

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.

-
-
-

9.1. The -basics

-

A Window can be created by calling the function newwin(). 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.

-
-
-
-

9.2. Let -there be a Window !!!

-

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 -box() can be used to draw a border -around the window. Let's explore these functions in more detail in -this example.

-
-

Example 7. Window Border example

- - - - -
-
-#include <ncurses.h>
-
-
-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);
-}
-
-
-
-
-
-

9.3. -Explanation

-

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.

-

The create_newwin() function creates -a window with newwin() and displays a -border around it with box. The function destroy_win() first erases the window from screen -by painting a border with ' ' character and then calling -delwin() to deallocate memory related to -it. Depending on the key the user presses, starty or startx is -changed and a new window is created.

-

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:

- - - - -
-
-    wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');
-
-

it produces some thing like

- - - - -
-
-    +------------+
-    |            |
-    |            |
-    |            |
-    |            |
-    |            |
-    |            |
-    +------------+
-
-
-
-
-

9.4. The -other stuff in the example

-

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 getch() 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.

-
-
-
-

9.5. Other Border functions

-

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.

-

The following program uses mvhline() -and mvvline() to achieve similar effect. -These two functions are simple. They create a horizontal or -vertical line of the specified length at the specified -position.

-
-

Example 8. More border functions

- - - - -
-
-#include <ncurses.h>
-
-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(&win);
-        print_win_params(&win);
-
-        attron(COLOR_PAIR(1));
-        printw("Press F1 to exit");
-        refresh();
-        attroff(COLOR_PAIR(1));
-        
-        create_box(&win, TRUE);
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case KEY_LEFT:
-                                create_box(&win, FALSE);
-                                --win.startx;
-                                create_box(&win, TRUE);
-                                break;
-                        case KEY_RIGHT:
-                                create_box(&win, FALSE);
-                                ++win.startx;
-                                create_box(&win, TRUE);
-                                break;
-                        case KEY_UP:
-                                create_box(&win, FALSE);
-                                --win.starty;
-                                create_box(&win, TRUE);
-                                break;
-                        case KEY_DOWN:
-                                create_box(&win, FALSE);
-                                ++win.starty;
-                                create_box(&win, TRUE);
-                                break;  
-                }
-        }
-        endwin();                       /* End curses mode                */
-        return 0;
-}
-void init_win_params(WIN *p_win)
-{
-        p_win->height = 3;
-        p_win->width = 10;
-        p_win->starty = (LINES - p_win->height)/2;      
-        p_win->startx = (COLS - p_win->width)/2;
-
-        p_win->border.ls = '|';
-        p_win->border.rs = '|';
-        p_win->border.ts = '-';
-        p_win->border.bs = '-';
-        p_win->border.tl = '+';
-        p_win->border.tr = '+';
-        p_win->border.bl = '+';
-        p_win->border.br = '+';
-
-}
-void print_win_params(WIN *p_win)
-{
-#ifdef _DEBUG
-        mvprintw(25, 0, "%d %d %d %d", p_win->startx, p_win->starty, 
-                                p_win->width, p_win->height);
-        refresh();
-#endif
-}
-void create_box(WIN *p_win, bool flag)
-{       int i, j;
-        int x, y, w, h;
-
-        x = p_win->startx;
-        y = p_win->starty;
-        w = p_win->width;
-        h = p_win->height;
-
-        if(flag == TRUE)
-        {       mvaddch(y, x, p_win->border.tl);
-                mvaddch(y, x + w, p_win->border.tr);
-                mvaddch(y + h, x, p_win->border.bl);
-                mvaddch(y + h, x + w, p_win->border.br);
-                mvhline(y, x + 1, p_win->border.ts, w - 1);
-                mvhline(y + h, x + 1, p_win->border.bs, w - 1);
-                mvvline(y + 1, x, p_win->border.ls, h - 1);
-                mvvline(y + 1, x + w, p_win->border.rs, h - 1);
-
-        }
-        else
-                for(j = y; j <= y + h; ++j)
-                        for(i = x; i <= x + w; ++i)
-                                mvaddch(j, i, ' ');
-                                
-        refresh();
-
-}
-
-
-
-
-
-
-

10. Colors

-
-

10.1. The -basics

-

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.

-
-

Example 9. A Simple Color example

- - - - -
-
-#include <ncurses.h>
-
-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();
-}
-
-
-
-

As you can see, to start using color, you should first call the -function start_color(). 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 has_colors() function, -which returns FALSE if the terminal does not support color.

-

Curses initializes all the colors supported by terminal when -start_color() is called. These can be accessed by the define -constants like COLOR_BLACK 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 -init_pair() 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 COLOR_PAIR()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.

-

The following colors are defined in curses.h. You can use these as parameters for -various color functions.

- - - - -
-
-        COLOR_BLACK   0
-        COLOR_RED     1
-        COLOR_GREEN   2
-        COLOR_YELLOW  3
-        COLOR_BLUE    4
-        COLOR_MAGENTA 5
-        COLOR_CYAN    6
-        COLOR_WHITE   7
-
-
-
-
-

10.2. Changing Color Definitions

-

The function init_color()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

- - - - -
-
-    init_color(COLOR_RED, 700, 0, 0);
-    /* param 1     : color name
-     * param 2, 3, 4 : rgb content min = 0, max = 1000 */
-
-

If your terminal cannot change the color definitions, the -function returns ERR. The function can_change_color() 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).

-
-
-
-

10.3. -Color Content

-

The functions color_content() and -pair_content() can be used to find the -color content and foreground, background combination for the -pair.

-
-
-
-
-

11. Interfacing with the -key board

-
-

11.1. The -Basics

-

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.

-

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 getch() 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.

-

getch() 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 -curses.h. 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.

-

For example, if you call getch() like this

- - - - -
-
-    int ch;
-
-    ch = getch();
-
-

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.

-

The following code piece will do that job.

- - - - -
-
-    if(ch == KEY_LEFT)
-        printw("Left arrow is pressed\n");
-
-

Let's write a small program which creates a menu which can be -navigated by up and down arrows.

-
-
-
-

11.2. A -Simple Key Usage example

-
-

Example 10. A Simple Key Usage example

- - - - -
-
-#include <stdio.h>
-#include <ncurses.h>
-
-#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 < 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);
-}
-
-
-
-
-
-
-
-

12. Interfacing with -the mouse

-

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.

-
-
-

12.1. The -Basics

-

Before you do any thing else, the events you want to receive -have to be enabled with mousemask().

- - - - -
-
-    mousemask(  mmask_t newmask,    /* The events you want to listen to */
-                mmask_t *oldmask)    /* The old events mask                */
-
-

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 ALL_MOUSE_EVENTS can -be used to get all the events.

-

The following are all the event masks:

- - - - -
-
-    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
-
-
-
-
-

12.2. -Getting the events

-

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 getmouse().

-

The code approximately looks like this:

- - - - -
-
-    MEVENT event;
-
-    ch = getch();
-    if(ch == KEY_MOUSE)
-        if(getmouse(&event) == OK)
-            .    /* Do some thing with the event */
-            .
-            .
-
-

getmouse() returns the event into the pointer given to it. It's -a structure which contains

- - - - -
-
-    typedef struct
-    {
-        short id;         /* ID to distinguish multiple devices */
-        int x, y, z;      /* event coordinates */
-        mmask_t bstate;   /* button state bits */
-    }    
-
-

The bstate is the main variable we -are interested in. It tells the button state of the mouse.

-

Then with a code snippet like the following, we can find out -what happened.

- - - - -
-
-    if(event.bstate & BUTTON1_PRESSED)
-        printw("Left Button Pressed");
-
-
-
-
-

12.3. -Putting it all Together

-

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.

-
-

Example 11. Access the menu with mouse !!!

- - - - -
-
-#include <ncurses.h>
-
-#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(&event) == OK)
-                        {       /* When the user clicks left mouse button */
-                                if(event.bstate & BUTTON1_PRESSED)
-                                {       report_choice(event.x + 1, event.y + 1, &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 < 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 < n_choices; ++choice)
-                if(mouse_y == j + choice && mouse_x >= i && mouse_x <= i + strlen(choices[choice]))
-                {       if(choice == n_choices - 1)
-                                *p_choice = -1;         
-                        else
-                                *p_choice = choice + 1; 
-                        break;
-                }
-}
-
-
-
-
-
-

12.4. Miscellaneous Functions

-

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.

-

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.

-
-
-
-
-

13. Screen -Manipulation

-

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.

-
-
-

13.1. getyx() -functions

-

The function getyx() 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

- - - - -
-
-    getyx(win, y, x);
-    /* win: window pointer
-     *   y, x: y, x co-ordinates will be put into this variables 
-     */
-
-

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().

-

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.

-
-
-
-

13.2. Screen -Dumping

-

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.

-
-
-
-

13.3. Window -Dumping

-

To store and restore windows, the functions putwin() and getwin() -can be used. putwin() puts the present -window state into a file, which can be later restored by -getwin().

-

The function copywin() 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.

-
-
-
-
-

14. Miscellaneous -features

-

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.

-
-
-

14.1. -curs_set()

-

This function can be used to make the cursor invisible. The -parameter to this function should be

- - - - -
-
-    0 : invisible      or
-    1 : normal    or
-    2 : very visible.
-
-
-
-
-

14.2. -Temporarily Leaving Curses mode

-

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 def_prog_mode() and then call endwin() to end the curses mode. This will leave -you in the original tty mode. To get back to curses once you are -done, call reset_prog_mode() . This -function returns the tty to the state stored by def_prog_mode(). Then do refresh(), and you are -back to the curses mode. Here is an example showing the sequence of -things to be done.

-
-

Example 12. Temporarily Leaving Curses Mode

- - - - -
-
-#include <ncurses.h>
-
-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;
-}
-
-
-
-
-
-

14.3. ACS_ -variables

-

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 box() 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.

-
-

Example 13. ACS Variables Example

- - - - -
-
-#include <ncurses.h>
-
-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;
-}
-
-
-
-
-
-
-

15. Other -libraries

-

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.

-
-
-
-

16. Panel -Library

-

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.

-

Don't despair. There's an elegant solution provided in panels -library. In the words of developers of ncurses

-

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.

-

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.

-
-
-

16.1. The -Basics

-

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.

-

The general flow of a panel program goes like this:

-
    -
  1. -

    Create the windows (with newwin()) to be attached to the -panels.

    -
  2. -
  3. -

    Create panels with the chosen visibility order. Stack them up -according to the desired visibility. The function new_panel() is -used to created panels.

    -
  4. -
  5. -

    Call update_panels() to write the panels to the virtual screen -in correct visibility order. Do a doupdate() to show it on the -screen.

    -
  6. -
  7. -

    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.

    -
  8. -
  9. -

    When you are done with the panel use del_panel() to delete the -panel.

    -
  10. -
-

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.

-
-
-
-

16.2. -Compiling With the Panels Library

-

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.

- - - - -
-
-    #include <panel.h>
-    .
-    .
-    .
-
-    compile and link: gcc <program file> -lpanel -lncurses
-
-
-

Example 14. Panel basics

- - - - -
-
-#include <panel.h>
-
-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 < 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();
-}
-
-
-
-

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.

-
-
-
-

16.3. -Panel Window Browsing

-

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.

-
-

Example 15. Panel Window Browsing Example

- - - - -
-
-#include <panel.h>
-
-#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 < 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();
-}
-
-
-
-
-
-

16.4. -Using User Pointers

-

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 set_panel_userptr(). It can be -accessed using the function panel_userptr() 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.

-
-
-
-

16.5. Moving and Resizing Panels

-

The function move_panel() 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.

-

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().

-

The following program shows these concepts, in supposedly simple -program. You can cycle through the window with <TAB> 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.

-
-

Example 16. Panel Moving and Resizing example

- - - - -
-
-#include <panel.h>
-
-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->x;
-        newy = top->y;
-        neww = top->w;
-        newh = top->h;
-        while((ch = getch()) != KEY_F(1))
-        {       switch(ch)
-                {       case 9:         /* Tab */
-                                top = (PANEL_DATA *)panel_userptr(stack_top);
-                                top_panel(top->next);
-                                stack_top = top->next;
-                                top = (PANEL_DATA *)panel_userptr(stack_top);
-                                newx = top->x;
-                                newy = top->y;
-                                neww = top->w;
-                                newh = top->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 <ENTER> 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 <ENTER> 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->label, top->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 < 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 < 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], &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();
-}
-
-
-

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 -<ENTER> 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.

-

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 <ENTER> causes the panel -to be moved by calling the function move_panel().

-

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.

-
-
-
-

16.6. -Hiding and Showing Panels

-

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.

-

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 panel_hidden() which tells -whether a panel is hidden or not is not working. A bug report was -also presented by Michael Andres here

-
-

Example 17. Panel Hiding and Showing example

- - - - -
-
-#include <panel.h>
-
-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], &panel_datas[0]);
-        set_panel_userptr(my_panels[1], &panel_datas[1]);
-        set_panel_userptr(my_panels[2], &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->hide == FALSE)
-                                {       hide_panel(my_panels[0]);
-                                        temp->hide = TRUE;
-                                }
-                                else
-                                {       show_panel(my_panels[0]);
-                                        temp->hide = FALSE;
-                                }
-                                break;
-                        case 'b':
-                                temp = (PANEL_DATA *)panel_userptr(my_panels[1]);
-                                if(temp->hide == FALSE)
-                                {       hide_panel(my_panels[1]);
-                                        temp->hide = TRUE;
-                                }
-                                else
-                                {       show_panel(my_panels[1]);
-                                        temp->hide = FALSE;
-                                }
-                                break;
-                        case 'c':
-                                temp = (PANEL_DATA *)panel_userptr(my_panels[2]);
-                                if(temp->hide == FALSE)
-                                {       hide_panel(my_panels[2]);
-                                        temp->hide = TRUE;
-                                }
-                                else
-                                {       show_panel(my_panels[2]);
-                                        temp->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 < 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();
-}
-
-
-
-
-
-

16.7. -panel_above() and panel_below() Functions

-

The functions panel_above() and -panel_below() 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.

-
-
-
-
-

17. Menus -Library

-

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.

-

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.

-
-
-

17.1. The -Basics

-

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.

-

The general flow of control of a menu program looks like -this.

-
    -
  1. -

    Initialize curses

    -
  2. -
  3. -

    Create items using new_item(). You can specify a name and -description for the items.

    -
  4. -
  5. -

    Create the menu with new_menu() by specifying the items to be -attached with.

    -
  6. -
  7. -

    Post the menu with menu_post() and refresh the screen.

    -
  8. -
  9. -

    Process the user requests with a loop and do necessary updates -to menu with menu_driver.

    -
  10. -
  11. -

    Unpost the menu with menu_unpost()

    -
  12. -
  13. -

    Free the memory allocated to menu by free_menu()

    -
  14. -
  15. -

    Free the memory allocated to the items with free_item()

    -
  16. -
  17. -

    End curses

    -
  18. -
-

Let's see a program which prints a simple menu and updates the -current selection with up, down arrows.

-
-
-
-

17.2. -Compiling With the Menu Library

-

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.

- - - - -
-
-    #include <menu.h>
-    .
-    .
-    .
-
-    compile and link: gcc <program file> -lmenu -lncurses
-
-
-

Example 18. Menu Basics

- - - - -
-
-#include <curses.h>
-#include <menu.h>
-
-#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 < 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();
-}
-        
-
-
-

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.

-

The menu_driver accepts following navigational requests.

- - - - -
-
-
     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.
-
-

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.

-
-
-
-

17.3. Menu -Driver: The work horse of the menu system

-

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.

-
    -
  • -

    REQ_LEFT_ITEM and REQ_RIGHT_ITEM

    -

    A Menu can be displayed with multiple columns for more than one -item. This can be done by using the menu_format()function. When a multi columnar menu -is displayed these requests cause the menu driver to move the -current selection to left or right.

    -
  • -
  • -

    REQ_UP_ITEM and REQ_DOWN_ITEM

    -

    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.

    -
  • -
  • -

    REQ_SCR_* options

    -

    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.

    -
  • -
  • -

    REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and -REQ_PREV_ITEM

    -

    These requests are self explanatory.

    -
  • -
  • -

    REQ_TOGGLE_ITEM

    -

    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().

    -
  • -
  • -

    Pattern Requests

    -

    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.

    -
  • -
  • -

    Mouse Requests

    -

    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,

    - - - - -
    -
    -       If  the  second argument is the KEY_MOUSE special key, the
    -       associated mouse event is translated into one of the above
    -       pre-defined  requests.   Currently only clicks in the user
    -       window (e.g. inside the menu display area or  the  decora­
    -       tion  window)  are handled. If you click above the display
    -       region of the menu, a REQ_SCR_ULINE is generated,  if  you
    -       doubleclick  a  REQ_SCR_UPAGE  is  generated  and  if  you
    -       tripleclick a REQ_FIRST_ITEM is generated.  If  you  click
    -       below  the  display region of the menu, a REQ_SCR_DLINE is
    -       generated, if you doubleclick a REQ_SCR_DPAGE is generated
    -       and  if  you  tripleclick a REQ_LAST_ITEM is generated. If
    -       you click at an item inside the display area of the  menu,
    -       the menu cursor is positioned to that item.
    -
    -
  • -
-

Each of the above requests will be explained in the following -lines with several examples whenever appropriate.

-
-
-
-

17.4. Menu -Windows

-

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.

-
-

Example 19. Menu Windows Usage example

- - - - -
-
-#include <menu.h>
-
-#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 < 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 < 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();
-}
-
-
-

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().

-
-
-
-

17.5. -Scrolling Menus

-

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.

-
-

Example 20. Scrolling Menus example

- - - - -
-
-#include <curses.h>
-#include <menu.h>
-
-#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 < 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 < 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();
-}
-
-
-

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().

-
-
-
-

17.6. -Multi Columnar Menus

-

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.

-
-

Example 21. Milt Columnar Menus Example

- - - - -
-
-#include <curses.h>
-#include <menu.h>
-
-#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 < 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 < n_choices; ++i)
-                free_item(my_items[i]);
-        endwin();
-}
-
-
-

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.

- - - - -
-
-       O_ONEVALUE
-            Only one item can be selected for this menu.
-
-       O_SHOWDESC
-            Display  the  item  descriptions  when  the  menu  is
-            posted.
-
-       O_ROWMAJOR
-            Display the menu in row-major order.
-
-       O_IGNORECASE
-            Ignore the case when pattern-matching.
-
-       O_SHOWMATCH
-            Move the cursor to within the item  name  while  pat­
-            tern-matching.
-
-       O_NONCYCLIC
-            Don't   wrap   around  next-item  and  previous-item,
-            requests to the other end of the menu.
-
-

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.

-
-
-
-

17.7. Multi Valued Menus

-

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.

-
-

Example 22. Multi Valued Menus example

- - - - -
-
-#include <curses.h>
-#include <menu.h>
-
-#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 < 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 <SPACE> to select or unselect an item.");
-        mvprintw(LINES - 2, 0, "<ENTER> 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 < 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();
-}
-        
-
-
-

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.

-

Now when the user presses <ENTER> 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().

-
-
-
-

17.8. Menu -Options

-

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 dos -games. 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.

-

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

-
-

Example 23. Menu Options example

- - - - -
-
-#include <menu.h>
-
-#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 < 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 <ENTER> 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 < n_choices; ++i)
-                free_item(my_items[i]);
-        free_menu(my_menu);
-        endwin();
-}
-        
-
-
-
-
-
-

17.9. The -useful User Pointer

-

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 -<ENTER>);

-
-

Example 24. Menu User Pointer Usage

- - - - -
-
-#include <curses.h>
-#include <menu.h>
-
-#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 < 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 <ENTER> 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 < 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);
-}       
-
-
-
-
-
-
-

18. Forms -Library

-

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.

-

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.

-
-
-

18.1. The -Basics

-

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.

-

The general flow of control of a forms program looks like -this.

-
    -
  1. -

    Initialize curses

    -
  2. -
  3. -

    Create fields using new_field(). You can specify the height and -width of the field, and its position on the form.

    -
  4. -
  5. -

    Create the forms with new_form() by specifying the fields to be -attached with.

    -
  6. -
  7. -

    Post the form with form_post() and refresh the screen.

    -
  8. -
  9. -

    Process the user requests with a loop and do necessary updates -to form with form_driver.

    -
  10. -
  11. -

    Unpost the menu with form_unpost()

    -
  12. -
  13. -

    Free the memory allocated to menu by free_form()

    -
  14. -
  15. -

    Free the memory allocated to the items with free_field()

    -
  16. -
  17. -

    End curses

    -
  18. -
-

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.

-
-
-
-

18.2. -Compiling With the Forms Library

-

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.

- - - - -
-
-    #include <form.h>
-    .
-    .
-    .
-
-    compile and link: gcc <program file> -lform -lncurses
-
-
-

Example 25. Forms Basics

- - - - -
-
-#include <form.h>
-
-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;
-}
-
-
-

Above example is pretty straight forward. It creates two fields -with new_field(). 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.

-

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.

-

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.

-
-
-
-

18.3. -Playing with Fields

-

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?

-
-
-

18.3.1. -Fetching Size and Location of Field

-

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().

- - - - -
-
-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 */
-
-
-
-
-

18.3.2. Moving -the field

-

The location of the field can be moved to a different position -with move_field().

- - - - -
-
-int move_field(    FIELD *field,              /* field to alter */
-                   int top, int left);        /* new upper-left corner */
-
-

As usual, the changed position can be queried with -field_infor().

-
-
-
-

18.3.3. -Field Justification

-

The justification to be done for the field can be fixed using -the function set_field_just().

- - - - -
-
-    int set_field_just(FIELD *field,          /* field to alter */
-               int justmode);         /* mode to set */
-    int field_just(FIELD *field);          /* fetch justify mode of field */
-
-

The justification mode valued accepted and returned by these -functions are NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or -JUSTIFY_CENTER.

-
-
-
-

18.3.4. Field Display Attributes

-

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.

- - - - -
-
-
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 */
-
-

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.

-
-

Example 26. Form Attributes example

- - - - -
-
-#include <form.h>
-
-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;
-}
-
-
-

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.

-
-
-
-

18.3.5. 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 */ 
-
-

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.

-
-
-
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_CHOICEwill 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. 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.

-
-

Example 27. Field Options Usage example

- - - - -
-
-#include <form.h>
-
-#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 < 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;
-}
-
-
-

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.

-
-
-
-

18.3.6. -Field Status

-

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.

- - - - -
-
-int set_field_status(FIELD *field,      /* field to alter */
-                   int status);         /* status to set */
-
-int field_status(FIELD *field);         /* fetch status of field */
-
-

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

-
-
-
-

18.3.7. -Field User Pointer

-

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.

- - - - -
-
-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 */
-
-
-
-
-

18.3.8. Variable-Sized Fields

-

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.

-

To make a field dynamically growable, the option O_STATIC should -be turned off. This can be done with a

- - - - -
-
-    field_opts_off(field_pointer, O_STATIC);
-
-

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

- - - - -
-
-int set_max_field(FIELD *field,    /* Field on which to operate */
-                  int max_growth); /* maximum growth allowed for the field */
-
-

The field info for a dynamically growable field can be retrieved -by

- - - - -
-
-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 */
-
-Though field_info work as usual, it is advisable to use this -function to get the proper attributes of a dynamically growable -field. -

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.

-

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.

-

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.

-

The above two paragraphs pretty much describe a dynamically -growable field's behavior. The way other parts of forms library -behaves is described below:

-
    -
  1. -

    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.

    -
  2. -
  3. -

    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.

    -
  4. -
  5. -

    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.

    -
  6. -
  7. -

    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.

    -
  8. -
  9. -

    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.

    -
  10. -
  11. -

    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.

    -
  12. -
-

Some of the above points make sense only after explaining form -driver. We will be looking into that in next few sections.

-
-
-
-
-

18.4. Form -Windows

-

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.

-

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.

-
-

Example 28. Form Windows Example

- - - - -
-
-#include <form.h>
-
-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, &rows, &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();
-}
-
-
-
-
-
-

18.5. -Field Validation

-

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.

-

Validation can be attached to a field with the following -function.

- - - - -
-
-int set_field_type(FIELD *field,          /* field to alter */
-                   FIELDTYPE *ftype,      /* type to associate */
-                   ...);                  /* additional arguments*/
-
-Once set, the validation type for a field can be queried with - - - - -
-
-FIELDTYPE *field_type(FIELD *field);      /* field to query */
-
-

The form driver validates the data in a field only when data is -entered by the end-user. Validation does not occur when

-
    -
  • -

    the application program changes the field value by calling -set_field_buffer.

    -
  • -
  • -

    linked field values are changed indirectly -- by changing the -field to which they are linked

    -
  • -
-

The following are the pre-defined validation types. You can also -specify custom validation, though it's a bit tricky and -cumbersome.

-

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. 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.

-

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 */
-                   int vmin, int vmax);   /* valid range */
-
-

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.

-

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.

-
-
-
-

18.6. Form -Driver: The work horse of the forms system

-

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().

- - - - -
-
-int form_driver(FORM *form,     /* form on which to operate     */
-                int request)    /* form request code         */
-
-

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.

-

The requests roughly can be divided into following categories. -Different requests and their usage is explained below:

-
-
-

18.6.1. Page -Navigation Requests

-

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.

- - - - -
-
-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 */
-
-

The following requests allow you to move to different pages

-
    -
  • -

    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.

-
-
-
-

18.6.2. 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.

-
-
-
-

18.6.3. 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.

-
-
-
-

18.6.4. -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.

-
-
-
-

18.6.5. 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_CLR_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.

-
-
-
-

18.6.6. 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.

-
-
-
-

18.6.7. 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. 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.

-
-
-
-
-
-

19. Tools and Widget -Libraries

-

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.

-
-
-

19.1. CDK (Curses -Development Kit)

-

In the author's words

-

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.

-

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 -http://invisible-island.net/cdk/ . Follow the -instructions in README file to install it.

-
-
-

19.1.1. -Widget List

-

The following is the list of widgets provided with cdk and their -description.

- - - - -
-
-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.
-===========================================================================
-
-

A few of the widgets are modified by Thomas Dickey in recent -versions.

-
-
-
-

19.1.2. Some -Attractive Features

-

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

-

If the string

- - - - -
-
-"</B/1>This line should have a yellow foreground and a blue
-background.<!1>"
-
-

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.

-
-
-
-

19.1.3. Conclusion

-

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.

-
-
-
-
-

19.2. The -dialog

-

Long long ago, in September 1994, when few people knew linux, -Jeff Tranter wrote an article on dialog in Linux Journal. He starts the -article with these words..

-

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

-

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 Thomas -Dickey's site.

-

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.

-

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.

-
-
-
-

19.3. Perl -Curses Modules CURSES::FORM and CURSES::WIDGETS

-

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 CPAN All Modules page. 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.

-

Some of my code examples are converted to perl by Anuradha -Ratnaweera and they are available in the perl directory.

-

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.

-
-
-
-
-

20. Just For -Fun !!!

-

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 me.

-
-
-

20.1. The -Game of Life

-

Game of life is a wonder of math. In Paul Callahan's words

- - - - -
-
-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.
-
-

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 google for interesting information on game of -life.

-

File Path: JustForFun/life.c

-
-
-
-

20.2. Magic -Square

-

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.

-

This program creates a simple magic square of odd order.

-

File Path: JustForFun/magic.c

-
-
-
-

20.3. Towers of -Hanoi

-

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.

-

File Path: JustForFun/hanoi.c

-
-
-
-

20.4. Queens -Puzzle

-

The objective of the famous N-Queen puzzle is to put N queens on -a N X N chess board without attacking each other.

-

This program solves it with a simple backtracking technique.

-

File Path: JustForFun/queens.c

-
-
-
-

20.5. -Shuffle

-

A fun game, if you have time to kill.

-

File Path: JustForFun/shuffle.c

-
-
-
-

20.6. Typing Tutor

-

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.

-

File Path: JustForFun/tt.c

-
-
-
-
-

21. References

- -
-
- - diff --git a/contrib/ncurses/doc/html/announce.html b/contrib/ncurses/doc/html/announce.html deleted file mode 100644 index f9dae07..0000000 --- a/contrib/ncurses/doc/html/announce.html +++ /dev/null @@ -1,600 +0,0 @@ - - - - -Announcing ncurses 5.6 - - - - - -

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 -ftp://ftp.gnu.org/gnu/ncurses/ . -
It is also available at -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 -
-http://invisible-island.net/cdk/ -
-http://www.vexus.ca/products/CDK/ -
ded -
directory-editor -
-http://invisible-island.net/ded/ -
dialog -
the underlying application used in Slackware's setup, and the basis -for similar applications on GNU/Linux. -
-http://invisible-island.net/dialog/ -
lynx -
the character-screen WWW browser -
-http://lynx.isc.org/release/ -
Midnight Commander -
file manager -
-http://www.ibiblio.org/mc/ -
mutt -
mail utility -
-http://www.mutt.org/ -
ncftp -
file-transfer utility -
-http://www.ncftp.com/ -
nvi -
New vi versions 1.50 are able to use ncurses versions 1.9.7 and later. -
-http://www.bostic.com/vi/ -
-
pinfo -
Lynx-like info browser. -http://dione.ids.pl/~pborys/software/pinfo/ -
tin -
newsreader, supporting color, MIME -http://www.tin.org/ -
vh-1.6 -
Volks-Hypertext browser for the Jargon File -
-http://www.debian.org/Packages/unstable/text/vh.html -
-as well as some that use ncurses for the terminfo support alone: -
-
minicom -
terminal emulator -
- -http://alioth.debian.org/projects/minicom/ -
vile -
vi-like-emacs -
-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. -Jürgen Pfeifer wrote most of the form and menu libraries. -Ongoing work is being done by -Thomas Dickey. -Thomas Dickey -acts as the maintainer for the Free Software Foundation, -which holds the copyright on ncurses. -Contact the current maintainers at -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 -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 -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 -Richard Shuford's -archive . - - - diff --git a/contrib/ncurses/doc/html/hackguide.html b/contrib/ncurses/doc/html/hackguide.html deleted file mode 100644 index 97d1369..0000000 --- a/contrib/ncurses/doc/html/hackguide.html +++ /dev/null @@ -1,914 +0,0 @@ - - - - -A Hacker's Guide to Ncurses Internals - - - - - - -

A Hacker's Guide to NCURSES

- -

Contents

- - -

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-intro.html b/contrib/ncurses/doc/html/ncurses-intro.html deleted file mode 100644 index 451e7ab..0000000 --- a/contrib/ncurses/doc/html/ncurses-intro.html +++ /dev/null @@ -1,2722 +0,0 @@ - - - - -Writing Programs with NCURSES - - - - - -

Writing Programs with NCURSES

- -
-by Eric S. Raymond and Zeyd M. Ben-Halim
-updates since release 1.9.9e by Thomas Dickey -
- -

Contents

- - -
-

Introduction

- -This document is an introduction to programming with curses. It is -not an exhaustive reference for the curses Application Programming Interface -(API); that role is filled by the curses manual pages. Rather, it -is intended to help C programmers ease into using the package.

- -This document is aimed at C applications programmers not yet specifically -familiar with ncurses. If you are already an experienced curses -programmer, you should nevertheless read the sections on -Mouse Interfacing, Debugging, -Compatibility with Older Versions, -and Hints, Tips, and Tricks. These will bring you up -to speed on the special features and quirks of the ncurses -implementation. If you are not so experienced, keep reading.

- -The curses package is a subroutine library for -terminal-independent screen-painting and input-event handling which -presents a high level screen model to the programmer, hiding differences -between terminal types and doing automatic optimization of output to change -one screen full of text into another. Curses uses terminfo, which -is a database format that can describe the capabilities of thousands of -different terminals.

- -The curses API may seem something of an archaism on UNIX desktops -increasingly dominated by X, Motif, and Tcl/Tk. Nevertheless, UNIX still -supports tty lines and X supports xterm(1); the curses -API has the advantage of (a) back-portability to character-cell terminals, -and (b) simplicity. For an application that does not require bit-mapped -graphics and multiple fonts, an interface implementation using curses -will typically be a great deal simpler and less expensive than one using an -X toolkit. - -

A Brief History of Curses

- -Historically, the first ancestor of curses was the routines written to -provide screen-handling for the game rogue; these used the -already-existing termcap database facility for describing terminal -capabilities. These routines were abstracted into a documented library and -first released with the early BSD UNIX versions.

- -System III UNIX from Bell Labs featured a rewritten and much-improved -curses library. It introduced the terminfo format. Terminfo is based -on Berkeley's termcap database, but contains a number of improvements and -extensions. Parameterized capabilities strings were introduced, making it -possible to describe multiple video attributes, and colors and to handle far -more unusual terminals than possible with termcap. In the later AT&T -System V releases, curses evolved to use more facilities and offer -more capabilities, going far beyond BSD curses in power and flexibility. - -

Scope of This Document

- -This document describes ncurses, a free implementation of -the System V curses API with some clearly marked extensions. -It includes the following System V curses features: -
    -
  • Support for multiple screen highlights (BSD curses could only -handle one `standout' highlight, usually reverse-video). -
  • Support for line- and box-drawing using forms characters. -
  • Recognition of function keys on input. -
  • Color support. -
  • Support for pads (windows of larger than screen size on which the -screen or a subwindow defines a viewport). -
- -Also, this package makes use of the insert and delete line and character -features of terminals so equipped, and determines how to optimally use these -features with no help from the programmer. It allows arbitrary combinations of -video attributes to be displayed, even on terminals that leave ``magic -cookies'' on the screen to mark changes in attributes.

- -The ncurses package can also capture and use event reports from a -mouse in some environments (notably, xterm under the X window system). This -document includes tips for using the mouse.

- -The ncurses package was originated by Pavel Curtis. The original -maintainer of this package is -Zeyd Ben-Halim -<zmbenhal@netcom.com>. -Eric S. Raymond -<esr@snark.thyrsus.com> -wrote many of the new features in versions after 1.8.1 -and wrote most of this introduction. -Jürgen Pfeifer -wrote all of the menu and forms code as well as the -Ada95 binding. -Ongoing work is being done by -Thomas Dickey (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/doc/ncurses-intro.doc b/contrib/ncurses/doc/ncurses-intro.doc deleted file mode 100644 index 85179d1..0000000 --- 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 . - Eric S. Raymond 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 - - at the top of the program source. The screen package uses the Standard - I/O library, so includes . also - includes , , or 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 -#include - -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 - - 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 - - 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 - - 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 2bf31e1..0000000 --- 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 da86bf6..0000000 --- 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 3bb4ccd..0000000 --- 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 f79a157..0000000 --- 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 c9c0838..0000000 --- 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 7c3a90a..0000000 --- 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 3559ba6..0000000 --- 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 bbc38a3..0000000 --- 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 9237f96..0000000 --- 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 4ed2219..0000000 --- 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 324198c..0000000 --- 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 e021fb1..0000000 --- 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 0aac7db..0000000 --- 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 7f5352e..0000000 --- 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 d9ceaae..0000000 --- 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 c2984b1..0000000 --- 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 3c881ac..0000000 --- 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 63d8ad1..0000000 --- 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 e1af496..0000000 --- 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 b85b4d5..0000000 --- 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 c9a3fbe..0000000 --- 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 323622c..0000000 --- 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 a4691a8..0000000 --- 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 -#include - -#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 e8617f1..0000000 --- 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 - -#if HAVE_WCTYPE_H -#include -#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 18dabab..0000000 --- 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 787a179..0000000 --- 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 c2044a3..0000000 --- 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 0c09125..0000000 --- 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 18e6d71..0000000 --- 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 d36d618..0000000 --- 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 a371838..0000000 --- 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 28937e9..0000000 --- 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 e4d5c33..0000000 --- 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 2ebf72d..0000000 --- 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 6db0023..0000000 --- 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 4d5e0e46..0000000 --- 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 2258f0a..0000000 --- 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 59dd273..0000000 --- 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 bd49544..0000000 --- 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 c96a080..0000000 --- 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 8a5367f..0000000 --- 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 5d1a209..0000000 --- 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 e74e8e3..0000000 --- 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 -#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 247779f..0000000 --- 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 - -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 -#else -#include -#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 56d72f0..0000000 --- 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 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 bd7c3a4..0000000 --- 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 - -typedef struct - { - int precision; - double low; - double high; - struct lconv *L; - } -numericARG; - -#undef TYPE_NUMERIC -FIELDTYPE *TYPE_NUMERIC; - -/* ./fty_regex.c */ - -#include - -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 7690c5b..0000000 --- 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 - -typedef struct - { - int precision; - double low; - double high; - struct lconv *L; - } -numericARG; - -#undef TYPE_NUMERIC -FIELDTYPE *TYPE_NUMERIC; - -/* ./fty_regex.c */ - -#include - -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 89f9f9f..0000000 --- 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 7c63c7f..0000000 --- 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 1992,1995 -# and: Eric S. Raymond -# -# $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 75913dc..0000000 --- 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 b74acdb..0000000 --- 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 6841ae5..0000000 --- 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 d9ea564..0000000 --- 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 450eaeb..0000000 --- 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 11b3111..0000000 --- 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 b3cb4f7..0000000 --- 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 <$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 4aac865..0000000 --- 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 < 1992,1995 */" - print "/* and: Eric S. Raymond */" - 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 " - 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 " - 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 " - 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 ." - 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 " - print "#include " - 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 1a48a17..0000000 --- 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 071f9e1..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* $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 deb63e3..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -/* - * User-definable tweak to disable the include of . - */ -#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 -#include -#include /* we need va_list */ -#ifdef _XOPEN_SOURCE_EXTENDED -#include /* 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 may declare 'bool' to be a - * different type, such as an enum which is not necessarily compatible with - * C++. If we have , 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 -/* 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(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 -#endif - -#if @NEED_WCHAR_H@ -#include /* ...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 : - */ -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 dd38ed4..0000000 --- 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 0c799e4..0000000 --- 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 8d64fee..0000000 --- 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 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 4dd3933..0000000 --- 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 - -#if USE_HASHED_DB - -#include - -#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 a24bd90..0000000 --- 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 9b5751d..0000000 --- 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 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 /* Gray Watson's library */ -#else -#undef HAVE_LIBDMALLOC -#define HAVE_LIBDMALLOC 0 -#endif - -#if HAVE_LIBDBMALLOC -#include /* Conor Cahill's library */ -#else -#undef HAVE_LIBDBMALLOC -#define HAVE_LIBDBMALLOC 0 -#endif - -#if HAVE_LIBMPATROL -#include /* 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 bb1f674..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - - -/* - * $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 d1d769b..0000000 --- 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 3f8a482..0000000 --- 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 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 - - /* 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 924c75e..0000000 --- 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 e24feee..0000000 --- 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 c880c3a..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#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 6adc312..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* $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 - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include - -#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 4e10399..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 /* 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 70d74b7..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * 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 - -#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 462fa9c..0000000 --- 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 3a99609..0000000 --- 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 c04f7c9..0000000 --- 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 de57a27..0000000 --- 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 -.\"# -.\"# 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 31d0f93..0000000 --- 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 51ac1a4..0000000 --- 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 \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 f84c2cb..0000000 --- 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 -.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 73918b8..0000000 --- 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 \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 ac1b040..0000000 --- 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 \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 488b9dd..0000000 --- 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 \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 63d2746..0000000 --- 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 \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 cf58aff..0000000 --- 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 \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\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 49e5761..0000000 --- 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 \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 b2d768a..0000000 --- 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 \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 8c6f6af..0000000 --- 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 -.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 09f9a4c..0000000 --- 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 \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 dbf8653..0000000 --- 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 \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 adbfd2c..0000000 --- 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 \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 99e63ef..0000000 --- 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 \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\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\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 7026667..0000000 --- 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 \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 fc7b16a..0000000 --- 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 \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 3092253..0000000 --- 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 \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 6ecff79..0000000 --- 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 \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\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\fR -automatically -includes the header file -\fB\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 4286c78..0000000 --- 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 \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\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 b811a37..0000000 --- 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 \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 71fed5f..0000000 --- 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 \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\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\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 f131765..0000000 --- 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 \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 2581253..0000000 --- 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 \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 8709d13..0000000 --- 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 \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 b04a1f5..0000000 --- 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 \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 3091b9c..0000000 --- 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 \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\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 18c21dc..0000000 --- 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 \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\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 1a865f9..0000000 --- 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 \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 7b5a17b..0000000 --- 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 \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 bb8a9a3..0000000 --- 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 -.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 0c153c4..0000000 --- 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 \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 78ab5a5..0000000 --- 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 \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 1536ea2..0000000 --- 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 \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 a93de27..0000000 --- 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 \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 990789c..0000000 --- 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 \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 9403973..0000000 --- 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 \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\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 251ae49..0000000 --- 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 \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 23f9f9c..0000000 --- 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 -.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 8046377..0000000 --- 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 \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 6c9cfaa..0000000 --- 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 \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 3fd437a..0000000 --- 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 \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 066c3a4..0000000 --- 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 \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 c722207..0000000 --- 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 \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 92b9ca2..0000000 --- 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 \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 ead0f18..0000000 --- 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 \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\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\fR interface. -The Single Unix Specification, Version 2 states that -\fBvw_printw\fR is preferred to \fBvwprintw\fR since the latter requires -including \fB\fR, which -cannot be used in the same file as \fB\fR. -This implementation uses \fB\fR for both, because that header -is included in \fB. -.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 5ce0690..0000000 --- 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 \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 71ba9ee..0000000 --- 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 \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\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\fR interface. -The Single Unix Specification, Version 2 states that -\fBvw_scanw\fR is preferred to \fBvwscanw\fR since the latter requires -including \fB\fR, which -cannot be used in the same file as \fB\fR. -This implementation uses \fB\fR for both, because that header -is included in \fB. -.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 7884f6a..0000000 --- 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 \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 754b714..0000000 --- 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 \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 6361268..0000000 --- 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 \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 1e07307..0000000 --- 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 \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 93ac2fb..0000000 --- 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 \fR -.br -\fB#include \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 5af0b8f..0000000 --- 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 \fR -.br -\fB#include \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 17dabdb..0000000 --- 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 \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 a7d07bc..0000000 --- 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 \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 ca74952..0000000 --- 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 \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\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 4c8929a..0000000 --- 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 \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 552862e..0000000 --- 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 \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 32518ba..0000000 --- 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 \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 216a3cb..0000000 --- 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 \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 75fc78a..0000000 --- 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 \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\fR automatically includes the header files -\fB\fR and \fB\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 bf9f28d..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 2ba004c..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 85b1df8..0000000 --- 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 \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\fR automatically includes the header files -\fB\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 f3a26c5..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 90dc0f3..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 cac6a08..0000000 --- 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 \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\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\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 bde3128..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 15d6cb2..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 6095de1..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 d505279..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 47b9ed4..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 2da52ef..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 0d42fae..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 cd47a24..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 cac4f50..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 5b7f58d..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 0caaae7..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 50ed54d..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 6bf1607..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 a172f85..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 7be0bf8..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 c8f64f2..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 b1a88e7..0000000 --- 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\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\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 -and -.br -Thomas E. Dickey -.\"# -.\"# 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 19160b4..0000000 --- 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 d7413da..0000000 --- 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 \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 93e1794..0000000 --- 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 \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 08c2a27..0000000 --- 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 \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 42c49fe..0000000 --- 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 \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 f2afac9..0000000 --- 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\/\\$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/>$RESULT - -echo "# Do the \fBxxx\fR references in the .NAME section" >>$RESULT -sed -e 's/\\>$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 5a09a03..0000000 --- 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 78055b4..0000000 --- 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 17d6fc1..0000000 --- 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 \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\fR automatically includes the header files -\fB\fR and \fB\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 d96ea23..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 4ade0bf..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 bf7d8770..0000000 --- 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 \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\fR automatically includes the header files -\fB\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 f4d456f..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 204e1ec..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 0915343..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 1db2b3e..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 c2b98e4..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 dc927c4..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 50dee87..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 e47facc..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 1345aa7..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 dfe03a8..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 b7be2ad..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 aa356e1..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 979f401..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 12009ed..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 c0fa6ed..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 2459dab..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 5895193..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 748fd52..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 8f9039c..0000000 --- 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 \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\fR automatically includes the header file -\fB\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 ac3d049..0000000 --- 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 \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\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\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\fR. -Types used for the terminfo routines such as -\fBTERMINAL\fR are defined in \fB\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 \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 \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\fR automatically includes the header files -\fB\fR and \fB\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 719a9e6..0000000 --- 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 \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 , -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 888eaaf..0000000 --- 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 \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 19af62a..0000000 --- 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 . -.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 $ 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 7eda6fb..0000000 --- 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 7455675..0000000 --- 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 d06d3a9..0000000 --- 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 343ec32..0000000 --- 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 1530354..0000000 --- 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 bada0b1..0000000 --- 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 < 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 e023064..0000000 --- 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 - \fBreset\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 . -.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 4d05d3e..0000000 --- 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 \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 fc33dc7..0000000 --- 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 10ff5b0..0000000 --- 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 baa6190..0000000 --- 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 18c20af..0000000 --- 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 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 fc17cc3..0000000 --- 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 d21fb94..0000000 --- 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 - -#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 1126ffb..0000000 --- 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 0293f90..0000000 --- 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 d29c602..0000000 --- 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 773cb27..0000000 --- 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 28e836d..0000000 --- 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 8d768a3..0000000 --- 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 dac12ed..0000000 --- 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 05a1693..0000000 --- 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 d7fe1f8..0000000 --- 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 -#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 cfe7b75..0000000 --- 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 7268a0e..0000000 --- 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 06a5baf..0000000 --- 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 cebf693..0000000 --- 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 f8fb97f..0000000 --- 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 3e8f70b..0000000 --- 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 c20c665..0000000 --- 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 a7370b0..0000000 --- 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 76083ba..0000000 --- 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 1171390..0000000 --- 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 657d0f1..0000000 --- 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 01fe79e..0000000 --- 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 96c2d84..0000000 --- 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 039bbe4..0000000 --- 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 82649c5..0000000 --- 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 0f9f902..0000000 --- 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 7b178b2..0000000 --- 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 c3f857f..0000000 --- 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 84352eb..0000000 --- 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 -#include - -#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 10d3537..0000000 --- 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 681672d..0000000 --- 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 -#include - -#include -#include -#include -#include -#include -#include - -#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 - -#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 abc4cf0..0000000 --- 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 4cb39b0..0000000 --- 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 fa91dce..0000000 --- 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 . - * 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 6859de3..0000000 --- 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 . - * 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 5bb8f6c..0000000 --- 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 . - * 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 42faaf3..0000000 --- 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 4720066..0000000 --- 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 . -# 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 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 , -# , 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 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 model well). The klone+acs sequences were valid -# though undocumented. The capability is untested but should work for -# keys F1-F10 (%p1 values outside this range will yield unpredictable results). -# From: Eric S. Raymond 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 / 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 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 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 March 4 1996 -xterm-color|xterm with color support, - op=\E[30;47m, - use=xterm, - use=klone+color, - -# From: Thomas Dickey 13 Dec 1995 -rxvt|rxvt terminal emulator, - kend=\EOw, - khome=\E[H, - kmous@, - use=xterm, - use=klone+color, - -# From: David J. MacKenzie 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 / note that L1,L2 and F11,F12 are the same. -# The ... keys are L3-L10. We don't set -# because we want it to be seen as . -# The ... keys are R1-R15. We treat some of these in accordance -# with their Sun keyboard labels instead. -# From: Simon J. Gerraty 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 ea43b59..0000000 --- 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 18e65a6..0000000 --- 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 f0aa72a..0000000 --- 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 <\),//\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,//\(\\),\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 68a3569..0000000 --- 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 . - * 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 0460407..0000000 --- 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 01f973c..0000000 --- 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 cee964f..0000000 --- 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 1e1c7ff..0000000 --- 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,\\),//\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,//\(\\),\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 a349250..0000000 --- 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 <&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 fa50456..0000000 --- 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 cf4de7d..0000000 --- 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 30ce1d6..0000000 --- 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 e84045a..0000000 --- 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 2732403..0000000 --- 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 </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 a3ed810..0000000 --- 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 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 e93f737..0000000 --- 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 66ba12f..0000000 --- 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 8828d19..0000000 --- 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 b1f9ce1..0000000 --- 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 c0e652b..0000000 --- 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 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 8627cec..0000000 --- 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 -# . -# -# 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 . -# -# 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 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 "^####" | 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 - -# 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 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 () rather than . -# -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, .... 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 should elicit an answerback response -# from the terminal. Common values for will be ^E (on older ASCII -# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals). -# -# The cursor position request () 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 () 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 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 , -# , 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 , 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 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 , 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 , , , , and -# / capabilities, forcing curses to use repetitions of , -# , and . Also deleted and , as QModem up to -# 5.03 doesn't recognize these. Finally, we delete and , which seem -# to confuse many emulators. On the other hand, we can count on these programs -# doing //. Older versions of this entry featured -# , but now seems to be more common under -# ANSI.SYS influence. -# From: Eric S. Raymond 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 , , , and capabilities. -# From: Eric S. Raymond 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 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 model well). The klone+acs sequences were valid -# though undocumented. The capability is untested but should work for -# keys F1-F10 (%p1 values outside this range will yield unpredictable results). -# From: Eric S. Raymond 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 /, 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 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 . 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 , 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 . -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" , 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 . -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 -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 , 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 and it is -# one byte instead three. -# -# 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 =\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 isn't documented and therefore may not be reliable. -# From: Eric Raymond 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 -# -# 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 /* needed for strcpy call */ -# #include /* 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 . 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 /// 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 , 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 , , -# ; 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 capability, and prefers for better -# optimization. Bug: The capability resets attributes. -# From: Michael Hunter 30 Jul 1996 -# (removed: ) -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 , 1 Jul 1998 -# (esr: commented out and 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 and a -# size-dependent . Finally, I added / -- esr) - -# NOTE: has been taken out of this entry. for reference, it should -# be . For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below. -# (esr: added and 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 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 , 12 May 1996 -x68k|x68k-ite|NetBSD/x68k ITE, - cols#96, lines#32, - kclr=\E[9~, khlp=\E[28~, use=vt220, - -# : -# 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 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 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 -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 , 2 May 1996) -# Bug: The 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 -# (// 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 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 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 -# right on vt100. The correct way to handle 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 -# 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 and rather than // 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 " 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 string. Therefore, -# the definitions for the cursor keys are made to match what the terminal -# transmits after the string is transmitted. If the 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 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 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 string -# is a null string or is not defined, then the keypad is assumed to be in -# Numeric Mode. If the string switches the keypad into Application -# Mode, it is expected that the string will contain the control codes -# necessary to reset the keypad to "Normal" mode, and it is also expected that -# applications which transmit the string will also always transmit the -# 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 / based on the init string, also . -- 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 -# 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 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 / based on the init string, also -- 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 / 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 , 30 Dec 1996 -# (Added vt100 , 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: -# 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 usually use tab anyways... and things that don't use -# tab usually use instead... -# kprv is same as tab - Backtab is useless... -# I left out 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 Sept 10 1995 -# (vt320: uncommented --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 , 13 Oct 1993 -# (vt340: string capability "sb=\E[M" corrected to "sr"; -# also, added / 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 , 13 Oct 1993 -# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:"; -# also, added / 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 , it collided with . I also restored -# a missing -- 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 / based on the init string, also -- 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 / based on the init string; -# removed =\E[m, =\E[m, added -- 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 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 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 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 / 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, 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, and added, 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 , 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 , 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 , 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 04 Oct 1997 -# Updated: Oezguer Kesim 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 -# -# 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 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 , 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 / note that L1,L2 and F11,F12 are the same. -# The ... keys are L3-L10. We don't set -# because we want it to be seen as . -# The ... keys are R1-R15. We treat some of these in accordance -# with their Sun keyboard labels instead. -# From: Simon J. Gerraty 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 -# 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 . -# -# "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 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 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.", -# where 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." 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.. -# (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 : -# 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 -# 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 , 14 Nov 1995 -# capability later corrected by J.T. Conklin -# 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), / -# 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: 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 =\EH\EJ and added & -# 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 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 --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 . --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 ; --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 ; 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 , 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 -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 -# . -# -# From: Federico Bianchi , 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 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 . The -# 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 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 , 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 , 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 , , , , , . -# -# 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, - -# 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 -# -# sets pcterm; autowrap; 25 lines; pc char set; prog DEL key; -# \E\\? does not turn off keycode mode -# 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 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 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 , 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: -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 -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 -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 , developed 07SEP90 -# (hp98550: replaced /usr/share/tabset/9837 with std because ,; -# added empty to avoid warnings re / --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 -# (hp700-wy: removed obsolete ":nl=^J:"; -# replaced /usr/share/tabset/hp700-wy with std because , -- 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 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, , -# 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 but the -# / 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. via BRL -# Status line additions from Stephen J. Muir -# from . could also -# be ^Z, according to his entry. -# (adm11: =\EG4 was obviously erroneous because it also said -# =\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 -# Corrected by Olaf Siebert , 11 May 1995 -# Supervisor mode info by Ari Wuolle, , 27 Aug 1996 -# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had -# =\Eq but that looked wrong; this is from Dave Yost -# via BRL. That entry asserted , 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 . -- 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 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 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 -# 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 but no or . The BSD termcap -# file had . I've done the safe thing and yanked -# both. The 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 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 / 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 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 , , , -# , , , , 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 -# 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 and -# 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 () and delete_line () 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 | || FUNCT + @ -# F2 | || FUNCT + A -# F3 | || FUNCT + B -# F4 | || FUNCT + C -# F5 | || FUNCT + D -# F6 | || FUNCT + E -# F7 | || FUNCT + F -# F8 | || FUNCT + G -# F9 | || FUNCT + H -# F10 | || FUNCT + I -# F11 | || FUNCT + J -# -# Shifted Function Keys: -# -# SHIFT + Key | capname|| Equivalent -# -------------|--------||------------ -# SHIFT + F1 | || FUNCT + ` -# SHIFT + F2 | || FUNCT + a -# SHIFT + F3 | || FUNCT + b -# SHIFT + F4 | || FUNCT + c -# SHIFT + F5 | || FUNCT + d -# SHIFT + F6 | || FUNCT + e -# SHIFT + F7 | || FUNCT + f -# SHIFT + F8 | || FUNCT + g -# SHIFT + F9 | || FUNCT + h -# SHIFT + F10 | || FUNCT + i -# SHIFT + F11 | || 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 or returns a cursor position report in the format -# YX\r, where Y and X are as in . This format is described in -# and , 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 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 () and backspaces_with_bs (). -# -# 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 ). -# -# 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 ); read cursor position (\E/), which is analogous to -# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX -# are as in , 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 () enables the keyboard. -# -# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew) -# enabled in , 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 sequence given here is a -# cheesy page-flip instead. -# -# The back_tab () 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 () 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 () echoes all characters to the printer -# port [in addition to displaying them] except for the page print mode -# sequence (); this is a slight violation of the terminfo -# definition for but I don't expect it to cause problems. We -# reset to page print mode in 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 () for standout (), 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 sequence -# to give a consistent magic-cookie count. Also note that 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 ( .. are shifted .. ) - -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 22 Sept 1995 -# (tvi921: removed :ko=bt: before translation, I see no backtab cap; -# also added empty 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 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 , . 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 . I got and 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 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 28 May 1993 -# Originally Tim Curry, Univ. of Central Fla., 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 and ; the :ko: string indicated that -# 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, -# -# 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 -# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H"; -# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in -# the :rs: string, inserted the implied by the termcap :ko: string. Note -# the :ko: string had :cl: in it, which means that one of the original -# , had to be wrong; set because that's what -# the 950 has. Finally, corrected the string to match the 950 and what -# ko implies -- esr) -# If the BSD termcap file was right, 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 -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 , 880521 UT Austin -# (tvi970: removed ":sg#0:"; removed =\E[m, =\E[m; -# added ////// from BRL. -# According to BRL we could have =\E>, =\E= but I'm not sure what -# it does to the function keys. I deduced /. -# also added empty 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 and -# strings are klutzy, but at least use no screen space. -# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew , -# its absence means =\Ev isn't safe to use. -- esr) -# From: Gene Rochlin 9/19/84. -# The ////, and 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 , 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 -# 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 -# 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 function. - are really l4-l6 in -# disguise; - 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 -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 / is more efficient -- esr) -# Supposedly "4*" delays should be used for , , , , -# and 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 -# and 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 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 / 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 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, . They keep terminfo entries at -# . -# -# 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 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 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 and delete the / from the delay. -# i.e. change $<100/> to $<100> -# (wy50-mc: added 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 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! -# 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 . -# -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: -# -# -> set personality -# -> set number of columns -# -> set number of lines -# -> select the proper font -# -> do the initialization -# -> 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 -# -# 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, -- 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` , 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` , 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` , 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` , 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: -# -# -> set personality -# -> set number of columns -# -> set number of lines -# -> select the proper font -# -> do the initialization -# -> 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, -- 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 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 -# and work best when XON/XOFF is set. and -# 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 , 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. -# -# -> enter Tektronix 4010/4014 mode -# -> exit Tektronix 4010/4014 mode -# -> enter ASCII mode (from any ANSI mode) -# -> exit ASCII mode (goto native ANSI mode) -# -> enter Tek 4207 ANSI mode (from any ANSI mode) -# -> exit Tek 4207 mode (goto native ANSI mode) -# -# Bug: The 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 -# (wyse-vp: removed , there's no such -# file and we don't know what 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 -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 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: , : do not work except at beginning of line! does -# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of -# line). -# From: greg small 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 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 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 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 for highlights. -# Define function keys. -# (msk22714: removed obsolete ":kn#10:" -- esr) -# From: greg small 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 / 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 13 Dec 1991 -# ACS capabilities from Philippe De Muyter 30 May 1996 -# (I removed a bogus boolean :mo: and added , , -- 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 [...] -- repeat pattern. specifies the number of bytes -# in the pattern, 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 with attribute -# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c -# -- define window -# -# From: Eric S. Raymond 1 Nov 1995 -# (The ///// capabilities exist only to -# tell ncurses that the corresponding highlights exist; it should use , -# 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 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 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 -# 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: -# , , , , , -# , , , -- 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 / 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 , , ,

, , , , -# , would work for these, but these work in both scroll and window -# mode... Unset insert character so insert mode works -# sets 80 column mode, -# 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 -# 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 is not strictly necessary, but it helps maximize -# memory usefulness: , -# Alternate sgr0: , -# Alternate sgr: , -# 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 - -# when pressed in SYS PF mode. -# (att4415: I added / 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 =\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 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 / 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 / -- 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 -# stops at top margin -# sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font -# and alt font ascii,wrap on,tabs cleared -# disables newline on LF,Emphasized off -# The 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: (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. -# is from an otherwise inferior BRL for this terminal. That entry -# also has =\E[70H commented out and marked unsafe. -# For more, see the 5620 FAQ maintained by David Breneman . -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 thru refer to the shifted system pf keys. -# -# Entries for thru 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 / based on the init string. I also -# added and 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 / based on the init string and -# / 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 , and 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 , correcting , and modification -# of . (See comments below) -# att730 has status line of 80 chars -# These were commented out: , , -# the 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 (unshifted HOME or \E[H). On the 102, 102+1 -# and 122 key keyboards, the 730's translation is \E[2J. For consistency -# has been commented out. The user can uncomment if using the -# 102, 102+1, or 122 key keyboards -# kHOM=\E[2J, -# (att730: I added / 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[=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: 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 -# (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 / based on the init string, added -# from ampex219w, added =\E[?3l, irresistibly suggested by , -# 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 , no file and no --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 , no file and no -- 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, 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 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: Thu Jul 9 09:27:33 1981 -# (viewpoint: added , function key, and 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 5 Jul 92 -# The /// 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 . (Also, -# - :ei=:im=: must be present in the termcap translation.) -# - indicates glitch that attributes stick to location -# - means it's safe to move in standout mode -# - : 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 Fri Sep 27 09:39:12 PDT 1985 -# (cit101: added / 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 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 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 / 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. 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 , 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 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: 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: -# - 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. -# -# - to status line - select window 2, home cursor, erase to -# end-of-window, 1/2 bright on, goto(line#0, col#?) -# -# - from status line - 1/2 bright off, select window 0 -# -# - 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 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 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 , 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, - -# through included to specify padding needed in raw mode. -# (avt-ns: added empty 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 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 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 -# courtesy of Carlos Rucalde of Vantage Software, Inc. -# (dg211: this had ., 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 (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 , , . -- 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 and . 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: -# (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 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 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 / 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: clears the whole screen, so it's -# commented out. - -# From: David Bryant 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: -# (f100: added empty to suppress a tic warning; -# made this relative to adm+sgr -- note that 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 , & 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 to suppress tic warnings re / --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 / 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: -# (go225: I added / 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 at bottom of screen). -# -# The key idea is that AEP mode is poison for & 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 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 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 , 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 is being used; the lines not displayed will be, -# whenever the cursor is moved up there. Since is addressed -# relative to MEMORY of window, nothing is lost; but beware of -# relative cursor motion (,,,). 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 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 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 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. is a trouble spot. Be warned. - -# (bee: 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 /. Seems strange to me... -# (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 . -# - -# Since 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: 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 . 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 ", -# , 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 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 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 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 , , -- 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 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 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: 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: -# Internet/Web: -# -# 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., 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 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 , , and -# . 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) attribute is nice, but seems too slow to work correctly -# (\Eb\Ed) -# 5) Make sure `hidden' attributes are selected. If `embedded' attributes -# are selected, the entry should be removed. -# 6) auto new-line should be on (selectable from setup mode only) -# -# From: Erik Fair 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: -# (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 -# / in a couple of entries without 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 / because there's no ) -# -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 / because there's no ) -# -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 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 . Prevents -# freakout with out-of-range args on Sytek multiplexors. No and -# since it gets confused and it's too dim anyway. No -# 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 / 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 / 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 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 -# , 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 0 sequence. The 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 , 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 , 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 / 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 , 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 to suppress tic warnings re / --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 to suppress tic warnings re / --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 to suppress tic warnings re / --esr) -tek4015-sm|tektronix 4015 in small font, - acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm, -# Tektronix 4023 from Andrew Klossner -# -# 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. -# -# was commented out since vi and rogue seem to work better -# simulating it with lots of spaces! -# -# and 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 -# 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 / 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 CURSORKEYMODE no DAINDEX 1 0 0 -# EOFSTRING '' EOLSTRING EOMCHARS -# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1 -# IGNOREDEL no KEYEXCHAR
NVDEFINE -53 "" -# 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 CURSORKEYMODE no DAINDEX 1 0 0 -# EOFSTRING '' EOLSTRING EOMCHARS -# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3 -# IGNOREDEL no KEYEXCHAR
NVDEFINE -53 "" -# 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 "", someone's mistake; -# removed ", ", which had been commented out in 8.3. -# Note, the !0 and !1 sequences in /// 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:, / 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 with the needed -# , , and ; 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, =\E1 because there's no -- 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: -# (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 ,,,, 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: Thu Oct 31 12:54:27 1985 -# (tek4404: There was a "\!" in 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 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 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 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 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, 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: -# (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 -# 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 =\200R because we don't know -- 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: 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 -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: -# =^O:=^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 to -- 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; -# revised by Ferd Brundick -# -# 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 -# (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 -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 -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 , 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 , 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 , 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 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 , 4 Dec 1995 -# (amiga: added empty 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 , 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 , 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 -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 -# 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 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 -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. will set ANSI mode for you. -# Hardware tabs set by at 8-spacing. Auto line wrap causes glitches so -# wrap mode is reset by . Using =\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 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 , 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 , 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, -# 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 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 -- 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 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 / 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: ^[[?h\EPY99\:98\E\\, - is2=\E[5;>;12;18;?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: ,,,,, 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 ^[[

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[, 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 /. 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 and 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 , 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 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 , ) -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 / 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 / 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 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 / based on the init string; -# also added empty 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 from BSDI hp19-e entry>; -# also added empty to suppress a tic warning --esr) -# From: Tim Pierce , 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 and -# 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 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. 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 befause -# 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 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 -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 -- 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: -# (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 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 -# and Mike Meyer at the -# University of Wisconsin. - -# (graphos: removed obsolete and syntactically incorrect :kn=4:, -# removed and -# no such file & no -- 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 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 -# BUG NOTE from Barbara E. Ringers : -# 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 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 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 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. -# / have nothing to do with arrow keys. -# sets 80 col mode, normal video, autowrap on (for ). -# 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 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 =\EG6 which I think means standout was supposed to be -# dim-reverse using ADM12-style attributes. ADM12 / and -# 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 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 -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 /. 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 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 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. and 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. 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 capability probably resets attributes. -# (gs6300: commented out (no ) --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: 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 -# (xtalk: I added / 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 , 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 , 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 , 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 so we fake it with . Standout -# works but won't go away without dynamite . -# 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 to -- 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 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: 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 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 -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 -# 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 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 / 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 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 ;H (cup) cursor to line n and column m -# CSI ;f cursor to line n and column m -# CSI @ (ich) insert characters -# CSI A (cuu) cursor up n lines -# CSI B (cud) cursor down n lines -# CSI C (cuu) cursor right n characters -# CSI D (cud) cursor left n characters -# CSI E cursor down n lines and in first column -# CSI F cursor up n lines and in first column -# CSI G (hpa) position cursor at column n-1 -# CSI J (ed) erase in display -# CSI K (el) erase in line -# CSI L (il) insert line(s) -# CSI P (dch) delete characters -# CSI S (indn) scroll up n lines -# CSI T (rin) scroll down n lines -# CSI X (ech) erase characters -# CSI Z (cbt) back up n tab stops -# CSI ` cursor to column n on line -# CSI a (cuu) cursor right n characters -# CSI d (vpa) cursor to line n -# CSI e cursor down n lines and in first column -# CSI g (cbt) clear all tabs -# CSI 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 =A set overscan color -# CSI =F set normal foreground color -# CSI =G set normal background color -# CSI =H set reverse foreground color -# CSI =I set reverse foreground color -# CSI =J set graphic foreground color -# CSI =K set graphic foreground color -# CSI =g (dispc) display n from alternate graphics character set -# CSI =

;B set bell parameters -# CSI =;C set cursor parameters -# CSI =D enable/disable intensity of background color -# CSI =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 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 . -# -# 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 . -# 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 -# . -# 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 . -# * 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 ). -# * 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 ). -# * modify linux terminfo description to reset color palette (reported -# by Telford Tendys ). -# -# 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 - 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 fe91cca..0000000 --- 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 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 e2f54ea..0000000 --- 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 1f63763..0000000 --- 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 9b6bee4..0000000 --- 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 59fc39c..0000000 --- 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 -# 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 39826e3..0000000 --- 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 120aa5b..0000000 --- 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 78206cd..0000000 --- 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 5dfde64..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * $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 , - * and usually no sigaction() nor - */ - -#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 - - /* - * 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 -#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 - -#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 c1d9475..0000000 --- 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 " - print "#include " - print "#include " - 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 0985783..0000000 --- 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 <$ED1 <$ED2 <$ED3 <$ED4 <$ED4 <$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 <" - print "" - } -/^DECLARATIONS/ {start = 1; next;} - {if (start) print \$0;} -END { - if ( "$USE" != "generated" ) { - print "int main(void) { return 0; }" - } - } -EOF1 - -cat >$TMP < -#undef NCURSES_NOMACROS -#include - -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 1ba511d..0000000 --- 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 " - print "#include " - print "" - print "#if USE_WIDEC_SUPPORT" - print "#if HAVE_WCTYPE_H" - print "#include " - 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 4677e42..0000000 --- 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 3d5815f..0000000 --- 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 - -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 759ad82..0000000 --- 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 - -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 2995714..0000000 --- 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 - -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 ad8988c..0000000 --- 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 - -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 1c2f160..0000000 --- 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 - -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 17ba6e2..0000000 --- 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 -#include - -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 4e3a040..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * * - * Rewritten 2001-2004 to support wide-characters by * - * Sven Verdoolaege * - * Thomas Dickey * - ****************************************************************************/ - -/* -** lib_addstr.c -* -** The routines waddnstr(), waddchnstr(). -** -*/ - -#include - -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 b478f25..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * beep.c - * - * The routine beep(). - * - */ - -#include -#include /* 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 c99e0c5..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Juergen Pfeifer 1997 * - * and: Sven Verdoolaege 2000 * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -#include - -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 d6cfc6c..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * and: Sven Verdoolaege 2001 * - ****************************************************************************/ - -/* -** lib_box.c -** -** The routine wborder(). -** -*/ - -#include - -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 89eefa7..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Sven Verdoolaege 2001 * - * and: Thomas E. Dickey 2005 * - ****************************************************************************/ - -/* -** lib_chgat.c -** -** The routine wchgat(). -** -*/ - -#include - -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 e0b4edf..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clear.c -** -** The routine wclear(). -** -*/ - -#include - -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 9b56bd1..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clearok.c -** -** The routine clearok. -** -*/ - -#include - -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 df196e8..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clrbot.c -** -** The routine wclrtobot(). -** -*/ - -#include - -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 c46ebd9..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clreol.c -** -** The routine wclrtoeol(). -** -*/ - -#include - -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 9cae495..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* lib_color.c - * - * Handles color emulation of SYS V curses - */ - -#include - -#include -#include - -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 */ -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 a973c53..0000000 --- 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 -#include - -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 0c30f2d..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_delch.c -** -** The routine wdelch(). -** -*/ - -#include - -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 ba5f180..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_delwin.c -** -** The routine delwin(). -** -*/ - -#include - -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 8953c14..0000000 --- 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 -#include - -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 df44713..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * echo.c - * - * Routines: - * echo() - * noecho() - * - */ - -#include - -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 6666287..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_endwin.c -** -** The routine endwin(). -** -*/ - -#include -#include - -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 2566e8b..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_erase.c -** -** The routine werase(). -** -*/ - -#include - -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 a6b022a..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * flash.c - * - * The routine flash(). - * - */ - -#include -#include /* 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 4bb7ccc..0000000 --- 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 -#include -#include - -#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 d9f6b17..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_getch.c -** -** The routine getch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_getch.c,v 1.87 2008/05/03 22:42:10 tom Exp $") - -#include - -#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 274e878..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_getstr.c -** -** The routine wgetstr(). -** -*/ - -#include -#include - -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 2ef2cc5..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_hline.c -** -** The routine whline(). -** -*/ - -#include - -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 87988b6..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_immedok.c -** -** The routine immedok. -** -*/ - -#include - -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 6ff0168..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_inchstr.c -** -** The routine winchnstr(). -** -*/ - -#include - -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 ef360c0..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2003 * - ****************************************************************************/ - -/* -** lib_initscr.c -** -** The routines initscr(), and termname(). -** -*/ - -#include - -#if HAVE_SYS_TERMIO_H -#include /* 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 9166ea5..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Sven Verdoolaege * - * and: Thomas E. Dickey * - ****************************************************************************/ - -/* -** lib_insch.c -** -** The routine winsch(). -** -*/ - -#include -#include - -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 342c654..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** 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 - -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 b6ddfde..0000000 --- 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 -#include - -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 3fb2949..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_instr.c -** -** The routine winnstr(). -** -*/ - -#include - -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 b337d97..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_endwin.c -** -** The routine endwin(). -** -*/ - -#include - -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 17d095d..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_leaveok.c -** -** The routine leaveok. -** -*/ - -#include - -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 aace7de..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 -# define INCL_DOS -# define INCL_VIO -# define INCL_KBD -# define INCL_MOU -# define INCL_DOSPROCESS -# include /* Need to include before the others */ -#endif - -#include - -MODULE_ID("$Id: lib_mouse.c,v 1.88 2007/09/29 21:50:04 tom Exp $") - -#include -#include - -#if USE_GPM_SUPPORT -#include /* defines KG_* macros */ - -#ifdef HAVE_LIBDL -/* use dynamic loader to avoid linkage dependency */ -#include - -#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 -#if (__FreeBSD_version >= 400017) -#include -#include -#else -#include -#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 652c44d..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_move.c -** -** The routine wmove(). -** -*/ - -#include - -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 e4dad4a..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_mvwin.c -** -** The routine mvwin(). -** -*/ - -#include - -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 3620a3f..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_newterm.c -** -** The newterm() function. -** -*/ - -#include - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#include /* clear_screen, cup & friends, cur_term */ -#include - -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 7f7aa3e..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_newwin.c -** -** The routines newwin(), subwin() and their dependent -** -*/ - -#include -#include - -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 32515da..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * nl.c - * - * Routines: - * nl() - * nonl() - * - */ - -#include - -MODULE_ID("$Id: lib_nl.c,v 1.8 2000/12/10 02:43:27 tom Exp $") - -#ifdef __EMX__ -#include -#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 26314de..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_overlay.c -** -** The routines overlay(), copywin(), and overwrite(). -** -*/ - -#include - -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 6cad9c5..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_pad.c - * newpad -- create a new pad - * pnoutrefresh -- refresh a pad, no update - * pechochar -- add a char to a pad and refresh - */ - -#include - -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 62ae921..0000000 --- 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 1997 * - ****************************************************************************/ - -/* -** lib_printw.c -** -** The routines printw(), wprintw() and friends. -** -*/ - -#include - -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 6b0905f..0000000 --- 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 1997 * - ****************************************************************************/ - -/* - * lib_redrawln.c - * - * The routine wredrawln(). - * - */ - -#include - -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 2a9cafb..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * lib_refresh.c - * - * The routines wrefresh() and wnoutrefresh(). - * - */ - -#include - -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 9742ff6..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#include /* 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 b8a5a22..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_scanw.c -** -** The routines scanw(), wscanw() and friends. -** -*/ - -#include - -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 e6aecbd..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * - ****************************************************************************/ - -#include - -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 ac85bd5..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** 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 - -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 f6b3025..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_scrollok.c -** -** The routine scrollok. -** -*/ - -#include - -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 c85d60f..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_scrreg.c -** -** The routine wsetscrreg(). -** -*/ - -#include - -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 eee1cfc..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_set_term.c -** -** The routine set_term(). -** -*/ - -#include - -#include /* cur_term */ -#include - -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 27b21b0..0000000 --- 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 - -#include -#include /* 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 f83616b..0000000 --- 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 - -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 14b4c3b..0000000 --- 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 - -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 90add86..0000000 --- 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 - -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 8da9981..0000000 --- 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 - -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 da82ee5..0000000 --- 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 - -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 946ceea..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Juergen Pfeifer 1996-1999 * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * lib_slkclear.c - * Soft key routines. - * Remove soft labels from the screen. - */ -#include - -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 b677b65..0000000 --- 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 - -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 c440109..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * lib_slkinit.c - * Soft key routines. - * Initialize soft labels. Called by the user before initscr(). - */ -#include - -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 42bb4ac..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slklab.c - * Soft key routines. - * Fetch the label text. - */ -#include - -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 c8ca28b..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Juergen Pfeifer 1996-on * - * and: Thomas E. Dickey * - ****************************************************************************/ - -/* - * lib_slkrefr.c - * Write SLK window to the (virtual) screen. - */ -#include -#include /* 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 e19f88e..0000000 --- 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 -#include - -#if USE_WIDEC_SUPPORT -#if HAVE_WCTYPE_H -#include -#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 5eb5df3..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slktouch.c - * Soft key routines. - * Force the code to believe that the soft keys have been changed. - */ -#include - -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 2ac21f2..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_touch.c -** -** The routines untouchwin(), -** wtouchln(), -** is_linetouched() -** is_wintouched(). -** -*/ - -#include - -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 2eda990..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_ungetch.c -** -** The routine ungetch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_ungetch.c,v 1.10 2008/05/03 20:20:58 tom Exp $") - -#include - -#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 1a2537e..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_vline.c -** -** The routine wvline(). -** -*/ - -#include - -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 bf2020e..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_wattroff.c -** -** The routine wattr_off(). -** -*/ - -#include -#include - -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 2e17d96..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_wattron.c -** -** The routines wattr_on(). -** -*/ - -#include -#include - -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 18da9c5..0000000 --- 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 1998 * - ****************************************************************************/ - -/* -** lib_winch.c -** -** The routine winch(). -** -*/ - -#include - -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 ac61cb0..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_window.c -** -** -*/ - -#include - -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 093ad72..0000000 --- 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 - -MODULE_ID("$Id: memmove.c,v 1.5 2007/08/11 17:12:43 tom Exp $") - -/**************************************************************************** - * Author: Thomas E. Dickey 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 59bfbbe..0000000 --- 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 1997 * - ****************************************************************************/ - -#include - -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 cf2c998..0000000 --- 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 -#include - -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 8fc5d89..0000000 --- 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 1997 * - ****************************************************************************/ - -#include -#include - -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 36442e0..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 983a75a..0000000 --- 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 1997 * - ****************************************************************************/ - -/* -** tries.c -** -** Functions to manage the tree of partial-completions for keycodes. -** -*/ - -#include - -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 4d0fdf6..0000000 --- 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 - -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 ef83967..0000000 --- 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 1999 * - ****************************************************************************/ - -#include - -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 e6253c3..0000000 --- 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 - -#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 - -#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 ac808c4..0000000 --- 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 - -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 422c74c..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#if USE_RCS_IDS -#define MODULE_ID(id) static const char Ident[] = id; -#else -#define MODULE_ID(id) /*nothing*/ -#endif - -#include -#include -#include - -#if HAVE_UNISTD_H -#include -#endif - -#if HAVE_SYS_BSDTYPES_H -#include /* needed for ISC */ -#endif - -#if HAVE_LIMITS_H -# include -#elif HAVE_SYS_PARAM_H -# include -#endif - -#include -#include - -#include - -#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 - -/* 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 -#else -#include -#endif -#else -#define USE_FUNC_POLL 0 -#endif - -/* include signal.h before curses.h to work-around defect in glibc 2.1.3 */ -#include - -/* 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 /* we'll use -Ipath directive to get the right one! */ -#include -#include -#include - -#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 -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 - -#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 */ -#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 */ -#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 /* 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 - -/* - * 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 9655b41..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * 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 bca3288..0000000 --- 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 - -#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 - -#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 - -#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 - -#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 - -#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 - -#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 -#include - -#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 - -#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 -#include - -#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 - -#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 - -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 - -#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 -#include -#include - -#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 - -#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 - -#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 - -#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 - -#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 48acb8c..0000000 --- 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 - -#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 - -#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 - -#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 - -#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 - -#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 - -#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 -#include - -#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 - -#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 -#include - -#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 - -#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 - -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 - -#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 -#include -#include - -#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 - -#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 - -#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 - -#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 - -#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 12522e1..0000000 --- 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 - -#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 - -#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 - -#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 - -#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 - -#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 - -#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 - -#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 -#include - -#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 - -#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 -#include - -#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 - -#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 - -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 - -#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 -#include -#include - -#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 - -#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 - -#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 - -#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 - -#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 f28ef81..0000000 --- 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 56d3d17..0000000 --- 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 98c04e8..0000000 --- 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 -#include -#include - -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 <= 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 db8ad55..0000000 --- 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 " - 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 " - 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 9feab35..0000000 --- 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 < -#include - -EOF - -if [ "$*" ] -then - cat < - -/* fallback entries for: $* */ -EOF - for x in $* - do - echo "/* $x */" - infocmp -E $x - done - - cat <term_names, name, "|")) - return(tp); -EOF -else - echo " /* the fallback list is empty */"; -fi - -cat <&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 14017b0..0000000 --- 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 < 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 " - 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 " - 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 14c4220..0000000 --- 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 ce8ccda..0000000 --- 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 - -#include -#include - -#include -#include - -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 455d142e..0000000 --- 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 - -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 1496752..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include -#include - -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 9f31ed3..0000000 --- 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 1999-on * - ****************************************************************************/ - -/* - * align_ttype.c -- functions for TERMTYPE - * - * _nc_align_termtype() - * _nc_copy_termtype() - * - */ - -#include - -#include -#include - -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 0e3baa8..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 . - * - * 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 - -#include -#include - -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 56c362a..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * comp_error.c -- Error message routines - * - */ - -#include - -#include - -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 ef419d8..0000000 --- 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 1998 * - ****************************************************************************/ - -#include - -#include -#include - -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 8b85eee..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * comp_hash.c --- Routines to deal with the hashtable of capability - * names. - * - */ - -#define USE_TERMLIB 1 -#include - -#include -#include - -#ifdef MAIN_PROGRAM -#include -#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 - -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 aa60047..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include - -#include -#include - -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 e937f7e..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include -#include -#include - -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 the same as a 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 - : ""), - 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 - : ""), - 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 fdc2bb0..0000000 --- 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 - -#include - -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 fe2a009..0000000 --- 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 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 - -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 8b63f0d..0000000 --- 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 - -#include - -#include -#include - -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 fa0fff1..0000000 --- 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 - -#include -#include - -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 a90cc08..0000000 --- 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 1998 * - ****************************************************************************/ - -/* - * getenv_num.c -- obtain a number from the environment - */ - -#include - -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 3fc04ea..0000000 --- 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 -#include -#include - -#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 92c2670..0000000 --- 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 -#include - -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 d30d3ed..0000000 --- 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 - -#include -/* keypad_xmit, keypad_local, meta_on, meta_off */ -/* cursor_visible,cursor_normal,cursor_invisible */ - -#include /* struct tinfo_fkeys */ - -#include - -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 -/* 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 6a24285..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -#include -#include /* 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 4070160..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * lib_baudrate.c - * - */ - -#include -#include /* cur_term, pad_char */ -#include /* ospeed */ -#if defined(__FreeBSD__) -#include -#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 -#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 8fccc2f..0000000 --- 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 1997 * - ****************************************************************************/ -/* - * Module that "owns" the 'cur_term' variable: - * - * TERMINAL *set_curterm(TERMINAL *) - * int del_curterm(TERMINAL *) - */ - -#include -#include /* TTY, cur_term */ -#include /* 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 ba37e5d..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_data.c -** -** Common data that may/may not be allocated, but is referenced globally -** -*/ - -#include - -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 0dc66bd..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2003 * - ****************************************************************************/ - -/* -** lib_has_cap.c -** -** The routines to query terminal capabilities -** -*/ - -#include - -#include - -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 89dc1e8..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 -#include /* 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 1301ee5..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_longname.c -** -** The routine longname(). -** -*/ - -#include - -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 417b3b4..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * 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 - -#if HAVE_NANOSLEEP -#include -#if HAVE_SYS_TIME_H -#include /* 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 98aae24..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_options.c -** -** The routines to handle option setting. -** -*/ - -#include - -#include - -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 975b46d..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -#include - -#include - -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 58e7188..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1998 on * - ****************************************************************************/ - -/* - * raw.c - * - * Routines: - * raw() - * cbreak() - * noraw() - * nocbreak() - * qiflush() - * noqiflush() - * intrflush() - * - */ - -#include -#include /* 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 /* needed for ISC */ -#endif - -#ifdef __EMX__ -#include -#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 08cb783..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * Terminal setup routines common to termcap and terminfo: - * - * use_env(bool) - * setupterm(char *, int, int *) - */ - -#include -#include /* for MAX_NAME_SIZE */ -#include - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#if HAVE_LOCALE_H -#include -#endif - -#include /* 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 -# 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 -# include -#endif - -#if HAVE_LANGINFO_CODESET -#include -#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 ff97eea..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include -#include -#include - -#include - -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 -/* 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 713d0be..0000000 --- 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 - -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 37553f7..0000000 --- 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 - -#include -#include - -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 df460f9..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -#include - -#include -#include - -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 d11fcf8..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey, 1996 on * - ****************************************************************************/ - -/* - * tparm.c - * - */ - -#include - -#include -#include -#include - -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 aab3351..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * tputs.c - * delay_output() - * _nc_outch() - * tputs() - * - */ - -#include -#include -#include /* padding_baud_rate, xon_xoff */ -#include /* ospeed */ -#include - -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 2cb9fd6..0000000 --- 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 -#include /* 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 0036718..0000000 --- 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 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 - -MODULE_ID("$Id: make_keys.c,v 1.13 2007/01/07 00:00:14 tom Exp $") - -#include - -#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 c8d728f..0000000 --- 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 1999 * - ****************************************************************************/ - -#include -#include -#include - -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 375ce8f..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include -#include -#include - -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 -#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 6a050ee..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * read_entry.c -- Routine for reading in a compiled terminfo file - */ - -#include -#include - -#include -#include - -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 d94d1a4..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include -#include -#include -#include -#include - -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 ba910e8..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** setbuf.c -** -** Support for set_term(), reset_shell_mode(), reset_prog_mode(). -** -*/ - -#include - -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 78cd2ef..0000000 --- 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 - -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 80c8f77..0000000 --- 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 - -#include - -#include -#include - -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 - * stringstring - * 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 a4f34c0..0000000 --- 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 - -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 05027e0..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * write_entry.c -- write a terminfo structure onto the file system - */ - -#include -#include - -#include - -#include -#include - -#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 e658fec..0000000 --- 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 03acb16..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 -#include - -#include - -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 108eb8b..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_traceatr.c - Tracing/Debugging routines (attributes) - */ - -#include -#include /* 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 de2394c..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -#include -#include /* 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 /* needed for ISC */ -#endif - -#ifdef __EMX__ -#include -#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 479756a..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * lib_tracechr.c - Tracing/Debugging routines - */ -#include - -#include - -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 d56d1a5..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_tracedmp.c - Tracing/Debugging routines - */ - -#include -#include - -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 5edcc13..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * lib_tracemse.c - Tracing/Debugging routines (mouse events) - */ - -#include - -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 7bf91c6..0000000 --- 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 1997 * - ****************************************************************************/ -/* - * trace_buf.c - Tracing/Debugging buffers (attributes) - */ - -#include - -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 0aa0b22..0000000 --- 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 1999 * - ****************************************************************************/ -/* - * trace_tries.c - Tracing/Debugging buffers (keycode tries-trees) - */ - -#include - -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 9b0b592..0000000 --- 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 1999 * - ****************************************************************************/ -/* - * trace_xnames.c - Tracing/Debugging buffers (TERMTYPE extended names) - */ - -#include -#include - -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 5e63d21..0000000 --- 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 - -#include - -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 74081ef..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * visbuf.c - Tracing/Debugging support routines - */ - -#define NEED_NCURSES_CH_T -#include - -#include -#include - -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 bf9acf2..0000000 --- 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 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 < -#include -#if NCURSES_EXPANDED -EOF - -cat >$TMP < -#undef NCURSES_EXPANDED /* this probably is set in ncurses_cfg.h */ -#include -/* 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 < 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/****************************************************************************** - -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 , November 1994 - New algorithm by Alexander V. Lukyanov , Aug 1997 - -*****************************************************************************/ - -#include - -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 9b60df6..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/****************************************************************************** - -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 , May 1996 - Bug fixes and improvements by Alexander V. Lukyanov , 1997 - -*****************************************************************************/ - -#include -#include /* 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 19984c9..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 -#include -#include - -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 - -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 -#include -#include - -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] -- load terminal info for type "); - (void) puts("d[elete] -- 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] -- torture-test with 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 06c8411..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1995-on * - ****************************************************************************/ - -/* -** lib_tstp.c -** -** The routine _nc_signal_handler(). -** -*/ -#include - -#include - -#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 6d46081..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#ifdef __BEOS__ -#undef false -#undef true -#include -#endif - -#if USE_FUNC_POLL -# if HAVE_SYS_TIME_H -# include -# endif -#elif HAVE_SELECT -# if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT -# include -# endif -# if HAVE_SYS_SELECT_H -# include -# 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 ac2a74f..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 -#include - -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 4c45a08..0000000 --- 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 e520793..0000000 --- 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 16fc17d..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#ifdef __BEOS__ -#undef false -#undef true -#include -#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 -#endif - -#if USE_TRACE_TIMES -#include -#endif - -#if USE_FUNC_POLL -#elif HAVE_SELECT -#if HAVE_SYS_SELECT_H -#include -#endif -#endif - -#include -#include - -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 cf72407..0000000 --- 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 - -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 93b41bb..0000000 --- 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 - -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 35fce46..0000000 --- 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 - -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 b4a0c37..0000000 --- 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 - -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 7d64553..0000000 --- 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 - -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 7985df2..0000000 --- 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 -#include - -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 bf39aa1..0000000 --- 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 -#include - -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 43175de..0000000 --- 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 - -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 5cd92e3..0000000 --- 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 - -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 e9f0646..0000000 --- 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 - -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 c3d0420..0000000 --- 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 - -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 2207a5f..0000000 --- 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 - -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 e24c965..0000000 --- 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 - -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 e612775..0000000 --- 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 - -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 646b5d9..0000000 --- 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 - -#if HAVE_WCTYPE_H -#include -#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 b2dc7ff..0000000 --- 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 - -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 1dc679e..0000000 --- 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 -#include - -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 af42df1..0000000 --- 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 - -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 fe893b4..0000000 --- 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 -#include - -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 be2259a..0000000 --- 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 - -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 89dbeea..0000000 --- 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 8719ea1..0000000 --- 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 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 de49c23..0000000 --- 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 48bd1e0..0000000 --- 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 d0f7a79..0000000 --- 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 32495f6..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 c4b2410..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 b861fd9..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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("", 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("", 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 24ee26b..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 624c07d..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 08d8853..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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("", 1, pan); - - HIDE_PANEL(pan, err, ERR); - - dStack("", 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 3818e8c..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 3e48e36..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 5d0d295..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 35eee23..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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("", 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("", 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 8bd1d9f..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 5967718..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 ffa25f8..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 e7d2cea..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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 16a8083..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* 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, ""); - 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 1e02091..0000000 --- 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 1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* $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 - -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 98d741f..0000000 --- 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 -#endif - -#include -#include -#include - -#if HAVE_LIBDMALLOC -# include /* Gray Watson's library */ -#endif - -#if HAVE_LIBDBMALLOC -# include /* Conor Cahill's library */ -#endif - -#include "curses.priv.h" -#include "panel.h" -#include - -#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 18b90ac..0000000 --- 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 38f4e74..0000000 --- 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 8199bbf..0000000 --- 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 9f5a543..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * clear.c -- clears the terminal's screen - */ - -#define USE_LIBTINFO -#include - -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 f26112b..0000000 --- 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 eeee5db..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * - ****************************************************************************/ - -#define __INTERNAL_CAPS_VISIBLE -#include - -#include "dump_entry.h" -#include "termsort.c" /* this C file is generated */ -#include /* 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 f802ecb..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 8680df3..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include - -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] ' 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 3b4f3b6..0000000 --- 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 d445c33..0000000 --- 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 - -#if USE_RCS_IDS -#define MODULE_ID(id) static const char Ident[] = id; -#else -#define MODULE_ID(id) /*nothing*/ -#endif - -#include -#include -#include -#include - -#if HAVE_UNISTD_H -#include -#endif - -#if HAVE_SYS_BSDTYPES_H -#include /* needed for ISC */ -#endif - -#if HAVE_LIMITS_H -# include -#elif HAVE_SYS_PARAM_H -# include -#endif - -#if HAVE_DIRENT_H -# include -# 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 -# endif -# if HAVE_SYS_DIR_H -# include -# endif -# if HAVE_NDIR_H -# include -# endif -#endif - -#include - -#if DECL_ERRNO -extern int errno; -#endif - -#if HAVE_GETOPT_H -#include -#else -/* 'getopt()' may be prototyped in , but declaring its - * variables doesn't hurt. - */ -extern char *optarg; -extern int optind; -#endif /* HAVE_GETOPT_H */ - -#include -#include -#include -#include - -#include -#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 */ -#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 */ -#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 8478102..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * - ****************************************************************************/ - -/* - * tic.c --- Main program for terminfo compiler - * by Eric S. Raymond - * - */ - -#include -#include - -#include -#include - -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 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

set output directory for compiled entry writes", - " -R 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 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 38b85cb..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * toe.c --- table of entries report generator - */ - -#include - -#include - -#if USE_HASHED_DB -#include -#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, <erm); - 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, <erm); - } - _nc_free_termtype(<erm); - } - 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(<erm, have, used) > 0) { - /* only visit things once, by primary name */ - cn = _nc_first_name(lterm.term_names); - /* apply the selected hook function */ - (*hook) (cn, <erm); - _nc_free_termtype(<erm); - } - } - 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 8745cc9..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * tput.c -- shellscript access to terminal capabilities - * - * by Eric S. Raymond , portions based on code from - * Ross Ridge's mytinfo package. - */ - -#define USE_LIBTINFO -#include - -#if !PURE_TERMINFO -#include -#endif -#include - -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 3d60912..0000000 --- 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 1992,1995 * - * and: Eric S. Raymond * - * 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 - -#include -#include -#include -#include - -#if HAVE_GETTTYNAM && HAVE_TTYENT_H -#include -#endif -#ifdef NeXT -char *ttyname(int fd); -#endif - -/* this is just to stifle a missing-prototype warning */ -#ifdef linux -# include -#endif - -#if NEED_PTEM_H -/* they neglected to define struct winsize in termios.h -- it's only - in termio.h */ -#include -#include -#endif - -#include -#include - -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 3df1bc1..0000000 --- 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 -- cgit v1.1