aboutsummaryrefslogtreecommitdiff
path: root/contrib/ncurses/include
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>2002-05-21 05:30:25 +0000
committerPeter Wemm <peter@FreeBSD.org>2002-05-21 05:30:25 +0000
commit39f2269fcb4873fd97d70af944ec49f4230fadea (patch)
treebd986d58f5a6e348466b5362637ba93e6cd5bf8c /contrib/ncurses/include
parent7e6a63408cfb0b48f0e41f77ed82f5d0ca60bda5 (diff)
downloadsrc-39f2269fcb4873fd97d70af944ec49f4230fadea.tar.gz
src-39f2269fcb4873fd97d70af944ec49f4230fadea.zip
Import ncurses-5.2-20020518 onto the vendor branch.
Obtained from: ftp://dickey.his.com/ncurses/
Notes
Notes: svn path=/vendor/ncurses/dist/; revision=97049
Diffstat (limited to 'contrib/ncurses/include')
-rw-r--r--contrib/ncurses/include/Caps1320
-rw-r--r--contrib/ncurses/include/Caps.aix41255
-rw-r--r--contrib/ncurses/include/Caps.keys1354
-rw-r--r--contrib/ncurses/include/Caps.osf1r51274
-rw-r--r--contrib/ncurses/include/Caps.uwin1090
-rwxr-xr-xcontrib/ncurses/include/MKkey_defs.sh162
-rw-r--r--contrib/ncurses/include/MKterm.h.awk.in18
-rw-r--r--contrib/ncurses/include/Makefile.in35
-rw-r--r--contrib/ncurses/include/curses.h.in720
-rw-r--r--contrib/ncurses/include/curses.tail134
-rw-r--r--contrib/ncurses/include/curses.wide237
-rwxr-xr-xcontrib/ncurses/include/edit_cfg.sh18
-rw-r--r--contrib/ncurses/include/nc_alloc.h8
-rw-r--r--contrib/ncurses/include/ncurses_defs14
-rw-r--r--contrib/ncurses/include/ncurses_dll.h9
-rw-r--r--contrib/ncurses/include/tic.h17
16 files changed, 6397 insertions, 1268 deletions
diff --git a/contrib/ncurses/include/Caps b/contrib/ncurses/include/Caps
index 0e485082a0e6..795f9daa8500 100644
--- a/contrib/ncurses/include/Caps
+++ b/contrib/ncurses/include/Caps
@@ -1,5 +1,5 @@
##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc. #
+# Copyright (c) 1998,2001 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
@@ -29,7 +29,7 @@
# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
# and: Eric S. Raymond <esr@snark.thyrsus.com>
#
-# $Id: Caps,v 1.31 2001/05/05 21:01:27 tom Exp $
+# $Id: Caps,v 1.35 2002/04/20 15:43:34 tom Exp $
#
# This is the master termcap/terminfo capability table.
#
@@ -49,11 +49,13 @@
# Column 2: terminfo capability name
# Column 3: capability type (boolean, numeric, or string)
# Column 4: termcap capability name
-# Column 5: Lead with `Y' if capability should be emitted in termcap
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
# translations, `-' otherwise
-# Column 6: capability description
+# Column 8: capability description
#
-# The codes following [Y-] in column 5 describe the versions of termcap which
+# The codes following [Y-] in column 7 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
# proper; rather, it's there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
@@ -67,7 +69,7 @@
# translation if possible. The problem is that preserving all such caps may
# lead to some termcap translations being too long. The termcap maintainer
# has a bit of a juggling act to do...potential problem cases are marked with
-# a * or **.
+# an asterisk (*).
#
# The aliases section has the following format:
#
@@ -207,43 +209,43 @@
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBBooleans name Code\fR
-auto_left_margin bw bool bw YB-G- cub1 wraps from column 0 to last column
-auto_right_margin am bool am YBCGE terminal has automatic margins
-no_esc_ctlc xsb bool xb YBCG- beehive (f1=escape, f2=ctrl C)
-ceol_standout_glitch xhp bool xs YBCGE standout not erased by overwriting (hp)
-eat_newline_glitch xenl bool xn YBCGE newline ignored after 80 cols (concept)
-erase_overstrike eo bool eo YBCG- can erase overstrikes with a blank
-generic_type gn bool gn YB-G- generic line type
-hard_copy hc bool hc YBCG- hardcopy terminal
-has_meta_key km bool km YB-GE Has a meta key (i.e., sets 8th-bit)
-has_status_line hs bool hs YB-G- has extra status line
-insert_null_glitch in bool in YBCGE insert mode distinguishes nulls
-memory_above da bool da YBCG- display may be retained above the screen
-memory_below db bool db YB-GE display may be retained below the screen
-move_insert_mode mir bool mi YBCGE safe to move while in insert mode
-move_standout_mode msgr bool ms YBCGE safe to move while in standout mode
-over_strike os bool os YBCG- terminal can overstrike
-status_line_esc_ok eslok bool es YB-G- escape can be used on the status line
-dest_tabs_magic_smso xt bool xt YBCGE tabs destructive, magic so char (t1061)
-tilde_glitch hz bool hz YB-GE can't print ~'s (hazeltine)
-transparent_underline ul bool ul YBCGE underline character overstrikes
-xon_xoff xon bool xo YB--- terminal uses xon/xoff handshaking
-needs_xon_xoff nxon bool nx ----- padding won't work, xon/xoff required
-prtr_silent mc5i bool 5i ----- printer won't echo on screen
-hard_cursor chts bool HC ----- cursor is hard to see
-non_rev_rmcup nrrmc bool NR ----- smcup does not reverse rmcup
-no_pad_char npc bool NP ----- pad character does not exist
-non_dest_scroll_region ndscr bool ND ----- scrolling region is non-destructive
-can_change ccc bool cc ----- terminal can re-define existing colors
-back_color_erase bce bool ut ----- screen erased with background color
-hue_lightness_saturation hls bool hl ----- terminal uses only HLS color notation (Tektronix)
-col_addr_glitch xhpa bool YA ----- only positive motion for hpa/mhpa caps
-cr_cancels_micro_mode crxm bool YB ----- using cr turns off micro mode
-has_print_wheel daisy bool YC ----- printer needs operator to change character set
-row_addr_glitch xvpa bool YD ----- only positive motion for vpa/mvpa caps
-semi_auto_right_margin sam bool YE ----- printing in last column causes cr
-cpi_changes_res cpix bool YF ----- changing character pitch changes resolution
-lpi_changes_res lpix bool YG ----- changing line pitch changes resolution
+auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
+auto_right_margin am bool am - - YBCGE terminal has automatic margins
+no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
+eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
+erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
+generic_type gn bool gn - - YB-G- generic line type
+hard_copy hc bool hc - - YBCG- hardcopy terminal
+has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
+has_status_line hs bool hs - - YB-G- has extra status line
+insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
+memory_above da bool da - - YBCG- display may be retained above the screen
+memory_below db bool db - - YB-GE display may be retained below the screen
+move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
+move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
+over_strike os bool os - - YBCG- terminal can overstrike
+status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
+dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
+tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine)
+transparent_underline ul bool ul - - YBCGE underline character overstrikes
+xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
+needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
+prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
+hard_cursor chts bool HC - - ----- cursor is hard to see
+non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
+no_pad_char npc bool NP - - ----- pad character does not exist
+non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
+can_change ccc bool cc - - ----- terminal can re-define existing colors
+back_color_erase bce bool ut - - ----- screen erased with background color
+hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
+col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps
+cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode
+has_print_wheel daisy bool YC - - ----- printer needs operator to change character set
+row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
+semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
+cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
+lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
#%.TE
#%.ad
#%
@@ -257,23 +259,23 @@ lpi_changes_res lpix bool YG ----- changing line pitch changes resolution
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBNumeric name Code\fR
-columns cols num co YBCGE number of columns in a line
-init_tabs it num it YB-G- tabs initially every # spaces
-lines lines num li YBCGE number of lines on screen or page
-lines_of_memory lm num lm YB-G- lines of memory if > line. 0 means varies
-magic_cookie_glitch xmc num sg YBCGE number of blank characters left by smso or rmso
-padding_baud_rate pb num pb YB-GE lowest baud rate where padding needed
-virtual_terminal vt num vt YB--- virtual terminal number (CB/unix)
-width_status_line wsl num ws YB-G- number of columns in status line
-num_labels nlab num Nl ----- number of labels on screen
-label_height lh num lh ----- rows in each label
-label_width lw num lw ----- columns in each label
-max_attributes ma num ma YBC-- maximum combined attributes terminal can handle
-maximum_windows wnum num MW ----- maximum number of defineable windows
+columns cols num co - - YBCGE number of columns in a line
+init_tabs it num it - - YB-G- tabs initially every # spaces
+lines lines num li - - YBCGE number of lines on screen or page
+lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
+magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
+padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
+virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
+width_status_line wsl num ws - - YB-G- number of columns in status line
+num_labels nlab num Nl - - ----- number of labels on screen
+label_height lh num lh - - ----- rows in each label
+label_width lw num lw - - ----- columns in each label
+max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
+maximum_windows wnum num MW - - ----- maximum number of defineable windows
# These came in with SVr4's color support
-max_colors colors num Co ----- maximum number of colors on screen
-max_pairs pairs num pa ----- maximum number of color-pairs on the screen
-no_color_video ncv num NC ----- video attributes that can't be used with colors
+max_colors colors num Co - - ----- maximum number of colors on screen
+max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
+no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
#%.TE
#%.ad
#%
@@ -289,23 +291,23 @@ no_color_video ncv num NC ----- video attributes that can't be used with color
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBNumeric name Code\fR
-buffer_capacity bufsz num Ya ----- numbers of bytes buffered before printing
-dot_vert_spacing spinv num Yb ----- spacing of pins vertically in pins per inch
-dot_horz_spacing spinh num Yc ----- spacing of dots horizontally in dots per inch
-max_micro_address maddr num Yd ----- maximum value in micro_..._address
-max_micro_jump mjump num Ye ----- maximum value in parm_..._micro
-micro_col_size mcs num Yf ----- character step size when in micro mode
-micro_line_size mls num Yg ----- line step size when in micro mode
-number_of_pins npins num Yh ----- numbers of pins in print-head
-output_res_char orc num Yi ----- horizontal resolution in units per line
-output_res_line orl num Yj ----- vertical resolution in units per line
-output_res_horz_inch orhi num Yk ----- horizontal resolution in units per inch
-output_res_vert_inch orvi num Yl ----- vertical resolution in units per inch
-print_rate cps num Ym ----- print rate in characters per second
-wide_char_size widcs num Yn ----- character step size when in double wide mode
-buttons btns num BT ----- number of buttons on mouse
-bit_image_entwining bitwin num Yo ----- number of passes for each bit-image row
-bit_image_type bitype num Yp ----- type of bit-image device
+buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
+dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
+dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
+max_micro_address maddr num Yd - - ----- maximum value in micro_..._address
+max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro
+micro_col_size mcs num Yf - - ----- character step size when in micro mode
+micro_line_size mls num Yg - - ----- line step size when in micro mode
+number_of_pins npins num Yh - - ----- numbers of pins in print-head
+output_res_char orc num Yi - - ----- horizontal resolution in units per line
+output_res_line orl num Yj - - ----- vertical resolution in units per line
+output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch
+output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch
+print_rate cps num Ym - - ----- print rate in characters per second
+wide_char_size widcs num Yn - - ----- character step size when in double wide mode
+buttons btns num BT - - ----- number of buttons on mouse
+bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
+bit_image_type bitype num Yp - - ----- type of bit-image device
#%.TE
#%.ad
#%
@@ -319,370 +321,370 @@ bit_image_type bitype num Yp ----- type of bit-image device
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBString name Code\fR
-back_tab cbt str bt YBCGE back tab (P)
-bell bel str bl YB-GE audible signal (bell) (P)
-carriage_return cr str cr YBCGE carriage return (P*) (P*)
-change_scroll_region csr str cs YBCGE change region to line #1 to line #2 (P)
-clear_all_tabs tbc str ct YB-G- clear all tab stops (P)
-clear_screen clear str cl YBCGE clear screen and home cursor (P*)
-clr_eol el str ce YBCGE clear to end of line (P)
-clr_eos ed str cd YBCGE clear to end of screen (P*)
-column_address hpa str ch -B-GE** horizontal position #1, absolute (P)
-command_character cmdch str CC YB-G- terminal settable cmd character in prototype !?
-cursor_address cup str cm YBCGE move to row #1 columns #2
-cursor_down cud1 str do YBCGE down one line
-cursor_home home str ho YBCGE home cursor (if no cup)
-cursor_invisible civis str vi YB-G- make cursor invisible
-cursor_left cub1 str le YBCGE move left one space
-cursor_mem_address mrcup str CM YB-G- memory relative cursor addressing, move to row #1 columns #2
-cursor_normal cnorm str ve YBCGE make cursor appear normal (undo civis/cvvis)
-cursor_right cuf1 str nd YBCGE non-destructive space (move right one space)
-cursor_to_ll ll str ll YBCGE last line, first column (if no cup)
-cursor_up cuu1 str up YBCGE up one line
-cursor_visible cvvis str vs YBCGE make cursor very visible
-delete_character dch1 str dc YBCGE delete character (P*)
-delete_line dl1 str dl YBCGE delete line (P*)
-dis_status_line dsl str ds YB-G- disable status line
-down_half_line hd str hd YB-G- half a line down
-enter_alt_charset_mode smacs str as YB-G- start alternate character set (P)
-enter_blink_mode blink str mb YB-G- turn on blinking
-enter_bold_mode bold str md YB-G- turn on bold (extra bright) mode
-enter_ca_mode smcup str ti YBCGE string to start programs using cup
-enter_delete_mode smdc str dm YBCGE enter delete mode
-enter_dim_mode dim str mh YB-G- turn on half-bright mode
-enter_insert_mode smir str im YBCGE enter insert mode
-enter_secure_mode invis str mk -B-G-* turn on blank mode (characters invisible)
-enter_protected_mode prot str mp -B-G-* turn on protected mode
-enter_reverse_mode rev str mr YB-G- turn on reverse video mode
-enter_standout_mode smso str so YBCGE begin standout mode
-enter_underline_mode smul str us YBCGE begin underline mode
-erase_chars ech str ec YB-G- erase #1 characters (P)
-exit_alt_charset_mode rmacs str ae YB-G- end alternate character set (P)
-exit_attribute_mode sgr0 str me YB-GE turn off all attributes
-exit_ca_mode rmcup str te YBCGE strings to end programs using cup
-exit_delete_mode rmdc str ed YBCGE end delete mode
-exit_insert_mode rmir str ei YBCGE exit insert mode
-exit_standout_mode rmso str se YBCGE exit standout mode
-exit_underline_mode rmul str ue YBCGE exit underline mode
-flash_screen flash str vb YBCGE visible bell (may not move cursor)
-form_feed ff str ff YB-G- hardcopy terminal page eject (P*)
-from_status_line fsl str fs YB-G- return from status line
-init_1string is1 str i1 YB-G- initialization string
-init_2string is2 str is YB-G- initialization string
-init_3string is3 str i3 YB-G- initialization string
-init_file if str if YB-G- name of initialization file
-insert_character ich1 str ic YBCGE insert character (P)
-insert_line il1 str al YBCGE insert line (P*)
-insert_padding ip str ip YBCGE insert padding after inserted character
-key_backspace kbs str kb YB-G- backspace key
-key_catab ktbc str ka -B-G-* clear-all-tabs key
-key_clear kclr str kC -B-G-* clear-screen or erase key
-key_ctab kctab str kt -B-G-* clear-tab key
-key_dc kdch1 str kD YB-G- delete-character key
-key_dl kdl1 str kL -B-G-* delete-line key
-key_down kcud1 str kd YBCGE down-arrow key
-key_eic krmir str kM -B-G-* sent by rmir or smir in insert mode
-key_eol kel str kE -B-G-* clear-to-end-of-line key
-key_eos ked str kS -B-G-* clear-to-end-of-screen key
-key_f0 kf0 str k0 YBCGE F0 function key
-key_f1 kf1 str k1 YBCGE F1 function key
-key_f10 kf10 str k; ----E F10 function key
-key_f2 kf2 str k2 YBCGE F2 function key
-key_f3 kf3 str k3 YBCGE F3 function key
-key_f4 kf4 str k4 YBCGE F4 function key
-key_f5 kf5 str k5 YBCGE F5 function key
-key_f6 kf6 str k6 YBCGE F6 function key
-key_f7 kf7 str k7 YBCGE F7 function key
-key_f8 kf8 str k8 YBCGE F8 function key
-key_f9 kf9 str k9 YBCGE F9 function key
-key_home khome str kh YBCGE home key
-key_ic kich1 str kI YB-GE insert-character key
-key_il kil1 str kA -B-G-* insert-line key
-key_left kcub1 str kl YBCGE left-arrow key
-key_ll kll str kH YB-G- lower-left key (home down)
-key_npage knp str kN YB-GE next-page key
-key_ppage kpp str kP YB-GE previous-page key
-key_right kcuf1 str kr YBCGE right-arrow key
-key_sf kind str kF -B-G-* scroll-forward key
-key_sr kri str kR -B-G-* scroll-backward key
-key_stab khts str kT -B-G-* set-tab key
-key_up kcuu1 str ku YBCGE up-arrow key
-keypad_local rmkx str ke YBCGE leave 'keyboard_transmit' mode
-keypad_xmit smkx str ks YBCGE enter 'keyboard_transmit' mode
-lab_f0 lf0 str l0 -B-G-* label on function key f0 if not f0
-lab_f1 lf1 str l1 -B-G-* label on function key f1 if not f1
-lab_f10 lf10 str la ----- label on function key f10 if not f10
-lab_f2 lf2 str l2 -B-G-* label on function key f2 if not f2
-lab_f3 lf3 str l3 -B-G-* label on function key f3 if not f3
-lab_f4 lf4 str l4 -B-G-* label on function key f4 if not f4
-lab_f5 lf5 str l5 -B-G-* label on function key f5 if not f5
-lab_f6 lf6 str l6 -B-G-* label on function key f6 if not f6
-lab_f7 lf7 str l7 -B-G-* label on function key f7 if not f7
-lab_f8 lf8 str l8 -B-G-* label on function key f8 if not f8
-lab_f9 lf9 str l9 -B-G-* label on function key f9 if not f9
-meta_off rmm str mo YB-G-* turn off meta mode
-meta_on smm str mm YB-G-* turn on meta mode (8th-bit on)
-newline nel str nw YB-G-* newline (behave like cr followed by lf)
-pad_char pad str pc YBCGE padding char (instead of null)
-parm_dch dch str DC YB-GE delete #1 characters (P*)
-parm_delete_line dl str DL YBCGE delete #1 lines (P*)
-parm_down_cursor cud str DO YBCGE down #1 lines (P*)
-parm_ich ich str IC YB-GE insert #1 characters (P*)
-parm_index indn str SF YBCG- scroll forward #1 lines (P)
-parm_insert_line il str AL YBCGE insert #1 lines (P*)
-parm_left_cursor cub str LE YBCGE move #1 characters to the left (P)
-parm_right_cursor cuf str RI YBCGE move #1 characters to the right (P*)
-parm_rindex rin str SR YBCG- scroll back #1 lines (P)
-parm_up_cursor cuu str UP YBCGE up #1 lines (P*)
-pkey_key pfkey str pk -B--- program function key #1 to type string #2
-pkey_local pfloc str pl -B--- program function key #1 to execute string #2
-pkey_xmit pfx str px -B--- program function key #1 to transmit string #2
-print_screen mc0 str ps -B-G-* print contents of screen
-prtr_off mc4 str pf -B-G-* turn off printer
-prtr_on mc5 str po -B-G-* turn on printer
-repeat_char rep str rp YB-GE repeat char #1 #2 times (P*)
-reset_1string rs1 str r1 -B--- reset string
-reset_2string rs2 str r2 -B--- reset string
-reset_3string rs3 str r3 -B--- reset string
-reset_file rf str rf -B--- name of reset file
-restore_cursor rc str rc YBCG- restore cursor to position of last save_cursor
-row_address vpa str cv -B-GE** vertical position #1 absolute (P)
-save_cursor sc str sc YBCG- save current cursor position (P)
-scroll_forward ind str sf YBCGE scroll text up (P)
-scroll_reverse ri str sr YBCGE scroll text down (P)
-set_attributes sgr str sa YB-G- define video attributes #1-#9 (PG9)
-set_tab hts str st YB-G- set a tab in every row, current columns
-set_window wind str wi -B-GE current window is lines #1-#2 cols #3-#4
-tab ht str ta YBCGE tab to next 8-space hardware tab stop
-to_status_line tsl str ts YB-G- move to status line, column #1
-underline_char uc str uc YBCG- underline char and move past it
-up_half_line hu str hu YB-G- half a line up
-init_prog iprog str iP -B--- path name of program for initialization
-key_a1 ka1 str K1 YB-GE upper left of keypad
-key_a3 ka3 str K3 YB-GE upper right of keypad
-key_b2 kb2 str K2 YB-GE center of keypad
-key_c1 kc1 str K4 YB-GE lower left of keypad
-key_c3 kc3 str K5 YB-GE lower right of keypad
-prtr_non mc5p str pO -B-G-* turn on printer for #1 bytes
+back_tab cbt str bt - - YBCGE back tab (P)
+bell bel str bl - - YB-GE audible signal (bell) (P)
+carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
+change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
+clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
+clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
+clr_eol el str ce - - YBCGE clear to end of line (P)
+clr_eos ed str cd - - YBCGE clear to end of screen (P*)
+column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
+command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
+cursor_address cup str cm - - YBCGE move to row #1 columns #2
+cursor_down cud1 str do - - YBCGE down one line
+cursor_home home str ho - - YBCGE home cursor (if no cup)
+cursor_invisible civis str vi - - YB-G- make cursor invisible
+cursor_left cub1 str le - - YBCGE move left one space
+cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
+cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
+cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
+cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
+cursor_up cuu1 str up - - YBCGE up one line
+cursor_visible cvvis str vs - - YBCGE make cursor very visible
+delete_character dch1 str dc - - YBCGE delete character (P*)
+delete_line dl1 str dl - - YBCGE delete line (P*)
+dis_status_line dsl str ds - - YB-G- disable status line
+down_half_line hd str hd - - YB-G- half a line down
+enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
+enter_blink_mode blink str mb - - YB-G- turn on blinking
+enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
+enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
+enter_delete_mode smdc str dm - - YBCGE enter delete mode
+enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
+enter_insert_mode smir str im - - YBCGE enter insert mode
+enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
+enter_protected_mode prot str mp - - -B-G-* turn on protected mode
+enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
+enter_standout_mode smso str so - - YBCGE begin standout mode
+enter_underline_mode smul str us - - YBCGE begin underline mode
+erase_chars ech str ec - - YB-G- erase #1 characters (P)
+exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
+exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
+exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
+exit_delete_mode rmdc str ed - - YBCGE end delete mode
+exit_insert_mode rmir str ei - - YBCGE exit insert mode
+exit_standout_mode rmso str se - - YBCGE exit standout mode
+exit_underline_mode rmul str ue - - YBCGE exit underline mode
+flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
+form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
+from_status_line fsl str fs - - YB-G- return from status line
+init_1string is1 str i1 - - YB-G- initialization string
+init_2string is2 str is - - YB-G- initialization string
+init_3string is3 str i3 - - YB-G- initialization string
+init_file if str if - - YB-G- name of initialization file
+insert_character ich1 str ic - - YBCGE insert character (P)
+insert_line il1 str al - - YBCGE insert line (P*)
+insert_padding ip str ip - - YBCGE insert padding after inserted character
+key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
+key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
+key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
+key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
+key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
+key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
+key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
+key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
+key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
+key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
+key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
+key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
+key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
+key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
+key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
+key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
+key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
+key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
+key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
+key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
+key_home khome str kh KEY_HOME 0406 YBCGE home key
+key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
+key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
+key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
+key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
+key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
+key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
+key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
+key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
+key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
+key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
+key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
+keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
+keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
+lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
+lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
+lab_f10 lf10 str la - - ----- label on function key f10 if not f10
+lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
+lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
+lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
+lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
+lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
+lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
+lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
+lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
+meta_off rmm str mo - - YB-G-* turn off meta mode
+meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
+newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
+pad_char pad str pc - - YBCGE padding char (instead of null)
+parm_dch dch str DC - - YB-GE delete #1 characters (P*)
+parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
+parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
+parm_ich ich str IC - - YB-GE insert #1 characters (P*)
+parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
+parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
+parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
+parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
+parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
+parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
+pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
+pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
+pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
+print_screen mc0 str ps - - -B-G-* print contents of screen
+prtr_off mc4 str pf - - -B-G-* turn off printer
+prtr_on mc5 str po - - -B-G-* turn on printer
+repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
+reset_1string rs1 str r1 - - -B--- reset string
+reset_2string rs2 str r2 - - -B--- reset string
+reset_3string rs3 str r3 - - -B--- reset string
+reset_file rf str rf - - -B--- name of reset file
+restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
+row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
+save_cursor sc str sc - - YBCG- save current cursor position (P)
+scroll_forward ind str sf - - YBCGE scroll text up (P)
+scroll_reverse ri str sr - - YBCGE scroll text down (P)
+set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
+set_tab hts str st - - YB-G- set a tab in every row, current columns
+set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
+tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
+to_status_line tsl str ts - - YB-G- move to status line, column #1
+underline_char uc str uc - - YBCG- underline char and move past it
+up_half_line hu str hu - - YB-G- half a line up
+init_prog iprog str iP - - -B--- path name of program for initialization
+key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
+key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
+key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
+key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
+key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
+prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
#
# SVr1 capabilities stop here. IBM's version of terminfo is the same as
# SVr4 up to this point, but has a different set afterwards.
#
-char_padding rmp str rP ----- like ip but when in insert mode
-acs_chars acsc str ac ----- graphics charset pairs, based on vt100
-plab_norm pln str pn ----- program label #1 to show string #2
-key_btab kcbt str kB ----- back-tab key
-enter_xon_mode smxon str SX ----- turn on xon/xoff handshaking
-exit_xon_mode rmxon str RX ----- turn off xon/xoff handshaking
-enter_am_mode smam str SA ----- turn on automatic margins
-exit_am_mode rmam str RA ----- turn off automatic margins
-xon_character xonc str XN ----- XON character
-xoff_character xoffc str XF ----- XOFF character
-ena_acs enacs str eA ----- enable alternate char set
-label_on smln str LO ----- turn on soft labels
-label_off rmln str LF ----- turn off soft labels
-key_beg kbeg str @1 ----- begin key
-key_cancel kcan str @2 ----- cancel key
-key_close kclo str @3 ----- close key
-key_command kcmd str @4 ----- command key
-key_copy kcpy str @5 ----- copy key
-key_create kcrt str @6 ----- create key
-key_end kend str @7 ----- end key
-key_enter kent str @8 ----- enter/send key
-key_exit kext str @9 ----- exit key
-key_find kfnd str @0 ----- find key
-key_help khlp str %1 ----- help key
-key_mark kmrk str %2 ----- mark key
-key_message kmsg str %3 ----- message key
-key_move kmov str %4 ----- move key
-key_next knxt str %5 ----- next key
-key_open kopn str %6 ----- open key
-key_options kopt str %7 ----- options key
-key_previous kprv str %8 ----- previous key
-key_print kprt str %9 ----- print key
-key_redo krdo str %0 ----- redo key
-key_reference kref str &1 ----- reference key
-key_refresh krfr str &2 ----- refresh key
-key_replace krpl str &3 ----- replace key
-key_restart krst str &4 ----- restart key
-key_resume kres str &5 ----- resume key
-key_save ksav str &6 ----- save key
-key_suspend kspd str &7 ----- suspend key
-key_undo kund str &8 ----- undo key
-key_sbeg kBEG str &9 ----- shifted begin key
-key_scancel kCAN str &0 ----- shifted cancel key
-key_scommand kCMD str *1 ----- shifted command key
-key_scopy kCPY str *2 ----- shifted copy key
-key_screate kCRT str *3 ----- shifted create key
-key_sdc kDC str *4 ----- shifted delete-character key
-key_sdl kDL str *5 ----- shifted delete-line key
-key_select kslt str *6 ----- select key
-key_send kEND str *7 ----- shifted end key
-key_seol kEOL str *8 ----- shifted clear-to-end-of-line key
-key_sexit kEXT str *9 ----- shifted exit key
-key_sfind kFND str *0 ----- shifted find key
-key_shelp kHLP str #1 ----- shifted help key
-key_shome kHOM str #2 ----- shifted home key
-key_sic kIC str #3 ----- shifted insert-character key
-key_sleft kLFT str #4 ----- shifted left-arrow key
-key_smessage kMSG str %a ----- shifted message key
-key_smove kMOV str %b ----- shifted move key
-key_snext kNXT str %c ----- shifted next key
-key_soptions kOPT str %d ----- shifted options key
-key_sprevious kPRV str %e ----- shifted previous key
-key_sprint kPRT str %f ----- shifted print key
-key_sredo kRDO str %g ----- shifted redo key
-key_sreplace kRPL str %h ----- shifted replace key
-key_sright kRIT str %i ----- shifted right-arrow key
-key_srsume kRES str %j ----- shifted resume key
-key_ssave kSAV str !1 ----- shifted save key
-key_ssuspend kSPD str !2 ----- shifted suspend key
-key_sundo kUND str !3 ----- shifted undo key
-req_for_input rfi str RF ----- send next input char (for ptys)
-key_f11 kf11 str F1 ----E F11 function key
-key_f12 kf12 str F2 ----E F12 function key
-key_f13 kf13 str F3 ----E F13 function key
-key_f14 kf14 str F4 ----E F14 function key
-key_f15 kf15 str F5 ----E F15 function key
-key_f16 kf16 str F6 ----E F16 function key
-key_f17 kf17 str F7 ----E F17 function key
-key_f18 kf18 str F8 ----E F18 function key
-key_f19 kf19 str F9 ----E F19 function key
-key_f20 kf20 str FA ----E F20 function key
-key_f21 kf21 str FB ----E F21 function key
-key_f22 kf22 str FC ----E F22 function key
-key_f23 kf23 str FD ----E F23 function key
-key_f24 kf24 str FE ----E F24 function key
-key_f25 kf25 str FF ----E F25 function key
-key_f26 kf26 str FG ----E F26 function key
-key_f27 kf27 str FH ----E F27 function key
-key_f28 kf28 str FI ----E F28 function key
-key_f29 kf29 str FJ ----E F29 function key
-key_f30 kf30 str FK ----E F30 function key
-key_f31 kf31 str FL ----E F31 function key
-key_f32 kf32 str FM ----E F32 function key
-key_f33 kf33 str FN ----E F33 function key
-key_f34 kf34 str FO ----E F34 function key
-key_f35 kf35 str FP ----E F35 function key
-key_f36 kf36 str FQ ----E F36 function key
-key_f37 kf37 str FR ----E F37 function key
-key_f38 kf38 str FS ----E F38 function key
-key_f39 kf39 str FT ----E F39 function key
-key_f40 kf40 str FU ----E F40 function key
-key_f41 kf41 str FV ----E F41 function key
-key_f42 kf42 str FW ----E F42 function key
-key_f43 kf43 str FX ----E F43 function key
-key_f44 kf44 str FY ----E F44 function key
-key_f45 kf45 str FZ ----E F45 function key
-key_f46 kf46 str Fa ----E F46 function key
-key_f47 kf47 str Fb ----E F47 function key
-key_f48 kf48 str Fc ----E F48 function key
-key_f49 kf49 str Fd ----E F49 function key
-key_f50 kf50 str Fe ----E F50 function key
-key_f51 kf51 str Ff ----E F51 function key
-key_f52 kf52 str Fg ----E F52 function key
-key_f53 kf53 str Fh ----E F53 function key
-key_f54 kf54 str Fi ----E F54 function key
-key_f55 kf55 str Fj ----E F55 function key
-key_f56 kf56 str Fk ----E F56 function key
-key_f57 kf57 str Fl ----E F57 function key
-key_f58 kf58 str Fm ----E F58 function key
-key_f59 kf59 str Fn ----E F59 function key
-key_f60 kf60 str Fo ----E F60 function key
-key_f61 kf61 str Fp ----E F61 function key
-key_f62 kf62 str Fq ----E F62 function key
-key_f63 kf63 str Fr ----E F63 function key
-clr_bol el1 str cb ----- Clear to beginning of line
-clear_margins mgc str MC ----- clear right and left soft margins
-set_left_margin smgl str ML ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
-set_right_margin smgr str MR ----- set right soft margin at current column
-label_format fln str Lf ----- label format
-set_clock sclk str SC ----- set clock, #1 hrs #2 mins #3 secs
-display_clock dclk str DK ----- display clock
-remove_clock rmclk str RC ----- remove clock
-create_window cwin str CW ----- define a window #1 from #2,#3 to #4,#5
-goto_window wingo str WG ----- go to window #1
-hangup hup str HU ----- hang-up phone
-dial_phone dial str DI ----- dial number #1
-quick_dial qdial str QD ----- dial number #1 without checking
-tone tone str TO ----- select touch tone dialing
-pulse pulse str PU ----- select pulse dialing
-flash_hook hook str fh ----- flash switch hook
-fixed_pause pause str PA ----- pause for 2-3 seconds
-wait_tone wait str WA ----- wait for dial-tone
-user0 u0 str u0 ----- User string #0
-user1 u1 str u1 ----- User string #1
-user2 u2 str u2 ----- User string #2
-user3 u3 str u3 ----- User string #3
-user4 u4 str u4 ----- User string #4
-user5 u5 str u5 ----- User string #5
-user6 u6 str u6 ----- User string #6
-user7 u7 str u7 ----- User string #7
-user8 u8 str u8 ----- User string #8
-user9 u9 str u9 ----- User string #9
+char_padding rmp str rP - - ----- like ip but when in insert mode
+acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
+plab_norm pln str pn - - ----- program label #1 to show string #2
+key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key
+enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
+exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
+enter_am_mode smam str SA - - ----- turn on automatic margins
+exit_am_mode rmam str RA - - ----- turn off automatic margins
+xon_character xonc str XN - - ----- XON character
+xoff_character xoffc str XF - - ----- XOFF character
+ena_acs enacs str eA - - ----- enable alternate char set
+label_on smln str LO - - ----- turn on soft labels
+label_off rmln str LF - - ----- turn off soft labels
+key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
+key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
+key_close kclo str @3 KEY_CLOSE 0544 ----- close key
+key_command kcmd str @4 KEY_COMMAND 0545 ----- command key
+key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
+key_create kcrt str @6 KEY_CREATE 0547 ----- create key
+key_end kend str @7 KEY_END 0550 ----- end key
+key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
+key_exit kext str @9 KEY_EXIT 0551 ----- exit key
+key_find kfnd str @0 KEY_FIND 0552 ----- find key
+key_help khlp str %1 KEY_HELP 0553 ----- help key
+key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
+key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
+key_move kmov str %4 KEY_MOVE 0556 ----- move key
+key_next knxt str %5 KEY_NEXT 0557 ----- next key
+key_open kopn str %6 KEY_OPEN 0560 ----- open key
+key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
+key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
+key_print kprt str %9 KEY_PRINT 0532 ----- print key
+key_redo krdo str %0 KEY_REDO 0563 ----- redo key
+key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
+key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
+key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
+key_restart krst str &4 KEY_RESTART 0567 ----- restart key
+key_resume kres str &5 KEY_RESUME 0570 ----- resume key
+key_save ksav str &6 KEY_SAVE 0571 ----- save key
+key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
+key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
+key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
+key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
+key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
+key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
+key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
+key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
+key_select kslt str *6 KEY_SELECT 0601 ----- select key
+key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
+key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
+key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
+key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
+key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
+key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
+key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
+key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
+key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
+key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
+key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
+key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
+key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
+key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
+key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
+key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
+key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
+key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
+key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
+key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
+key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
+req_for_input rfi str RF - - ----- send next input char (for ptys)
+key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
+key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
+key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
+key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
+key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
+key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
+key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
+key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
+key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
+key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
+key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
+key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
+key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
+key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
+key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
+key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
+key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
+key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
+key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
+key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
+key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
+key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
+key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
+key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
+key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
+key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
+key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
+key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
+key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
+key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
+key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
+key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
+key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
+key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
+key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
+key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
+key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
+key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
+key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
+key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
+key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
+key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
+key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
+key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
+key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
+key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
+key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
+key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
+key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
+key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
+key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
+key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
+clr_bol el1 str cb - - ----- Clear to beginning of line
+clear_margins mgc str MC - - ----- clear right and left soft margins
+set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_right_margin smgr str MR - - ----- set right soft margin at current column
+label_format fln str Lf - - ----- label format
+set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
+display_clock dclk str DK - - ----- display clock
+remove_clock rmclk str RC - - ----- remove clock
+create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5
+goto_window wingo str WG - - ----- go to window #1
+hangup hup str HU - - ----- hang-up phone
+dial_phone dial str DI - - ----- dial number #1
+quick_dial qdial str QD - - ----- dial number #1 without checking
+tone tone str TO - - ----- select touch tone dialing
+pulse pulse str PU - - ----- select pulse dialing
+flash_hook hook str fh - - ----- flash switch hook
+fixed_pause pause str PA - - ----- pause for 2-3 seconds
+wait_tone wait str WA - - ----- wait for dial-tone
+user0 u0 str u0 - - ----- User string #0
+user1 u1 str u1 - - ----- User string #1
+user2 u2 str u2 - - ----- User string #2
+user3 u3 str u3 - - ----- User string #3
+user4 u4 str u4 - - ----- User string #4
+user5 u5 str u5 - - ----- User string #5
+user6 u6 str u6 - - ----- User string #6
+user7 u7 str u7 - - ----- User string #7
+user8 u8 str u8 - - ----- User string #8
+user9 u9 str u9 - - ----- User string #9
#
# SVr4 added these capabilities to support color
#
-orig_pair op str op ----- Set default pair to its original value
-orig_colors oc str oc ----- Set all color pairs to the original ones
-initialize_color initc str Ic ----- initialize color #1 to (#2,#3,#4)
-initialize_pair initp str Ip ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
-set_color_pair scp str sp ----- Set current color pair to #1
-set_foreground setf str Sf ----- Set foreground color #1
-set_background setb str Sb ----- Set background color #1
+orig_pair op str op - - ----- Set default pair to its original value
+orig_colors oc str oc - - ----- Set all color pairs to the original ones
+initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
+initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+set_color_pair scp str sp - - ----- Set current color pair to #1
+set_foreground setf str Sf - - ----- Set foreground color #1
+set_background setb str Sb - - ----- Set background color #1
#
# SVr4 added these capabilities to support printers
#
-change_char_pitch cpi str ZA ----- Change number of characters per inch to #1
-change_line_pitch lpi str ZB ----- Change number of lines per inch to #1
-change_res_horz chr str ZC ----- Change horizontal resolution to #1
-change_res_vert cvr str ZD ----- Change vertical resolution to #1
-define_char defc str ZE ----- Define a character #1, #2 dots wide, descender #3
-enter_doublewide_mode swidm str ZF ----- Enter double-wide mode
-enter_draft_quality sdrfq str ZG ----- Enter draft-quality mode
-enter_italics_mode sitm str ZH ----- Enter italic mode
-enter_leftward_mode slm str ZI ----- Start leftward carriage motion
-enter_micro_mode smicm str ZJ ----- Start micro-motion mode
-enter_near_letter_quality snlq str ZK ----- Enter NLQ mode
-enter_normal_quality snrmq str ZL ----- Enter normal-quality mode
-enter_shadow_mode sshm str ZM ----- Enter shadow-print mode
-enter_subscript_mode ssubm str ZN ----- Enter subscript mode
-enter_superscript_mode ssupm str ZO ----- Enter superscript mode
-enter_upward_mode sum str ZP ----- Start upward carriage motion
-exit_doublewide_mode rwidm str ZQ ----- End double-wide mode
-exit_italics_mode ritm str ZR ----- End italic mode
-exit_leftward_mode rlm str ZS ----- End left-motion mode
-exit_micro_mode rmicm str ZT ----- End micro-motion mode
-exit_shadow_mode rshm str ZU ----- End shadow-print mode
-exit_subscript_mode rsubm str ZV ----- End subscript mode
-exit_superscript_mode rsupm str ZW ----- End superscript mode
-exit_upward_mode rum str ZX ----- End reverse character motion
-micro_column_address mhpa str ZY ----- Like column_address in micro mode
-micro_down mcud1 str ZZ ----- Like cursor_down in micro mode
-micro_left mcub1 str Za ----- Like cursor_left in micro mode
-micro_right mcuf1 str Zb ----- Like cursor_right in micro mode
-micro_row_address mvpa str Zc ----- Like row_address #1 in micro mode
-micro_up mcuu1 str Zd ----- Like cursor_up in micro mode
-order_of_pins porder str Ze ----- Match software bits to print-head pins
-parm_down_micro mcud str Zf ----- Like parm_down_cursor in micro mode
-parm_left_micro mcub str Zg ----- Like parm_left_cursor in micro mode
-parm_right_micro mcuf str Zh ----- Like parm_right_cursor in micro mode
-parm_up_micro mcuu str Zi ----- Like parm_up_cursor in micro mode
-select_char_set scs str Zj ----- Select character set, #1
-set_bottom_margin smgb str Zk ----- Set bottom margin at current line
-set_bottom_margin_parm smgbp str Zl ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
-set_left_margin_parm smglp str Zm ----- Set left (right) margin at column #1
-set_right_margin_parm smgrp str Zn ----- Set right margin at column #1
-set_top_margin smgt str Zo ----- Set top margin at current line
-set_top_margin_parm smgtp str Zp ----- Set top (bottom) margin at row #1
-start_bit_image sbim str Zq ----- Start printing bit image graphics
-start_char_set_def scsd str Zr ----- Start character set definition #1, with #2 characters in the set
-stop_bit_image rbim str Zs ----- Stop printing bit image graphics
-stop_char_set_def rcsd str Zt ----- End definition of character set #1
-subscript_characters subcs str Zu ----- List of subscriptable characters
-superscript_characters supcs str Zv ----- List of superscriptable characters
-these_cause_cr docr str Zw ----- Printing any of these characters causes CR
-zero_motion zerom str Zx ----- No motion for subsequent character
+change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1
+change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1
+change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
+change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
+define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
+enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
+enter_italics_mode sitm str ZH - - ----- Enter italic mode
+enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
+enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode
+enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode
+enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode
+enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode
+enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode
+enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode
+enter_upward_mode sum str ZP - - ----- Start upward carriage motion
+exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode
+exit_italics_mode ritm str ZR - - ----- End italic mode
+exit_leftward_mode rlm str ZS - - ----- End left-motion mode
+exit_micro_mode rmicm str ZT - - ----- End micro-motion mode
+exit_shadow_mode rshm str ZU - - ----- End shadow-print mode
+exit_subscript_mode rsubm str ZV - - ----- End subscript mode
+exit_superscript_mode rsupm str ZW - - ----- End superscript mode
+exit_upward_mode rum str ZX - - ----- End reverse character motion
+micro_column_address mhpa str ZY - - ----- Like column_address in micro mode
+micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode
+micro_left mcub1 str Za - - ----- Like cursor_left in micro mode
+micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode
+micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode
+micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode
+order_of_pins porder str Ze - - ----- Match software bits to print-head pins
+parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode
+parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode
+parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode
+parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode
+select_char_set scs str Zj - - ----- Select character set, #1
+set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line
+set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
+set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1
+set_top_margin smgt str Zo - - ----- Set top margin at current line
+set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1
+start_bit_image sbim str Zq - - ----- Start printing bit image graphics
+start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set
+stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics
+stop_char_set_def rcsd str Zt - - ----- End definition of character set #1
+subscript_characters subcs str Zu - - ----- List of subscriptable characters
+superscript_characters supcs str Zv - - ----- List of superscriptable characters
+these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
+zero_motion zerom str Zx - - ----- No motion for subsequent character
#%.TE
#%.ad
#%
@@ -697,41 +699,41 @@ zero_motion zerom str Zx ----- No motion for subsequent character
#%lw25 lw6 lw2 lw18.
#%\fBVariable Cap- TCap Description\fR
#%\fBString name Code\fR
-char_set_names csnm str Zy ----- Produce #1'th item from list of character set names
-key_mouse kmous str Km ----- Mouse event has occurred
-mouse_info minfo str Mi ----- Mouse status information
-req_mouse_pos reqmp str RQ ----- Request mouse position
-get_mouse getm str Gm ----- Curses should get button events, parameter #1 not documented.
-set_a_foreground setaf str AF ----- Set foreground color to #1, using ANSI escape
-set_a_background setab str AB ----- Set background color to #1, using ANSI escape
-pkey_plab pfxl str xl ----- Program function key #1 to type string #2 and show string #3
-device_type devt str dv ----- Indicate language/codeset support
-code_set_init csin str ci ----- Init sequence for multiple codesets
-set0_des_seq s0ds str s0 ----- Shift to code set 0 (EUC set 0, ASCII)
-set1_des_seq s1ds str s1 ----- Shift to code set 1
-set2_des_seq s2ds str s2 ----- Shift to code set 2
-set3_des_seq s3ds str s3 ----- Shift to code set 3
-set_lr_margin smglr str ML ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
-set_tb_margin smgtb str MT ----- Sets both top and bottom margins to #1, #2
-bit_image_repeat birep str Xy ----- Repeat bit image cell #1 #2 times
-bit_image_newline binel str Zz ----- Move to next row of the bit image
-bit_image_carriage_return bicr str Yv ----- Move to beginning of same row
-color_names colornm str Yw ----- Give name for color #1
-define_bit_image_region defbi str Yx ----- Define rectangualar bit image region
-end_bit_image_region endbi str Yy ----- End a bit-image region
-set_color_band setcolor str Yz ----- Change to ribbon color #1
-set_page_length slines str YZ ----- Set page length to #1 lines
+char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
+key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
+mouse_info minfo str Mi - - ----- Mouse status information
+req_mouse_pos reqmp str RQ - - ----- Request mouse position
+get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
+set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
+set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
+pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
+device_type devt str dv - - ----- Indicate language/codeset support
+code_set_init csin str ci - - ----- Init sequence for multiple codesets
+set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
+set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
+set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
+set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
+set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2
+bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times
+bit_image_newline binel str Zz - - ----- Move to next row of the bit image
+bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row
+color_names colornm str Yw - - ----- Give name for color #1
+define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region
+end_bit_image_region endbi str Yy - - ----- End a bit-image region
+set_color_band setcolor str Yz - - ----- Change to ribbon color #1
+set_page_length slines str YZ - - ----- Set page length to #1 lines
#
# SVr4 added these capabilities for direct PC-clone support
#
-display_pc_char dispc str S1 ----- Display PC character #1
-enter_pc_charset_mode smpch str S2 ----- Enter PC character display mode
-exit_pc_charset_mode rmpch str S3 ----- Exit PC character display mode
-enter_scancode_mode smsc str S4 ----- Enter PC scancode mode
-exit_scancode_mode rmsc str S5 ----- Exit PC scancode mode
-pc_term_options pctrm str S6 ----- PC terminal options
-scancode_escape scesc str S7 ----- Escape for scancode emulation
-alt_scancode_esc scesa str S8 ----- Alternate escape for scancode emulation
+display_pc_char dispc str S1 - - ----- Display PC character #1
+enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode
+exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode
+enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode
+exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode
+pc_term_options pctrm str S6 - - ----- PC terminal options
+scancode_escape scesc str S7 - - ----- Escape for scancode emulation
+alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
#%.TE
#%.ad
#%
@@ -751,14 +753,14 @@ alt_scancode_esc scesa str S8 ----- Alternate escape for scancode emulation
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBString name Code\fR
-enter_horizontal_hl_mode ehhlm str Xh ----- Enter horizontal highlight mode
-enter_left_hl_mode elhlm str Xl ----- Enter left highlight mode
-enter_low_hl_mode elohlm str Xo ----- Enter low highlight mode
-enter_right_hl_mode erhlm str Xr ----- Enter right highlight mode
-enter_top_hl_mode ethlm str Xt ----- Enter top highlight mode
-enter_vertical_hl_mode evhlm str Xv ----- Enter vertical highlight mode
-set_a_attributes sgr1 str sA ----- Define second set of video attributes #1-#6
-set_pglen_inch slength str sL ----- YI Set page length to #1 hundredth of an inch
+enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
+enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
+enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
+enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode
+enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
+enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
+set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
+set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
#%.TE
#%.ad
#
@@ -795,34 +797,34 @@ set_pglen_inch slength str sL ----- YI Set page length to #1 hundredth of an i
# The ug capability is thrown away, but assumed to be whatever sg is if the
# latter is nonzero and we're dumping in termcap format.
#
-termcap_init2 OTi2 str i2 YB--- secondary initialization string
-termcap_reset OTrs str rs YB-G- terminal reset string
-magic_cookie_glitch_ul OTug num ug YBCGE number of blanks left by ul
+termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
+termcap_reset OTrs str rs - - YB-G- terminal reset string
+magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
#
# Obsolete termcap capabilities. Some are used for termcap translation. The
# code uses the 'OT' prefix we put on obsolete capabilities to suppress
# printing them in terminfo source dumps of compiled entries.
#
-backspaces_with_bs OTbs bool bs YBCGE uses ^H to move left
-crt_no_scrolling OTns bool ns YBCG- crt cannot scroll
-no_correctly_working_cr OTnc bool nc YBCG- no way to go to start of line
-carriage_return_delay OTdC num dC YB-G- pad needed for CR
-new_line_delay OTdN num dN YB-G- pad needed for LF
-linefeed_if_not_lf OTnl str nl YBCGE use to move down
-backspace_if_not_bs OTbc str bc YBCGE move left, if not ^H
+backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
+crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
+no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
+carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
+new_line_delay OTdN num dN - - YB-G- pad needed for LF
+linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
+backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
#
# GNU termcap library extensions. The GNU termcap file distributed with
# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
# BSD termcap file. The name clash with terminfo MT is resolved by type
# info; MT is converted to km.
#
-gnu_has_meta_key OTMT bool MT ----E has meta key
-# gnu_tab_width OTtw num tw ----E tab width in spaces
+gnu_has_meta_key OTMT bool MT - - ----E has meta key
+# gnu_tab_width OTtw num tw - - ----E tab width in spaces
#
# GNU termcap *does* include the following extended capability, Only the
# now-obsolete Ann Arbor terminals used it.
#
-# gnu_change_scroll_region OTcS str cS ---GE alternate set scrolling region
+# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
#
# The following comments describe capnames so ancient that I believe no
# software uses them any longer. Some of these have to go because they
@@ -855,50 +857,50 @@ gnu_has_meta_key OTMT bool MT ----E has meta key
# Applications that use terminfo are supposed to behave as though xr is
# always true.
#
-linefeed_is_newline OTNL bool NL YB--- move down with \n
-# even_parity OTEP bool EP -B--- terminal requires even parity
-# odd_parity OTOP bool OP -B--- terminal requires odd parity
-# half_duplex OTHD bool HD -B--- terminal is half-duplex
-# lower_case_only OTLC bool LC -B--- terminal has only lower case
-# upper_case_only OTUC bool UC -B--- terminal has only upper case
-backspace_delay OTdB num dB YB-G- padding required for ^H
-# form_feed_delay OTdF num dF -B-G- padding required for ^L
-horizontal_tab_delay OTdT num dT YB-G- padding required for ^I
-# vertical_tab_delay OTdV num dV -B--- padding required for ^V
-number_of_function_keys OTkn num kn -B-G- count of function keys
-other_non_function_keys OTko str ko -B-G- list of self-mapped keycaps
-arrow_key_map OTma str ma YBC-- map arrow keys rogue(1) motion keys
-# memory_lock_above OTml str ml -B--- lock visible screen memory above the current line
-# memory_unlock OTmu str mu -B--- unlock visible screen memory above the current line
-has_hardware_tabs OTpt bool pt YB--- has 8-char tabs invoked with ^I
-return_does_clr_eol OTxr bool xr YB--- return clears the line
-# tek_4025_insert_line OTxx bool xx -BC-- Tektronix 4025 insert-line glitch
+linefeed_is_newline OTNL bool NL - - YB--- move down with \n
+# even_parity OTEP bool EP - - -B--- terminal requires even parity
+# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
+# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
+# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
+# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
+backspace_delay OTdB num dB - - YB-G- padding required for ^H
+# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
+horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
+# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
+number_of_function_keys OTkn num kn - - -B-G- count of function keys
+other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
+arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
+# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
+# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
+has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
+return_does_clr_eol OTxr bool xr - - YB--- return clears the line
+# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
#
# mytinfo described this as a termcap capability, but it's not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
-# rind_only_at_top OTxq bool xq ----- reverse index only works from top line
+# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
#
# University of Waterloo termcap extensions (as described in mytinfo).
# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
# be resolved by a type check. The descriptions are guesses from what was
# in the mytinfo tables.
#
-# key_interrupt_char OTki str ki ----- string set by interrupt key (?)
-# key_kill_char OTkk str kk ----- string set by kill key (?)
-# key_suspend_char OTkz str kz ----- string set by suspend key (?)
-# initialization_messy OTxc bool xc ----- initialization leaves garbage on the screen (?)
-# ind_at_bottom_does_cr OTxl bool xl ----- index does a carriage return
+# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
+# key_kill_char OTkk str kk - - ----- string set by kill key (?)
+# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
+# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
#
# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
# check.
#
-# scroll_left OTsl1 str Sl ----- scroll screen leftward
-# scroll_right OTsr1 str Sr ----- scroll screen rightward
-# parm_scroll_left OTsl str SL ----- scroll screen leftward #1 characters
-# parm_scroll_right OTsr str SR ----- scroll screen rightward #1 characters
+# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
+# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
+# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
+# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
#
# The mytinfo capabilities end here.
#
@@ -938,17 +940,17 @@ return_does_clr_eol OTxr bool xr YB--- return clears the line
# that detects the acs_ prefix and uses it to suppress pad translation.
# These terminfo names are invented.
#
-acs_ulcorner OTG2 str G2 ----- single upper left
-acs_llcorner OTG3 str G3 ----- single lower left
-acs_urcorner OTG1 str G1 ----- single upper right
-acs_lrcorner OTG4 str G4 ----- single lower right
-acs_ltee OTGR str GR ----- tee pointing right
-acs_rtee OTGL str GL ----- tee pointing left
-acs_btee OTGU str GU ----- tee pointing up
-acs_ttee OTGD str GD ----- tee pointing down
-acs_hline OTGH str GH ----- single horizontal line
-acs_vline OTGV str GV ----- single vertical line
-acs_plus OTGC str GC ----- single intersection
+acs_ulcorner OTG2 str G2 - - ----- single upper left
+acs_llcorner OTG3 str G3 - - ----- single lower left
+acs_urcorner OTG1 str G1 - - ----- single upper right
+acs_lrcorner OTG4 str G4 - - ----- single lower right
+acs_ltee OTGR str GR - - ----- tee pointing right
+acs_rtee OTGL str GL - - ----- tee pointing left
+acs_btee OTGU str GU - - ----- tee pointing up
+acs_ttee OTGD str GD - - ----- tee pointing down
+acs_hline OTGH str GH - - ----- single horizontal line
+acs_vline OTGV str GV - - ----- single vertical line
+acs_plus OTGC str GC - - ----- single intersection
#
#############################################################################
#
@@ -965,64 +967,64 @@ acs_plus OTGC str GC ----- single intersection
# functionally identical to SVr4 extensions, but they make the binary format
# different. Grrr....
#
-memory_lock meml str ml ----K memory lock above
-memory_unlock memu str mu ----K memory unlock
-#plab_norm pln str pn ----- program label #1 to show string #2
-#label_on smln str LO ----- turn on soft labels
-#label_off rmln str LF ----- turn off soft labels
-#key_f11 kf11 str F1 ----- F11 function key
-#key_f12 kf12 str F2 ----- F12 function key
-#key_f13 kf13 str F3 ----- F13 function key
-#key_f14 kf14 str F4 ----- F14 function key
-#key_f15 kf15 str F5 ----- F15 function key
-#key_f16 kf16 str F6 ----- F16 function key
-#key_f17 kf17 str F7 ----- F17 function key
-#key_f18 kf18 str F8 ----- F18 function key
-#key_f19 kf19 str F9 ----- F19 function key
-#key_f20 kf20 str FA ----- F20 function key
-#key_f21 kf21 str FB ----- F21 function key
-#key_f22 kf22 str FC ----- F22 function key
-#key_f23 kf23 str FD ----- F23 function key
-#key_f24 kf24 str FE ----- F24 function key
-#key_f25 kf25 str FF ----- F25 function key
-#key_f26 kf26 str FG ----- F26 function key
-#key_f27 kf27 str FH ----- F27 function key
-#key_f28 kf28 str FI ----- F28 function key
-#key_f29 kf29 str FJ ----- F29 function key
-#key_f30 kf30 str FK ----- F30 function key
-#key_f31 kf31 str FL ----- F31 function key
-#key_f32 kf32 str FM ----- F32 function key
-#key_f33 kf33 str FN ----- F33 function key
-#key_f34 kf34 str FO ----- F34 function key
-#key_f35 kf35 str FP ----- F35 function key
-#key_f36 kf36 str FQ ----- F36 function key
-#key_f37 kf37 str FR ----- F37 function key
-#key_f38 kf38 str FS ----- F38 function key
-#key_f39 kf39 str FT ----- F39 function key
-#key_f40 kf40 str FU ----- F40 function key
-#key_f41 kf41 str FV ----- F41 function key
-#key_f42 kf42 str FW ----- F42 function key
-#key_f43 kf43 str FX ----- F43 function key
-#key_f44 kf44 str FY ----- F44 function key
-#key_f45 kf45 str FZ ----- F45 function key
-#key_f46 kf46 str Fa ----- F46 function key
-#key_f47 kf47 str Fb ----- F47 function key
-#key_f48 kf48 str Fc ----- F48 function key
-#key_f49 kf49 str Fd ----- F49 function key
-#key_f50 kf50 str Fe ----- F50 function key
-#key_f51 kf51 str Ff ----- F51 function key
-#key_f52 kf52 str Fg ----- F52 function key
-#key_f53 kf53 str Fh ----- F53 function key
-#key_f54 kf54 str Fi ----- F54 function key
-#key_f55 kf55 str Fj ----- F55 function key
-#key_f56 kf56 str Fk ----- F56 function key
-#key_f57 kf57 str Fl ----- F57 function key
-#key_f58 kf58 str Fm ----- F58 function key
-#key_f59 kf59 str Fn ----- F59 function key
-#key_f60 kf60 str Fo ----- F60 function key
-#key_f61 kf61 str Fp ----- F61 function key
-#key_f62 kf62 str Fq ----- F62 function key
-#key_f63 kf63 str Fr ----- F63 function key
+memory_lock meml str ml - - ----K memory lock above
+memory_unlock memu str mu - - ----K memory unlock
+#plab_norm pln str pn - - ----- program label #1 to show string #2
+#label_on smln str LO - - ----- turn on soft labels
+#label_off rmln str LF - - ----- turn off soft labels
+#key_f11 kf11 str F1 - - ----- F11 function key
+#key_f12 kf12 str F2 - - ----- F12 function key
+#key_f13 kf13 str F3 - - ----- F13 function key
+#key_f14 kf14 str F4 - - ----- F14 function key
+#key_f15 kf15 str F5 - - ----- F15 function key
+#key_f16 kf16 str F6 - - ----- F16 function key
+#key_f17 kf17 str F7 - - ----- F17 function key
+#key_f18 kf18 str F8 - - ----- F18 function key
+#key_f19 kf19 str F9 - - ----- F19 function key
+#key_f20 kf20 str FA - - ----- F20 function key
+#key_f21 kf21 str FB - - ----- F21 function key
+#key_f22 kf22 str FC - - ----- F22 function key
+#key_f23 kf23 str FD - - ----- F23 function key
+#key_f24 kf24 str FE - - ----- F24 function key
+#key_f25 kf25 str FF - - ----- F25 function key
+#key_f26 kf26 str FG - - ----- F26 function key
+#key_f27 kf27 str FH - - ----- F27 function key
+#key_f28 kf28 str FI - - ----- F28 function key
+#key_f29 kf29 str FJ - - ----- F29 function key
+#key_f30 kf30 str FK - - ----- F30 function key
+#key_f31 kf31 str FL - - ----- F31 function key
+#key_f32 kf32 str FM - - ----- F32 function key
+#key_f33 kf33 str FN - - ----- F33 function key
+#key_f34 kf34 str FO - - ----- F34 function key
+#key_f35 kf35 str FP - - ----- F35 function key
+#key_f36 kf36 str FQ - - ----- F36 function key
+#key_f37 kf37 str FR - - ----- F37 function key
+#key_f38 kf38 str FS - - ----- F38 function key
+#key_f39 kf39 str FT - - ----- F39 function key
+#key_f40 kf40 str FU - - ----- F40 function key
+#key_f41 kf41 str FV - - ----- F41 function key
+#key_f42 kf42 str FW - - ----- F42 function key
+#key_f43 kf43 str FX - - ----- F43 function key
+#key_f44 kf44 str FY - - ----- F44 function key
+#key_f45 kf45 str FZ - - ----- F45 function key
+#key_f46 kf46 str Fa - - ----- F46 function key
+#key_f47 kf47 str Fb - - ----- F47 function key
+#key_f48 kf48 str Fc - - ----- F48 function key
+#key_f49 kf49 str Fd - - ----- F49 function key
+#key_f50 kf50 str Fe - - ----- F50 function key
+#key_f51 kf51 str Ff - - ----- F51 function key
+#key_f52 kf52 str Fg - - ----- F52 function key
+#key_f53 kf53 str Fh - - ----- F53 function key
+#key_f54 kf54 str Fi - - ----- F54 function key
+#key_f55 kf55 str Fj - - ----- F55 function key
+#key_f56 kf56 str Fk - - ----- F56 function key
+#key_f57 kf57 str Fl - - ----- F57 function key
+#key_f58 kf58 str Fm - - ----- F58 function key
+#key_f59 kf59 str Fn - - ----- F59 function key
+#key_f60 kf60 str Fo - - ----- F60 function key
+#key_f61 kf61 str Fp - - ----- F61 function key
+#key_f62 kf62 str Fq - - ----- F62 function key
+#key_f63 kf63 str Fr - - ----- F63 function key
#
# IBM extensions
#
@@ -1046,94 +1048,94 @@ memory_unlock memu str mu ----K memory unlock
#
# The box2 characters are the double-line versions of these forms graphics.
#
-box_chars_1 box1 str bx ----K box characters primary set
-#box_chars_2 box2 str by ----K box characters secondary set
-#box_attr_1 batt1 str Bx ----K attributes for box1
-#box_attr_2 batt2 str By ----K attributes for box2
-#color_bg_0 colb0 str d0 ----K background color 0
-#color_bg_1 colb1 str d1 ----K background color 1
-#color_bg_2 colb2 str d2 ----K background color 2
-#color_bg_3 colb3 str d3 ----K background color 3
-#color_bg_4 colb4 str d4 ----K background color 4
-#color_bg_5 colb5 str d5 ----K background color 5
-#color_bg_6 colb6 str d6 ----K background color 6
-#color_bg_7 colb7 str d7 ----K background color 7
-#color_fg_0 colf0 str c0 ----K foreground color 0
-#color_fg_1 colf1 str c1 ----K foreground color 1
-#color_fg_2 colf2 str c2 ----K foreground color 2
-#color_fg_3 colf3 str c3 ----K foreground color 3
-#color_fg_4 colf4 str c4 ----K foreground color 4
-#color_fg_5 colf5 str c5 ----K foreground color 5
-#color_fg_6 colf6 str c6 ----K foreground color 6
-#color_fg_7 colf7 str c7 ----K foreground color 7
-#font_0 font0 str f0 ----- select font 0
-#font_1 font1 str f1 ----- select font 1
-#font_2 font2 str f2 ----- select font 2
-#font_3 font3 str f3 ----- select font 3
-#font_4 font4 str f4 ----K select font 4
-#font_5 font5 str f5 ----K select font 5
-#font_6 font6 str f6 ----K select font 6
-#font_7 font7 str f7 ----K select font 7
-#key_back_tab kbtab str k0 ----- backtab key
-#key_do kdo str ki ----K do request key
-#key_command kcmd str kd ----K command-request key
-#key_command_pane kcpn str kW ----K command-pane key
-#key_end kend str kw ----- end key
-#key_help khlp str kq ----- help key
-#key_newline knl str nl ----K newline key
-#key_next_pane knpn str kv ----K next-pane key
-#key_prev_cmd kppn str kp ----K previous-command key
-#key_prev_pane kppn str kV ----K previous-pane key
-#key_quit kquit str kQ ----K quit key
-#key_select ksel str kU ----- select key
-#key_scroll_left kscl str kz ----K scroll left
-#key_scroll_right kscr str kZ ----K scroll right
-#key_tab ktab str ko ----K tab key
-#key_smap_in1 kmpf1 str Kv ----K special mapped key 1 input
-#key_smap_out1 kmpt1 str KV ----K special mapped key 1 output
-#key_smap_in2 kmpf2 str Kw ----K special mapped key 2 input
-#key_smap_out2 kmpt2 str KW ----K special mapped key 2 output
-#key_smap_in3 kmpf3 str Kx ----K special mapped key 3 input
-#key_smap_out3 kmpt3 str KX ----K special mapped key 3 output
-#key_smap_in4 kmpf4 str Ky ----K special mapped key 4 input
-#key_smap_out4 kmpt4 str KY ----K special mapped key 4 output
-#key_smap_in5 kmpf5 str Kz ----K special mapped key 5 input
-#key_smap_out5 kmpt5 str KZ ----K special mapped key 5 output
-#appl_defined_str apstr str za ----K application-defined string
+box_chars_1 box1 str bx - - ----K box characters primary set
+#box_chars_2 box2 str by - - ----K box characters secondary set
+#box_attr_1 batt1 str Bx - - ----K attributes for box1
+#box_attr_2 batt2 str By - - ----K attributes for box2
+#color_bg_0 colb0 str d0 - - ----K background color 0
+#color_bg_1 colb1 str d1 - - ----K background color 1
+#color_bg_2 colb2 str d2 - - ----K background color 2
+#color_bg_3 colb3 str d3 - - ----K background color 3
+#color_bg_4 colb4 str d4 - - ----K background color 4
+#color_bg_5 colb5 str d5 - - ----K background color 5
+#color_bg_6 colb6 str d6 - - ----K background color 6
+#color_bg_7 colb7 str d7 - - ----K background color 7
+#color_fg_0 colf0 str c0 - - ----K foreground color 0
+#color_fg_1 colf1 str c1 - - ----K foreground color 1
+#color_fg_2 colf2 str c2 - - ----K foreground color 2
+#color_fg_3 colf3 str c3 - - ----K foreground color 3
+#color_fg_4 colf4 str c4 - - ----K foreground color 4
+#color_fg_5 colf5 str c5 - - ----K foreground color 5
+#color_fg_6 colf6 str c6 - - ----K foreground color 6
+#color_fg_7 colf7 str c7 - - ----K foreground color 7
+#font_0 font0 str f0 - - ----- select font 0
+#font_1 font1 str f1 - - ----- select font 1
+#font_2 font2 str f2 - - ----- select font 2
+#font_3 font3 str f3 - - ----- select font 3
+#font_4 font4 str f4 - - ----K select font 4
+#font_5 font5 str f5 - - ----K select font 5
+#font_6 font6 str f6 - - ----K select font 6
+#font_7 font7 str f7 - - ----K select font 7
+#key_back_tab kbtab str k0 - - ----- backtab key
+#key_do kdo str ki - - ----K do request key
+#key_command kcmd str kd - - ----K command-request key
+#key_command_pane kcpn str kW - - ----K command-pane key
+#key_end kend str kw - - ----- end key
+#key_help khlp str kq - - ----- help key
+#key_newline knl str nl - - ----K newline key
+#key_next_pane knpn str kv - - ----K next-pane key
+#key_prev_cmd kppn str kp - - ----K previous-command key
+#key_prev_pane kppn str kV - - ----K previous-pane key
+#key_quit kquit str kQ - - ----K quit key
+#key_select ksel str kU - - ----- select key
+#key_scroll_left kscl str kz - - ----K scroll left
+#key_scroll_right kscr str kZ - - ----K scroll right
+#key_tab ktab str ko - - ----K tab key
+#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
+#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
+#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
+#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
+#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
+#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
+#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
+#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
+#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
+#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
+#appl_defined_str apstr str za - - ----K application-defined string
# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
# the IBM manual pages, so the cap name strings are guesses. The terminfo
# names are almost certainly right, the termcap ones almost certainly wrong.
-#key_smap_in6 kmpf6 str k! ----K special mapped key 6 input
-#key_smap_out6 kmpt6 str K@ ----K special mapped key 6 output
-#key_smap_in7 kmpf7 str k# ----K special mapped key 7 input
-#key_smap_out7 kmpt7 str K$ ----K special mapped key 7 output
-#key_smap_in8 kmpf8 str k% ----K special mapped key 8 input
-#key_smap_out8 kmpt8 str K^ ----K special mapped key 8 output
-#key_smap_in9 kmpf9 str k& ----K special mapped key 9 input
-#key_smap_out9 kmpt9 str K* ----K special mapped key 9 output
+#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input
+#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output
+#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input
+#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output
+#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input
+#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output
+#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input
+#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output
# Undocumented capabilities end here
-#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_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
+#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
+#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
+#enter_topline_mode topl str tp - - ----K start top-line mode
+#enter_bottom_mode btml str bm - - ----K start bottom-line mode
+#enter_rvert_mode rvert str rv - - ----K start right-vertical mode
+#enter_lvert_mode lvert str lv - - ----K start left-vertical mode
#
#############################################################################
#
diff --git a/contrib/ncurses/include/Caps.aix4 b/contrib/ncurses/include/Caps.aix4
new file mode 100644
index 000000000000..c010bbd497ce
--- /dev/null
+++ b/contrib/ncurses/include/Caps.aix4
@@ -0,0 +1,1255 @@
+##############################################################################
+# Copyright (c) 2001 Free Software Foundation, Inc. #
+# #
+# Permission is hereby granted, free of charge, to any person obtaining a #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation #
+# the rights to use, copy, modify, merge, publish, distribute, distribute #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the #
+# following conditions: #
+# #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software. #
+# #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
+# DEALINGS IN THE SOFTWARE. #
+# #
+# Except as contained in this notice, the name(s) of the above copyright #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written #
+# authorization. #
+##############################################################################
+#
+# Author: Thomas Dickey
+#
+# $Id: Caps.aix4,v 1.5 2002/04/20 15:43:42 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 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
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+# box1[0] = ACS_ULCORNER
+# box1[1] = ACS_HLINE
+# box1[2] = ACS_URCORNER
+# box1[3] = ACS_VLINE
+# box1[4] = ACS_LRCORNER
+# box1[5] = ACS_LLCORNER
+# box1[6] = ACS_TTEE
+# box1[7] = ACS_RTEE
+# box1[8] = ACS_BTEE
+# box1[9] = ACS_LTEE
+# box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+box_chars_1 box1 str bx - - ----K box characters primary set
+box_chars_2 box2 str by - - ----K box characters secondary set
+box_attr_1 batt1 str Bx - - ----K attributes for box1
+box_attr_2 batt2 str By - - ----K attributes for box2
+color_bg_0 colb0 str d0 - - ----K background color 0
+color_bg_1 colb1 str d1 - - ----K background color 1
+color_bg_2 colb2 str d2 - - ----K background color 2
+color_bg_3 colb3 str d3 - - ----K background color 3
+color_bg_4 colb4 str d4 - - ----K background color 4
+color_bg_5 colb5 str d5 - - ----K background color 5
+color_bg_6 colb6 str d6 - - ----K background color 6
+color_bg_7 colb7 str d7 - - ----K background color 7
+color_fg_0 colf0 str c0 - - ----K foreground color 0
+color_fg_1 colf1 str c1 - - ----K foreground color 1
+color_fg_2 colf2 str c2 - - ----K foreground color 2
+color_fg_3 colf3 str c3 - - ----K foreground color 3
+color_fg_4 colf4 str c4 - - ----K foreground color 4
+color_fg_5 colf5 str c5 - - ----K foreground color 5
+color_fg_6 colf6 str c6 - - ----K foreground color 6
+color_fg_7 colf7 str c7 - - ----K foreground color 7
+font_0 font0 str f0 - - ----K select font 0
+font_1 font1 str f1 - - ----K select font 1
+font_2 font2 str f2 - - ----K select font 2
+font_3 font3 str f3 - - ----K select font 3
+font_4 font4 str f4 - - ----K select font 4
+font_5 font5 str f5 - - ----K select font 5
+font_6 font6 str f6 - - ----K select font 6
+font_7 font7 str f7 - - ----K select font 7
+key_back_tab kbtab str k0 - - ----K backtab key
+key_do kdo str ki - - ----K do request key
+key_command kcmd str kd - - ----K command-request key
+key_command_pane kcpn str kW - - ----K command-pane key
+key_end kend str kw KEY_END 0550 ----- end key
+key_help khlp str kq - - ----- help key
+key_newline knl str nl - - ----K newline key
+key_next_pane knpn str kv - - ----K next-pane key
+key_prev_cmd kppn str kp - - ----K previous-command key
+key_prev_pane kppn str kV - - ----K previous-pane key
+key_quit kquit str kQ - - ----K quit key
+key_select_aix ksel str kU - - ----- select key
+key_scroll_left kscl str kz - - ----K scroll left
+key_scroll_right kscr str kZ - - ----K scroll right
+key_tab ktab str ko - - ----K tab key
+key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
+key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
+key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
+key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
+key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
+key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
+key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
+key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
+key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
+key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
+appl_defined_str apstr str za - - ----K application-defined string
+key_smap_in6 kmpf6 str kr - - ----K special mapped key 6 input
+key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output
+key_smap_in7 kmpf7 str ks - - ----K special mapped key 7 input
+key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output
+key_smap_in8 kmpf8 str kt - - ----K special mapped key 8 input
+key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output
+key_smap_in9 kmpf9 str ku - - ----K special mapped key 9 input
+key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output
+key_sf1 ksf1 str S1 - - ----K special function key 1
+key_sf2 ksf2 str S2 - - ----K special function key 2
+key_sf3 ksf3 str S3 - - ----K special function key 3
+key_sf4 ksf4 str S4 - - ----K special function key 4
+key_sf5 ksf5 str S5 - - ----K special function key 5
+key_sf6 ksf6 str S6 - - ----K special function key 6
+key_sf7 ksf7 str S7 - - ----K special function key 7
+key_sf8 ksf8 str S8 - - ----K special function key 8
+key_sf9 ksf9 str S9 - - ----K special function key 9
+key_sf10 ksf10 str S0 - - ----K special function key 10
+key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
+key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
+key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
+key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
+key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
+key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
+key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
+key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
+key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
+key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
+key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
+key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
+key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
+key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
+key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
+key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
+key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
+key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
+key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
+key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
+key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
+key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
+key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
+key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
+key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
+key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
+key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
+key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
+key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
+key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
+key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
+key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
+key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
+key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
+key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
+key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
+key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
+key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
+key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
+key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
+key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
+key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
+key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
+key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
+key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
+key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
+key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
+key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
+key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
+key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
+key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
+key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
+key_action kact str kJ - - ----K sent by action key
+
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+enter_topline_mode topl str tp - - ----K start top-line mode
+enter_bottom_mode btml str bm - - ----K start bottom-line mode
+enter_rvert_mode rvert str rv - - ----K start right-vertical mode
+enter_lvert_mode lvert str lv - - ----K start left-vertical mode
+#
+# SVr4 capabilities resume here. Note that key_end is in the IBM-extensions.
+#
+char_padding rmp str rP - - ----- like ip but when in insert mode
+acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
+plab_norm pln str pn - - ----- program label #1 to show string #2
+key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key
+enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
+exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
+enter_am_mode smam str SA - - ----- turn on automatic margins
+exit_am_mode rmam str RA - - ----- turn off automatic margins
+xon_character xonc str XN - - ----- XON character
+xoff_character xoffc str XF - - ----- XOFF character
+ena_acs enacs str eA - - ----- enable alternate char set
+label_on smln str LO - - ----- turn on soft labels
+label_off rmln str LF - - ----- turn off soft labels
+key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
+key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
+key_close kclo str @3 KEY_CLOSE 0544 ----- close key
+#key_command kcmd str @4 KEY_COMMAND 0545 ----- command key
+key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
+key_create kcrt str @6 KEY_CREATE 0547 ----- create key
+#key_end kend str @7 KEY_END 0550 ----- end key
+key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
+key_exit kext str @9 KEY_EXIT 0551 ----- exit key
+key_find kfnd str @0 KEY_FIND 0552 ----- find key
+#key_help khlp str %1 KEY_HELP 0553 ----- help key
+key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
+key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
+key_move kmov str %4 KEY_MOVE 0556 ----- move key
+key_next knxt str %5 KEY_NEXT 0557 ----- next key
+key_open kopn str %6 KEY_OPEN 0560 ----- open key
+key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
+key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
+key_print kprt str %9 KEY_PRINT 0532 ----- print key
+key_redo krdo str %0 KEY_REDO 0563 ----- redo key
+key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
+key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
+key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
+key_restart krst str &4 KEY_RESTART 0567 ----- restart key
+key_resume kres str &5 KEY_RESUME 0570 ----- resume key
+key_save ksav str &6 KEY_SAVE 0571 ----- save key
+key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
+key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
+key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
+key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
+key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
+key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
+key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
+key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
+key_select kslt str *6 KEY_SELECT 0601 ----- select key
+key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
+key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
+key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
+key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
+key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
+key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
+key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
+key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
+key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
+key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
+key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
+key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
+key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
+key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
+key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
+key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
+key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
+key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
+key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
+key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
+key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
+req_for_input rfi str RF - - ----- send next input char (for ptys)
+clr_bol el1 str cb - - ----- Clear to beginning of line
+clear_margins mgc str MC - - ----- clear right and left soft margins
+set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_right_margin smgr str MR - - ----- set right soft margin at current column
+label_format fln str Lf - - ----- label format
+set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
+display_clock dclk str DK - - ----- display clock
+remove_clock rmclk str RC - - ----- remove clock
+create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5
+goto_window wingo str WG - - ----- go to window #1
+hangup hup str HU - - ----- hang-up phone
+dial_phone dial str DI - - ----- dial number #1
+quick_dial qdial str QD - - ----- dial number #1 without checking
+tone tone str TO - - ----- select touch tone dialing
+pulse pulse str PU - - ----- select pulse dialing
+flash_hook hook str fh - - ----- flash switch hook
+fixed_pause pause str PA - - ----- pause for 2-3 seconds
+wait_tone wait str WA - - ----- wait for dial-tone
+user0 u0 str u0 - - ----- User string #0
+user1 u1 str u1 - - ----- User string #1
+user2 u2 str u2 - - ----- User string #2
+user3 u3 str u3 - - ----- User string #3
+user4 u4 str u4 - - ----- User string #4
+user5 u5 str u5 - - ----- User string #5
+user6 u6 str u6 - - ----- User string #6
+user7 u7 str u7 - - ----- User string #7
+user8 u8 str u8 - - ----- User string #8
+user9 u9 str u9 - - ----- User string #9
+#
+# SVr4 added these capabilities to support color
+#
+orig_pair op str op - - ----- Set default pair to its original value
+orig_colors oc str oc - - ----- Set all color pairs to the original ones
+initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
+initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+set_color_pair scp str sp - - ----- Set current color pair to #1
+set_foreground setf str Sf - - ----- Set foreground color #1
+set_background setb str Sb - - ----- Set background color #1
+#
+# SVr4 added these capabilities to support printers
+#
+change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1
+change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1
+change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
+change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
+define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
+enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
+enter_italics_mode sitm str ZH - - ----- Enter italic mode
+enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
+enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode
+enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode
+enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode
+enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode
+enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode
+enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode
+enter_upward_mode sum str ZP - - ----- Start upward carriage motion
+exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode
+exit_italics_mode ritm str ZR - - ----- End italic mode
+exit_leftward_mode rlm str ZS - - ----- End left-motion mode
+exit_micro_mode rmicm str ZT - - ----- End micro-motion mode
+exit_shadow_mode rshm str ZU - - ----- End shadow-print mode
+exit_subscript_mode rsubm str ZV - - ----- End subscript mode
+exit_superscript_mode rsupm str ZW - - ----- End superscript mode
+exit_upward_mode rum str ZX - - ----- End reverse character motion
+micro_column_address mhpa str ZY - - ----- Like column_address in micro mode
+micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode
+micro_left mcub1 str Za - - ----- Like cursor_left in micro mode
+micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode
+micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode
+micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode
+order_of_pins porder str Ze - - ----- Match software bits to print-head pins
+parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode
+parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode
+parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode
+parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode
+select_char_set scs str Zj - - ----- Select character set, #1
+set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line
+set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
+set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1
+set_top_margin smgt str Zo - - ----- Set top margin at current line
+set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1
+start_bit_image sbim str Zq - - ----- Start printing bit image graphics
+start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set
+stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics
+stop_char_set_def rcsd str Zt - - ----- End definition of character set #1
+subscript_characters subcs str Zu - - ----- List of subscriptable characters
+superscript_characters supcs str Zv - - ----- List of superscriptable characters
+these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
+zero_motion zerom str Zx - - ----- No motion for subsequent character
+#%.TE
+#%.ad
+#%
+#%The following string capabilities are present in the SVr4.0 term structure,
+#%but were originally not documented in the man page.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw18.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBString name Code\fR
+char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
+key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
+mouse_info minfo str Mi - - ----- Mouse status information
+req_mouse_pos reqmp str RQ - - ----- Request mouse position
+get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
+set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
+set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
+pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
+device_type devt str dv - - ----- Indicate language/codeset support
+code_set_init csin str ci - - ----- Init sequence for multiple codesets
+set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
+set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
+set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
+set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
+set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2
+bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times
+bit_image_newline binel str Zz - - ----- Move to next row of the bit image
+bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row
+color_names colornm str Yw - - ----- Give name for color #1
+define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region
+end_bit_image_region endbi str Yy - - ----- End a bit-image region
+set_color_band setcolor str Yz - - ----- Change to ribbon color #1
+set_page_length slines str YZ - - ----- Set page length to #1 lines
+#
+# SVr4 added these capabilities for direct PC-clone support
+#
+display_pc_char dispc str S1 - - ----- Display PC character #1
+enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode
+exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode
+enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode
+exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode
+pc_term_options pctrm str S6 - - ----- PC terminal options
+scancode_escape scesc str S7 - - ----- Escape for scancode emulation
+alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
+#%.TE
+#%.ad
+#%
+#%.in .8i
+#%The XSI Curses standard added these. They are some post-4.1
+#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+#%The \fBncurses\fR termcap names for them are invented; according to the
+#%XSI Curses standard, they have no termcap names. If your compiled terminfo
+#%entries use these, they may not be binary-compatible with System V terminfo
+#%entries after SVr4.1; beware!
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBString name Code\fR
+enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
+enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
+enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
+enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode
+enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
+enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
+set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
+set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
+#%.TE
+#%.ad
+#
+# The magic token below tells the tic compiler-generator code that all the caps
+# past it should be ignored (not written out) when dumping terminfo objects. It
+# also tells the man page table generator not to pass through following lines
+# This means we can have obsolete capabilities and pseudo-capabilities that are
+# recognized for termcap or terminfo compilation, but not output.
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually! In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents. The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2. Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
+termcap_reset OTrs str rs - - YB-G- terminal reset string
+magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
+#
+# Obsolete termcap capabilities. Some are used for termcap translation. The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
+crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
+no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
+carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
+new_line_delay OTdN num dN - - YB-G- pad needed for LF
+linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
+backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
+#
+# GNU termcap library extensions. The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file. The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key OTMT bool MT - - ----E has meta key
+# gnu_tab_width OTtw num tw - - ----E tab width in spaces
+#
+# GNU termcap *does* include the following extended capability, Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer. Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code. They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both. This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code. It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text. All lines above the cursor's current line become locked in place on
+# the screen. Then enter data normally. When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data. Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline OTNL bool NL - - YB--- move down with \n
+# even_parity OTEP bool EP - - -B--- terminal requires even parity
+# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
+# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
+# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
+# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
+backspace_delay OTdB num dB - - YB-G- padding required for ^H
+# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
+horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
+# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
+number_of_function_keys OTkn num kn - - -B-G- count of function keys
+other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
+arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
+# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
+# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
+has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
+return_does_clr_eol OTxr bool xr - - YB--- return clears the line
+# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check. The descriptions are guesses from what was
+# in the mytinfo tables.
+#
+# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
+# key_kill_char OTkk str kk - - ----- string set by kill key (?)
+# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
+# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
+# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
+# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
+# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap IBM ASCII description ACS ASCII
+# --- ----------- -------------------- ------------- ------
+# G1 191 \277 M-? single upper right ACS_URCORNER
+# G2 218 \332 M-Z single upper left ACS_ULCORNER
+# G3 192 \300 M-@ single lower left ACS_LLCORNER
+# G4 217 \331 M-Y single lower right ACS_LRCORNER
+# G5 187 \273 M-; double upper right
+# G6 201 \311 M-I double upper left
+# G7 200 \310 M-H double lower left
+# G8 188 \274 M-< double lower right
+# GC 197 \305 M-E single intersection ACS_PLUS _ _
+# GD 194 \302 M-B single down-tick ACS_TTEE |
+# GH 196 \304 M-D single horizontal line ACS_HLINE
+# GL 180 \264 M-4 single left tick ACS_RTEE -|
+# GR 195 \303 M-C single right tick ACS_LTEE |-
+# GU 193 \301 M-A single up tick ACS_BTEE _|_
+# GV 179 \263 M-3 single vertical line ACS_VLINE
+# Gc 206 \316 M-N double intersection
+# Gd 203 \313 M-K double down tick
+# Gh 205 \315 M-M double horizontal line
+# Gl 204 \204 M-L double left tick
+# Gr 185 \271 M-9 double right tick
+# Gu 202 \312 M-J double up tick
+# Gv 186 \272 M-: double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down). We don't want to do normal pad
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics. There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner OTG2 str G2 - - ----- single upper left
+acs_llcorner OTG3 str G3 - - ----- single lower left
+acs_urcorner OTG1 str G1 - - ----- single upper right
+acs_lrcorner OTG4 str G4 - - ----- single lower right
+acs_ltee OTGR str GR - - ----- tee pointing right
+acs_rtee OTGL str GL - - ----- tee pointing left
+acs_btee OTGU str GU - - ----- tee pointing up
+acs_ttee OTGD str GD - - ----- tee pointing down
+acs_hline OTGH str GH - - ----- single horizontal line
+acs_vline OTGV str GV - - ----- single vertical line
+acs_plus OTGC str GC - - ----- single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments. What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set. They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files. Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different. Grrr....
+#
+memory_lock meml str ml - - ----K memory lock above
+memory_unlock memu str mu - - ----K memory unlock
+#plab_norm pln str pn - - ----- program label #1 to show string #2
+#label_on smln str LO - - ----- turn on soft labels
+#label_off rmln str LF - - ----- turn off soft labels
+#key_f11 kf11 str F1 - - ----- F11 function key
+#key_f12 kf12 str F2 - - ----- F12 function key
+#key_f13 kf13 str F3 - - ----- F13 function key
+#key_f14 kf14 str F4 - - ----- F14 function key
+#key_f15 kf15 str F5 - - ----- F15 function key
+#key_f16 kf16 str F6 - - ----- F16 function key
+#key_f17 kf17 str F7 - - ----- F17 function key
+#key_f18 kf18 str F8 - - ----- F18 function key
+#key_f19 kf19 str F9 - - ----- F19 function key
+#key_f20 kf20 str FA - - ----- F20 function key
+#key_f21 kf21 str FB - - ----- F21 function key
+#key_f22 kf22 str FC - - ----- F22 function key
+#key_f23 kf23 str FD - - ----- F23 function key
+#key_f24 kf24 str FE - - ----- F24 function key
+#key_f25 kf25 str FF - - ----- F25 function key
+#key_f26 kf26 str FG - - ----- F26 function key
+#key_f27 kf27 str FH - - ----- F27 function key
+#key_f28 kf28 str FI - - ----- F28 function key
+#key_f29 kf29 str FJ - - ----- F29 function key
+#key_f30 kf30 str FK - - ----- F30 function key
+#key_f31 kf31 str FL - - ----- F31 function key
+#key_f32 kf32 str FM - - ----- F32 function key
+#key_f33 kf33 str FN - - ----- F33 function key
+#key_f34 kf34 str FO - - ----- F34 function key
+#key_f35 kf35 str FP - - ----- F35 function key
+#key_f36 kf36 str FQ - - ----- F36 function key
+#key_f37 kf37 str FR - - ----- F37 function key
+#key_f38 kf38 str FS - - ----- F38 function key
+#key_f39 kf39 str FT - - ----- F39 function key
+#key_f40 kf40 str FU - - ----- F40 function key
+#key_f41 kf41 str FV - - ----- F41 function key
+#key_f42 kf42 str FW - - ----- F42 function key
+#key_f43 kf43 str FX - - ----- F43 function key
+#key_f44 kf44 str FY - - ----- F44 function key
+#key_f45 kf45 str FZ - - ----- F45 function key
+#key_f46 kf46 str Fa - - ----- F46 function key
+#key_f47 kf47 str Fb - - ----- F47 function key
+#key_f48 kf48 str Fc - - ----- F48 function key
+#key_f49 kf49 str Fd - - ----- F49 function key
+#key_f50 kf50 str Fe - - ----- F50 function key
+#key_f51 kf51 str Ff - - ----- F51 function key
+#key_f52 kf52 str Fg - - ----- F52 function key
+#key_f53 kf53 str Fh - - ----- F53 function key
+#key_f54 kf54 str Fi - - ----- F54 function key
+#key_f55 kf55 str Fj - - ----- F55 function key
+#key_f56 kf56 str Fk - - ----- F56 function key
+#key_f57 kf57 str Fl - - ----- F57 function key
+#key_f58 kf58 str Fm - - ----- F58 function key
+#key_f59 kf59 str Fn - - ----- F59 function key
+#key_f60 kf60 str Fo - - ----- F60 function key
+#key_f61 kf61 str Fp - - ----- F61 function key
+#key_f62 kf62 str Fq - - ----- F62 function key
+#key_f63 kf63 str Fr - - ----- F63 function key
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files. We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias sb sr BSD scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities. Its signature is the KM capability, used to name
+# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set. Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias BO mr AT&T enter_reverse_mode
+capalias CI vi AT&T cursor_invisible
+capalias CV ve AT&T cursor_normal
+capalias DS mh AT&T enter_dim_mode
+#capalias EE me AT&T exit_attribute_mode
+capalias FE LF AT&T label_on
+capalias FL LO AT&T label_off
+capalias XS mk AT&T enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias EE mh XENIX exit_attribute_mode
+capalias GE ae XENIX exit_alt_charset_mode
+capalias GS as XENIX enter_alt_charset_mode
+capalias CF vi XENIX cursor_invis
+capalias CO ve XENIX cursor_normal
+capalias EN @7 XENIX key_end
+capalias HM kh XENIX key_home
+capalias LD kL XENIX key_dl
+capalias PD kN XENIX key_npage
+capalias PN po XENIX prtr_off
+capalias PS pf XENIX prtr_on
+capalias PU kP XENIX key_ppage
+capalias RT @8 XENIX kent
+capalias UP ku XENIX kcuu1
+capalias G6 IGNORE XENIX double-ACS_ULCORNER
+capalias G7 IGNORE XENIX double-ACS_LLCORNER
+capalias G5 IGNORE XENIX double-ACS_URCORNER
+capalias G8 IGNORE XENIX double-ACS_LRCORNER
+capalias Gr IGNORE XENIX double-ACS_LTEE
+capalias Gr IGNORE XENIX double-ACS_RTEE
+capalias Gu IGNORE XENIX double-ACS_BTEE
+capalias Gd IGNORE XENIX double ACS_TTEE
+capalias Gh IGNORE XENIX double-ACS_HLINE
+capalias Gv IGNORE XENIX double-ACS_VLINE
+capalias Gc IGNORE XENIX double-ACS_PLUS
+capalias GG IGNORE XENIX acs-glitch
+#
+# IBM extensions:
+#
+capalias kq %1 IBM key_help
+#
+# Iris extensions:
+#
+capalias HS mh IRIS enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias KA k; Tek key_f10
+capalias KB F1 Tek key_f11
+capalias KC F2 Tek key_f12
+capalias KD F3 Tek key_f13
+capalias KE F4 Tek key_f14
+capalias KF F5 Tek key_f15
+capalias BC Sb Tek set_background
+capalias FC Sf Tek set_foreground
+#
+# There are also the following:
+#
+# XENIX XENIX variable name name clash with terminfo?
+# ----- ------------------- -------------------------
+# CL key_char_left
+# CR key_char_right
+# CW key_change_window
+# HP ??
+# LF key_linefeed label_off
+# NU key_next_unlocked_cell
+# PL ??
+# PR ??
+# RC key_recalc remove_clock
+# RF key_toggle_ref req_for_input
+# WL key_word_left
+# WR key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias font0 s0ds IBM set0_des_seq
+infoalias font1 s1ds IBM set1_des_seq
+infoalias font2 s2ds IBM set2_des_seq
+infoalias font3 s3ds IBM set3_des_seq
+infoalias kbtab kcbt IBM key_backtab
+infoalias ksel kslt IBM key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/contrib/ncurses/include/Caps.keys b/contrib/ncurses/include/Caps.keys
new file mode 100644
index 000000000000..7ef7545fa5bc
--- /dev/null
+++ b/contrib/ncurses/include/Caps.keys
@@ -0,0 +1,1354 @@
+##############################################################################
+# Copyright (c) 2001 Free Software Foundation, Inc. #
+# #
+# Permission is hereby granted, free of charge, to any person obtaining a #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation #
+# the rights to use, copy, modify, merge, publish, distribute, distribute #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the #
+# following conditions: #
+# #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software. #
+# #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
+# DEALINGS IN THE SOFTWARE. #
+# #
+# Except as contained in this notice, the name(s) of the above copyright #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written #
+# authorization. #
+##############################################################################
+#
+# Author: Thomas Dickey
+# and: Ilya Zakharevich
+#
+# $Id: Caps.keys,v 1.2 2002/04/20 15:43:49 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is illustrates an experimental extension to describe alt-, shift- and
+# control-modifiers applied to function and normal keys, as done on IBM pc's.
+#
+# This table is used to generate initializers for tables that drive tic,
+# infocmp, and the library compilation code used to support the termcap
+# compatibility hack. It is also used to generate the tabular portion of the
+# terminfo(5) man page; lines beginning with `#%' are passed through to become
+# the terminfo table.
+#
+# This file has three major sections; a standard-capabilities table, two
+# extension-capability tables, and a section of aliases declarations.
+# The first two have the same format, as follows:
+#
+# FILE FORMAT
+#
+# Column 1: terminfo variable name
+# Column 2: terminfo capability name
+# Column 3: capability type (boolean, numeric, or string)
+# Column 4: termcap capability name
+# Column 5: KEY_xxx name, if any, `-' otherwise
+# Column 6: value for KEY_xxx name, if any, `-' otherwise
+# Column 7: Lead with `Y' if capability should be emitted in termcap
+# translations, `-' otherwise
+# Column 8: capability description
+#
+# The codes following [Y-] in column 7 describe the versions of termcap which
+# use the given capability. This information is not used by the curses library
+# proper; rather, it's there to help the terminfo maintainer avoid emitting
+# termcap entry translations that are more than 1023 bytes long (and tank a
+# lot of old termcap-using programs). The codes read as follows:
+# B = mentioned in the BSD man page for 4.4BSD curses
+# C = used by the 4.4BSD curses library
+# G = mentioned in the documentation for GNU termcap
+# E = used by GNU Emacs
+# K = remove this terminfo capability when translating to standard format
+# The important codes are C and E. A cap with C or E should be preserved in
+# translation if possible. The problem is that preserving all such caps may
+# lead to some termcap translations being too long. The termcap maintainer
+# has a bit of a juggling act to do...potential problem cases are marked with
+# an asterisk (*).
+#
+# The aliases section has the following format:
+#
+# Column 1: either `capalias' or `infoalias'
+# Column 2: name to be aliased
+# Column 3: what name it should translate to. The name IGNORE means it
+# should be discarded with a warning message.
+# Column 4: name of the extension set (used for compiler warning messages)
+# Column 5: capability description (usually an associated terminfo variable)
+#
+# HANDLING TERMCAP AND TERMINFO EXTENSIONS
+#
+# There are basically five different ways to handle termcap and terminfo
+# extensions:
+#
+# 1. Don't list the capname here, or list it but comment it out (the latter
+# is preferable; someone might want to handle it in the future). If you do
+# this, the capability will be treated as unknown and raise a warning from
+# the compiler.
+#
+# 2. Alias it. This is appropriate if the capability has the same meaning
+# as an already-supported one. The compiler will handle aliasing, emitting
+# an appropriate informational message whenever an alias fires.
+#
+# 3. List it in the standard table. You almost certainly do *not* want
+# to do this -- the capabilities in that one, and their order, have been
+# carefully chosen to be SVr4-binary-compatible when they're written out
+# as a terminfo object, and breaking this would be bad. It's up the ncurses
+# library what to do with the terminfo data after it's read in.
+#
+# 4. List it in the aliases table with an IGNORE target field. If you
+# do this, the capability will be ignored on input (though the user will
+# get a warning message about it).
+#
+# 5. List it in the extensions table. If you do this, the compiler will
+# silently accept the capability, but the curses library proper will never
+# see it (because it won't be written out as part of the terminfo object
+# format). It's up to you what you have the compiler do with it.
+#
+# There are two opposite reasons to choose option 5. One is when you want
+# to eat the capability silently and discard it when doing translations
+# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
+# in this class. Nothing will ever use them again.
+#
+# More usually, you want the compiler to try to deduce something from the
+# capability value that it can use to translate it into your output format.
+# You'll need to write custom code, probably in postprocess_termcap() or
+# postprocess_terminfo(), to handle the translation.
+#
+# CONTROLLING ENTRY LENGTH
+#
+# Notes on specific elisions made to fit translations within 1023 bytes:
+#
+# Machines with IBM PC-like keyboards want to be able to define the following
+# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
+# only environments for End or Home-Down), key_dc, and key_ic. This is also
+# the set of keys the `joe' editor will be upset if it can't see. So don't
+# trim those out of the set to be translated to termcap, or various users of
+# the termcap file will become irate.
+#
+# It might look tempting to leave those long init strings out of translations.
+# We can't do it (yet); 4.4BSD tput and tset use them.
+#
+# We retain the sgr capability in translation in spite of the fact that neither
+# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
+# hard to understand without it, and (b) the entries in which it is long tend
+# to be older types that don't use up a lot of string space on function keys.
+# The tic(1) translation code will complain and elide it if it makes a critical
+# difference (there is special code in tic to recognize this situation).
+#
+# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
+# optimizer in BSD curses didn't use them. This omission seems to be the
+# single most effective one, it shortened the resolved length of all thirteen
+# problem entries in the 9.9.0 version of the terminfo master below critical.
+#
+# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
+# translations go back over critical if we do this. As 4.4BSD curses fades
+# into history and GNU termcap's application base shrinks towards being GNU
+# Emacs only, we'll probably elide out some BSD-only capabilities in order
+# to buy space for non-essentials Emacs is still using. Capabilities high
+# on that hit list: rc, sc, uc.
+#
+#############################################################################
+#
+# STANDARD CAPABILITIES
+#
+#%The following is a complete table of the capabilities included in a
+#%terminfo description block and available to terminfo-using code. In each
+#%line of the table,
+#%
+#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
+#%accesses the capability.
+#%
+#%The \fBcapname\fR is the short name used in the text of the database,
+#%and is used by a person updating the database.
+#%Whenever possible, capnames are chosen to be the same as or similar to
+#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
+#%identical or very similar names). Semantics are also intended to match
+#%those of the specification.
+#%
+#%The termcap code is the old
+#%.B termcap
+#%capability name (some capabilities are new, and have names which termcap
+#%did not originate).
+#%.P
+#%Capability names have no hard length limit, but an informal limit of 5
+#%characters has been adopted to keep them short and to allow the tabs in
+#%the source file
+#%.B Caps
+#%to line up nicely.
+#%
+#%Finally, the description field attempts to convey the semantics of the
+#%capability. You may find some codes in the description field:
+#%.TP
+#%(P)
+#%indicates that padding may be specified
+#%.TP
+#%#[1-9]
+#%in the description field indicates that the string is passed through tparm with
+#%parms as given (#\fIi\fP).
+#%.TP
+#%(P*)
+#%indicates that padding may vary in proportion to the number of
+#%lines affected
+#%.TP
+#%(#\d\fIi\fP\u)
+#%indicates the \fIi\fP\uth\d parameter.
+#%
+#%.PP
+#% These are the boolean capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBBooleans name Code\fR
+auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
+auto_right_margin am bool am - - YBCGE terminal has automatic margins
+no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
+eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
+erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
+generic_type gn bool gn - - YB-G- generic line type
+hard_copy hc bool hc - - YBCG- hardcopy terminal
+has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
+has_status_line hs bool hs - - YB-G- has extra status line
+insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
+memory_above da bool da - - YBCG- display may be retained above the screen
+memory_below db bool db - - YB-GE display may be retained below the screen
+move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
+move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
+over_strike os bool os - - YBCG- terminal can overstrike
+status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
+dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
+tilde_glitch hz bool hz - - YB-GE can't print ~'s (hazeltine)
+transparent_underline ul bool ul - - YBCGE underline character overstrikes
+xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
+needs_xon_xoff nxon bool nx - - ----- padding won't work, xon/xoff required
+prtr_silent mc5i bool 5i - - ----- printer won't echo on screen
+hard_cursor chts bool HC - - ----- cursor is hard to see
+non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
+no_pad_char npc bool NP - - ----- pad character does not exist
+non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
+can_change ccc bool cc - - ----- terminal can re-define existing colors
+back_color_erase bce bool ut - - ----- screen erased with background color
+hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
+col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps
+cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode
+has_print_wheel daisy bool YC - - ----- printer needs operator to change character set
+row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
+semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
+cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
+lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBNumeric name Code\fR
+columns cols num co - - YBCGE number of columns in a line
+init_tabs it num it - - YB-G- tabs initially every # spaces
+lines lines num li - - YBCGE number of lines on screen or page
+lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
+magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
+padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
+virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
+width_status_line wsl num ws - - YB-G- number of columns in status line
+num_labels nlab num Nl - - ----- number of labels on screen
+label_height lh num lh - - ----- rows in each label
+label_width lw num lw - - ----- columns in each label
+max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
+maximum_windows wnum num MW - - ----- maximum number of defineable windows
+# These came in with SVr4's color support
+max_colors colors num Co - - ----- maximum number of colors on screen
+max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
+no_color_video ncv num NC - - ----- video attributes that can't be used with colors
+#%.TE
+#%.ad
+#%
+#%The following numeric capabilities are present in the SVr4.0 term structure,
+#%but are not yet documented in the man page. They came in with SVr4's
+#%printer support.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBNumeric name Code\fR
+buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
+dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
+dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
+max_micro_address maddr num Yd - - ----- maximum value in micro_..._address
+max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro
+micro_col_size mcs num Yf - - ----- character step size when in micro mode
+micro_line_size mls num Yg - - ----- line step size when in micro mode
+number_of_pins npins num Yh - - ----- numbers of pins in print-head
+output_res_char orc num Yi - - ----- horizontal resolution in units per line
+output_res_line orl num Yj - - ----- vertical resolution in units per line
+output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch
+output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch
+print_rate cps num Ym - - ----- print rate in characters per second
+wide_char_size widcs num Yn - - ----- character step size when in double wide mode
+buttons btns num BT - - ----- number of buttons on mouse
+bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
+bit_image_type bitype num Yp - - ----- type of bit-image device
+#%.TE
+#%.ad
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBString name Code\fR
+back_tab cbt str bt - - YBCGE back tab (P)
+bell bel str bl - - YB-GE audible signal (bell) (P)
+carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
+change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
+clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
+clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
+clr_eol el str ce - - YBCGE clear to end of line (P)
+clr_eos ed str cd - - YBCGE clear to end of screen (P*)
+column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
+command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
+cursor_address cup str cm - - YBCGE move to row #1 columns #2
+cursor_down cud1 str do - - YBCGE down one line
+cursor_home home str ho - - YBCGE home cursor (if no cup)
+cursor_invisible civis str vi - - YB-G- make cursor invisible
+cursor_left cub1 str le - - YBCGE move left one space
+cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
+cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
+cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
+cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
+cursor_up cuu1 str up - - YBCGE up one line
+cursor_visible cvvis str vs - - YBCGE make cursor very visible
+delete_character dch1 str dc - - YBCGE delete character (P*)
+delete_line dl1 str dl - - YBCGE delete line (P*)
+dis_status_line dsl str ds - - YB-G- disable status line
+down_half_line hd str hd - - YB-G- half a line down
+enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
+enter_blink_mode blink str mb - - YB-G- turn on blinking
+enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
+enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
+enter_delete_mode smdc str dm - - YBCGE enter delete mode
+enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
+enter_insert_mode smir str im - - YBCGE enter insert mode
+enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
+enter_protected_mode prot str mp - - -B-G-* turn on protected mode
+enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
+enter_standout_mode smso str so - - YBCGE begin standout mode
+enter_underline_mode smul str us - - YBCGE begin underline mode
+erase_chars ech str ec - - YB-G- erase #1 characters (P)
+exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
+exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
+exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
+exit_delete_mode rmdc str ed - - YBCGE end delete mode
+exit_insert_mode rmir str ei - - YBCGE exit insert mode
+exit_standout_mode rmso str se - - YBCGE exit standout mode
+exit_underline_mode rmul str ue - - YBCGE exit underline mode
+flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
+form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
+from_status_line fsl str fs - - YB-G- return from status line
+init_1string is1 str i1 - - YB-G- initialization string
+init_2string is2 str is - - YB-G- initialization string
+init_3string is3 str i3 - - YB-G- initialization string
+init_file if str if - - YB-G- name of initialization file
+insert_character ich1 str ic - - YBCGE insert character (P)
+insert_line il1 str al - - YBCGE insert line (P*)
+insert_padding ip str ip - - YBCGE insert padding after inserted character
+key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
+key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
+key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
+key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
+key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
+key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
+key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
+key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
+key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
+key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
+key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
+key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
+key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
+key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
+key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
+key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
+key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
+key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
+key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
+key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
+key_home khome str kh KEY_HOME 0406 YBCGE home key
+key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
+key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
+key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
+key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
+key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
+key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
+key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
+key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
+key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
+key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
+key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
+keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
+keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
+lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
+lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
+lab_f10 lf10 str la - - ----- label on function key f10 if not f10
+lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
+lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
+lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
+lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
+lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
+lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
+lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
+lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
+meta_off rmm str mo - - YB-G-* turn off meta mode
+meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
+newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
+pad_char pad str pc - - YBCGE padding char (instead of null)
+parm_dch dch str DC - - YB-GE delete #1 characters (P*)
+parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
+parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
+parm_ich ich str IC - - YB-GE insert #1 characters (P*)
+parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
+parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
+parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
+parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
+parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
+parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
+pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
+pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
+pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
+print_screen mc0 str ps - - -B-G-* print contents of screen
+prtr_off mc4 str pf - - -B-G-* turn off printer
+prtr_on mc5 str po - - -B-G-* turn on printer
+repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
+reset_1string rs1 str r1 - - -B--- reset string
+reset_2string rs2 str r2 - - -B--- reset string
+reset_3string rs3 str r3 - - -B--- reset string
+reset_file rf str rf - - -B--- name of reset file
+restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
+row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
+save_cursor sc str sc - - YBCG- save current cursor position (P)
+scroll_forward ind str sf - - YBCGE scroll text up (P)
+scroll_reverse ri str sr - - YBCGE scroll text down (P)
+set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
+set_tab hts str st - - YB-G- set a tab in every row, current columns
+set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
+tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
+to_status_line tsl str ts - - YB-G- move to status line, column #1
+underline_char uc str uc - - YBCG- underline char and move past it
+up_half_line hu str hu - - YB-G- half a line up
+init_prog iprog str iP - - -B--- path name of program for initialization
+key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
+key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
+key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
+key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
+key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
+prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
+#
+# SVr1 capabilities stop here. IBM's version of terminfo is the same as
+# SVr4 up to this point, but has a different set afterwards.
+#
+char_padding rmp str rP - - ----- like ip but when in insert mode
+acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
+plab_norm pln str pn - - ----- program label #1 to show string #2
+key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key
+enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
+exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
+enter_am_mode smam str SA - - ----- turn on automatic margins
+exit_am_mode rmam str RA - - ----- turn off automatic margins
+xon_character xonc str XN - - ----- XON character
+xoff_character xoffc str XF - - ----- XOFF character
+ena_acs enacs str eA - - ----- enable alternate char set
+label_on smln str LO - - ----- turn on soft labels
+label_off rmln str LF - - ----- turn off soft labels
+key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
+key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
+key_close kclo str @3 KEY_CLOSE 0544 ----- close key
+key_command kcmd str @4 KEY_COMMAND 0545 ----- command key
+key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
+key_create kcrt str @6 KEY_CREATE 0547 ----- create key
+key_end kend str @7 KEY_END 0550 ----- end key
+key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
+key_exit kext str @9 KEY_EXIT 0551 ----- exit key
+key_find kfnd str @0 KEY_FIND 0552 ----- find key
+key_help khlp str %1 KEY_HELP 0553 ----- help key
+key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
+key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
+key_move kmov str %4 KEY_MOVE 0556 ----- move key
+key_next knxt str %5 KEY_NEXT 0557 ----- next key
+key_open kopn str %6 KEY_OPEN 0560 ----- open key
+key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
+key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
+key_print kprt str %9 KEY_PRINT 0532 ----- print key
+key_redo krdo str %0 KEY_REDO 0563 ----- redo key
+key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
+key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
+key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
+key_restart krst str &4 KEY_RESTART 0567 ----- restart key
+key_resume kres str &5 KEY_RESUME 0570 ----- resume key
+key_save ksav str &6 KEY_SAVE 0571 ----- save key
+key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
+key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
+key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
+key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
+key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
+key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
+key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
+key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
+key_select kslt str *6 KEY_SELECT 0601 ----- select key
+key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
+key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
+key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
+key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
+key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
+key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
+key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
+key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
+key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
+key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
+key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
+key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
+key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
+key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
+key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
+key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
+key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
+key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
+key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
+key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
+key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
+req_for_input rfi str RF - - ----- send next input char (for ptys)
+key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
+key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
+key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
+key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
+key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
+key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
+key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
+key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
+key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
+key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
+key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
+key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
+key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
+key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
+key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
+key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
+key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
+key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
+key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
+key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
+key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
+key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
+key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
+key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
+key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
+key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
+key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
+key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
+key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
+key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
+key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
+key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
+key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
+key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
+key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
+key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
+key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
+key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
+key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
+key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
+key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
+key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
+key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
+key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
+key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
+key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
+key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
+key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
+key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
+key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
+key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
+key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
+clr_bol el1 str cb - - ----- Clear to beginning of line
+clear_margins mgc str MC - - ----- clear right and left soft margins
+set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_right_margin smgr str MR - - ----- set right soft margin at current column
+label_format fln str Lf - - ----- label format
+set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
+display_clock dclk str DK - - ----- display clock
+remove_clock rmclk str RC - - ----- remove clock
+create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5
+goto_window wingo str WG - - ----- go to window #1
+hangup hup str HU - - ----- hang-up phone
+dial_phone dial str DI - - ----- dial number #1
+quick_dial qdial str QD - - ----- dial number #1 without checking
+tone tone str TO - - ----- select touch tone dialing
+pulse pulse str PU - - ----- select pulse dialing
+flash_hook hook str fh - - ----- flash switch hook
+fixed_pause pause str PA - - ----- pause for 2-3 seconds
+wait_tone wait str WA - - ----- wait for dial-tone
+user0 u0 str u0 - - ----- User string #0
+user1 u1 str u1 - - ----- User string #1
+user2 u2 str u2 - - ----- User string #2
+user3 u3 str u3 - - ----- User string #3
+user4 u4 str u4 - - ----- User string #4
+user5 u5 str u5 - - ----- User string #5
+user6 u6 str u6 - - ----- User string #6
+user7 u7 str u7 - - ----- User string #7
+user8 u8 str u8 - - ----- User string #8
+user9 u9 str u9 - - ----- User string #9
+#
+# NCurses extensions for keys accessible on most PC consoles
+#
+key_sup kUP str !5 KEY_SUP + ----- shifted up-arrow key
+key_sdown kDOWN str !6 KEY_SDOWN + ----- shifted down-arrow key
+key_sbackspace kBS str !7 KEY_SBACKSPACE + ----- shifted backspace key
+key_c_delete kcdelete str !8 KEY_C_DELETE + ----- control- delete-character key
+key_c_end kcend str !9 KEY_C_END + ----- control- end key
+key_c_home kchom str !0 KEY_C_HOME + ----- control- home key
+key_c_insert kcinsert str !_ KEY_C_INSERT + ----- control- insert-character key
+key_c_left kclft str %k KEY_C_LEFT + ----- control- left-arrow key
+key_c_next kcnxt str %l KEY_C_NEXT + ----- control- next key
+key_c_previous kcprv str %m KEY_C_PREVIOUS + ----- control- previous key
+key_c_print kcprt str %n KEY_C_PRINT + ----- control- print key
+key_c_right kcrit str %o KEY_C_RIGHT + ----- control- right-arrow key
+key_c_backspace kcbs str %p KEY_C_BACKSPACE + ----- control- backspace key
+key_c_up kcup str %q KEY_C_UP + ----- control- up-arrow key
+key_c_down kcdown str %r KEY_C_DOWN + ----- control- down-arrow key
+key_a_delete kadelete str %s KEY_A_DELETE + ----- alt- delete-character key
+key_a_end kaend str %t KEY_A_END + ----- alt- end key
+key_a_home kahom str %u KEY_A_HOME + ----- alt- home key
+key_a_insert kainsert str %v KEY_A_INSERT + ----- alt- insert-character key
+key_a_left kalft str %w KEY_A_LEFT + ----- alt- left-arrow key
+key_a_next kanxt str %x KEY_A_NEXT + ----- alt- next key
+key_a_previous kaprv str %y KEY_A_PREVIOUS + ----- alt- previous key
+key_a_print kaprt str %z KEY_A_PRINT + ----- alt- print key
+key_a_right karit str %! KEY_A_RIGHT + ----- alt- right-arrow key
+key_a_backspace kabs str %@ KEY_A_BACKSPACE + ----- alt- backspace key
+key_a_up kaup str %# KEY_A_UP + ----- alt- up-arrow key
+key_a_down kadown str %$ KEY_A_DOWN + ----- alt- down-arrow key
+key_a_a kaa str $a KEY_A_A + ----- alt- a key
+key_a_b kab str $b KEY_A_B + ----- alt- b key
+key_a_c kac str $c KEY_A_C + ----- alt- c key
+key_a_d kad str $d KEY_A_D + ----- alt- d key
+key_a_e kae str $e KEY_A_E + ----- alt- e key
+key_a_f kaf str $f KEY_A_F + ----- alt- f key
+key_a_g kag str $g KEY_A_G + ----- alt- g key
+key_a_h kah str $h KEY_A_H + ----- alt- h key
+key_a_i kai str $i KEY_A_I + ----- alt- i key
+key_a_j kaj str $j KEY_A_J + ----- alt- j key
+key_a_k kak str $k KEY_A_K + ----- alt- k key
+key_a_l kal str $l KEY_A_L + ----- alt- l key
+key_a_m kam str $m KEY_A_M + ----- alt- m key
+key_a_n kan str $n KEY_A_N + ----- alt- n key
+key_a_o kao str $o KEY_A_O + ----- alt- o key
+key_a_p kap str $p KEY_A_P + ----- alt- p key
+key_a_q kaq str $q KEY_A_Q + ----- alt- q key
+key_a_r kar str $r KEY_A_R + ----- alt- r key
+key_a_s kas str $s KEY_A_S + ----- alt- s key
+key_a_t kat str $t KEY_A_T + ----- alt- t key
+key_a_u kau str $u KEY_A_U + ----- alt- u key
+key_a_v kav str $v KEY_A_V + ----- alt- v key
+key_a_w kaw str $w KEY_A_W + ----- alt- w key
+key_a_x kax str $x KEY_A_X + ----- alt- x key
+key_a_y kay str $y KEY_A_Y + ----- alt- y key
+key_a_z kaz str $z KEY_A_Z + ----- alt- z key
+key_a_0 ka_0 str $0 KEY_A_0 + ----- alt- 0 key
+key_a_1 ka_1 str $1 KEY_A_1 + ----- alt- 1 key
+key_a_2 ka_2 str $2 KEY_A_2 + ----- alt- 2 key
+key_a_3 ka_3 str $3 KEY_A_3 + ----- alt- 3 key
+key_a_4 ka_4 str $4 KEY_A_4 + ----- alt- 4 key
+key_a_5 ka_5 str $5 KEY_A_5 + ----- alt- 5 key
+key_a_6 ka_6 str $6 KEY_A_6 + ----- alt- 6 key
+key_a_7 ka_7 str $7 KEY_A_7 + ----- alt- 7 key
+key_a_8 ka_8 str $8 KEY_A_8 + ----- alt- 8 key
+key_a_9 ka_9 str $9 KEY_A_9 + ----- alt- 9 key
+key_a_backtick ka_bt str $` KEY_A_BACKTICK + ----- alt- ` key
+key_a_under ka_und str $_ KEY_A_UNDER + ----- alt- _ key
+key_a_equals ka_eq str $= KEY_A_EQUALS + ----- alt- = key
+key_a_bar ka_bsl str $| KEY_A_BAR + ----- alt- | key
+key_a_lbracker ka_lbr str $[ KEY_A_LBRACKER + ----- alt- [ key
+key_a_rbracker ka_rbr str $] KEY_A_RBRACKER + ----- alt- ] key
+key_a_semi ka_semi str $; KEY_A_SEMI + ----- alt- ; key
+key_a_tick ka_tick str $' KEY_A_TICK + ----- alt- ' key
+key_a_comma ka_com str $, KEY_A_COMMA + ----- alt- , key
+key_a_dot ka_dot str $. KEY_A_DOT + ----- alt- . key
+key_a_question ka_sla str $? KEY_A_QUESTION + ----- alt- ? key
+key_a_divide ka_div str $/ KEY_A_DIVIDE + ----- alt- keypad / key
+key_a_multiply ka_mul str $* KEY_A_MULTIPLY + ----- alt- keypad * key
+key_a_add ka_add str $+ KEY_A_ADD + ----- alt- keypad + key
+key_a_subtract ka_sub str $- KEY_A_SUBTRACT + ----- alt- keypad - key
+key_a_kenter ka_kent str $< KEY_A_KENTER + ----- alt- keypad enter key
+key_a_enter ka_ent str $> KEY_A_ENTER + ----- alt- enter key
+key_c_at kcat str %% KEY_C_AT + ----- control- @ key
+key_c_divide kcdiv str %/ KEY_C_DIVIDE + ----- control- keypad / key
+key_c_multiply kcmul str %* KEY_C_MULTIPLY + ----- control- keypad * key
+key_c_add kcadd str %+ KEY_C_ADD + ----- control- keypad + key
+key_c_subtract kcsub str %- KEY_C_SUBTRACT + ----- control- keypad - key
+#
+# SVr4 added these capabilities to support color
+#
+orig_pair op str op - - ----- Set default pair to its original value
+orig_colors oc str oc - - ----- Set all color pairs to the original ones
+initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
+initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+set_color_pair scp str sp - - ----- Set current color pair to #1
+set_foreground setf str Sf - - ----- Set foreground color #1
+set_background setb str Sb - - ----- Set background color #1
+#
+# SVr4 added these capabilities to support printers
+#
+change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1
+change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1
+change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
+change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
+define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
+enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
+enter_italics_mode sitm str ZH - - ----- Enter italic mode
+enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
+enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode
+enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode
+enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode
+enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode
+enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode
+enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode
+enter_upward_mode sum str ZP - - ----- Start upward carriage motion
+exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode
+exit_italics_mode ritm str ZR - - ----- End italic mode
+exit_leftward_mode rlm str ZS - - ----- End left-motion mode
+exit_micro_mode rmicm str ZT - - ----- End micro-motion mode
+exit_shadow_mode rshm str ZU - - ----- End shadow-print mode
+exit_subscript_mode rsubm str ZV - - ----- End subscript mode
+exit_superscript_mode rsupm str ZW - - ----- End superscript mode
+exit_upward_mode rum str ZX - - ----- End reverse character motion
+micro_column_address mhpa str ZY - - ----- Like column_address in micro mode
+micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode
+micro_left mcub1 str Za - - ----- Like cursor_left in micro mode
+micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode
+micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode
+micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode
+order_of_pins porder str Ze - - ----- Match software bits to print-head pins
+parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode
+parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode
+parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode
+parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode
+select_char_set scs str Zj - - ----- Select character set, #1
+set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line
+set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
+set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1
+set_top_margin smgt str Zo - - ----- Set top margin at current line
+set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1
+start_bit_image sbim str Zq - - ----- Start printing bit image graphics
+start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set
+stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics
+stop_char_set_def rcsd str Zt - - ----- End definition of character set #1
+subscript_characters subcs str Zu - - ----- List of subscriptable characters
+superscript_characters supcs str Zv - - ----- List of superscriptable characters
+these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
+zero_motion zerom str Zx - - ----- No motion for subsequent character
+#%.TE
+#%.ad
+#%
+#%The following string capabilities are present in the SVr4.0 term structure,
+#%but were originally not documented in the man page.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw18.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBString name Code\fR
+char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
+key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
+mouse_info minfo str Mi - - ----- Mouse status information
+req_mouse_pos reqmp str RQ - - ----- Request mouse position
+get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
+set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
+set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
+pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
+device_type devt str dv - - ----- Indicate language/codeset support
+code_set_init csin str ci - - ----- Init sequence for multiple codesets
+set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
+set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
+set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
+set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
+set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2
+bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times
+bit_image_newline binel str Zz - - ----- Move to next row of the bit image
+bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row
+color_names colornm str Yw - - ----- Give name for color #1
+define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region
+end_bit_image_region endbi str Yy - - ----- End a bit-image region
+set_color_band setcolor str Yz - - ----- Change to ribbon color #1
+set_page_length slines str YZ - - ----- Set page length to #1 lines
+#
+# SVr4 added these capabilities for direct PC-clone support
+#
+display_pc_char dispc str S1 - - ----- Display PC character #1
+enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode
+exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode
+enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode
+exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode
+pc_term_options pctrm str S6 - - ----- PC terminal options
+scancode_escape scesc str S7 - - ----- Escape for scancode emulation
+alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
+#%.TE
+#%.ad
+#%
+#%.in .8i
+#%The XSI Curses standard added these. They are some post-4.1
+#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+#%The \fBncurses\fR termcap names for them are invented; according to the
+#%XSI Curses standard, they have no termcap names. If your compiled terminfo
+#%entries use these, they may not be binary-compatible with System V terminfo
+#%entries after SVr4.1; beware!
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBString name Code\fR
+enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
+enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
+enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
+enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode
+enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
+enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
+set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
+set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
+#%.TE
+#%.ad
+#
+# The magic token below tells the tic compiler-generator code that all the caps
+# past it should be ignored (not written out) when dumping terminfo objects. It
+# also tells the man page table generator not to pass through following lines
+# This means we can have obsolete capabilities and pseudo-capabilities that are
+# recognized for termcap or terminfo compilation, but not output.
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually! In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents. The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2. Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
+termcap_reset OTrs str rs - - YB-G- terminal reset string
+magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
+#
+# Obsolete termcap capabilities. Some are used for termcap translation. The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
+crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
+no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
+carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
+new_line_delay OTdN num dN - - YB-G- pad needed for LF
+linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
+backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
+#
+# GNU termcap library extensions. The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file. The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key OTMT bool MT - - ----E has meta key
+# gnu_tab_width OTtw num tw - - ----E tab width in spaces
+#
+# GNU termcap *does* include the following extended capability, Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer. Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code. They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both. This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code. It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text. All lines above the cursor's current line become locked in place on
+# the screen. Then enter data normally. When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data. Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline OTNL bool NL - - YB--- move down with \n
+# even_parity OTEP bool EP - - -B--- terminal requires even parity
+# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
+# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
+# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
+# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
+backspace_delay OTdB num dB - - YB-G- padding required for ^H
+# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
+horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
+# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
+number_of_function_keys OTkn num kn - - -B-G- count of function keys
+other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
+arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
+# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
+# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
+has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
+return_does_clr_eol OTxr bool xr - - YB--- return clears the line
+# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check. The descriptions are guesses from what was
+# in the mytinfo tables.
+#
+# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
+# key_kill_char OTkk str kk - - ----- string set by kill key (?)
+# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
+# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
+# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
+# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
+# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap IBM ASCII description ACS ASCII
+# --- ----------- -------------------- ------------- ------
+# G1 191 \277 M-? single upper right ACS_URCORNER
+# G2 218 \332 M-Z single upper left ACS_ULCORNER
+# G3 192 \300 M-@ single lower left ACS_LLCORNER
+# G4 217 \331 M-Y single lower right ACS_LRCORNER
+# G5 187 \273 M-; double upper right
+# G6 201 \311 M-I double upper left
+# G7 200 \310 M-H double lower left
+# G8 188 \274 M-< double lower right
+# GC 197 \305 M-E single intersection ACS_PLUS _ _
+# GD 194 \302 M-B single down-tick ACS_TTEE |
+# GH 196 \304 M-D single horizontal line ACS_HLINE
+# GL 180 \264 M-4 single left tick ACS_RTEE -|
+# GR 195 \303 M-C single right tick ACS_LTEE |-
+# GU 193 \301 M-A single up tick ACS_BTEE _|_
+# GV 179 \263 M-3 single vertical line ACS_VLINE
+# Gc 206 \316 M-N double intersection
+# Gd 203 \313 M-K double down tick
+# Gh 205 \315 M-M double horizontal line
+# Gl 204 \204 M-L double left tick
+# Gr 185 \271 M-9 double right tick
+# Gu 202 \312 M-J double up tick
+# Gv 186 \272 M-: double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down). We don't want to do normal pad
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics. There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner OTG2 str G2 - - ----- single upper left
+acs_llcorner OTG3 str G3 - - ----- single lower left
+acs_urcorner OTG1 str G1 - - ----- single upper right
+acs_lrcorner OTG4 str G4 - - ----- single lower right
+acs_ltee OTGR str GR - - ----- tee pointing right
+acs_rtee OTGL str GL - - ----- tee pointing left
+acs_btee OTGU str GU - - ----- tee pointing up
+acs_ttee OTGD str GD - - ----- tee pointing down
+acs_hline OTGH str GH - - ----- single horizontal line
+acs_vline OTGV str GV - - ----- single vertical line
+acs_plus OTGC str GC - - ----- single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments. What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set. They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files. Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different. Grrr....
+#
+memory_lock meml str ml - - ----K memory lock above
+memory_unlock memu str mu - - ----K memory unlock
+#plab_norm pln str pn - - ----- program label #1 to show string #2
+#label_on smln str LO - - ----- turn on soft labels
+#label_off rmln str LF - - ----- turn off soft labels
+#key_f11 kf11 str F1 - - ----- F11 function key
+#key_f12 kf12 str F2 - - ----- F12 function key
+#key_f13 kf13 str F3 - - ----- F13 function key
+#key_f14 kf14 str F4 - - ----- F14 function key
+#key_f15 kf15 str F5 - - ----- F15 function key
+#key_f16 kf16 str F6 - - ----- F16 function key
+#key_f17 kf17 str F7 - - ----- F17 function key
+#key_f18 kf18 str F8 - - ----- F18 function key
+#key_f19 kf19 str F9 - - ----- F19 function key
+#key_f20 kf20 str FA - - ----- F20 function key
+#key_f21 kf21 str FB - - ----- F21 function key
+#key_f22 kf22 str FC - - ----- F22 function key
+#key_f23 kf23 str FD - - ----- F23 function key
+#key_f24 kf24 str FE - - ----- F24 function key
+#key_f25 kf25 str FF - - ----- F25 function key
+#key_f26 kf26 str FG - - ----- F26 function key
+#key_f27 kf27 str FH - - ----- F27 function key
+#key_f28 kf28 str FI - - ----- F28 function key
+#key_f29 kf29 str FJ - - ----- F29 function key
+#key_f30 kf30 str FK - - ----- F30 function key
+#key_f31 kf31 str FL - - ----- F31 function key
+#key_f32 kf32 str FM - - ----- F32 function key
+#key_f33 kf33 str FN - - ----- F33 function key
+#key_f34 kf34 str FO - - ----- F34 function key
+#key_f35 kf35 str FP - - ----- F35 function key
+#key_f36 kf36 str FQ - - ----- F36 function key
+#key_f37 kf37 str FR - - ----- F37 function key
+#key_f38 kf38 str FS - - ----- F38 function key
+#key_f39 kf39 str FT - - ----- F39 function key
+#key_f40 kf40 str FU - - ----- F40 function key
+#key_f41 kf41 str FV - - ----- F41 function key
+#key_f42 kf42 str FW - - ----- F42 function key
+#key_f43 kf43 str FX - - ----- F43 function key
+#key_f44 kf44 str FY - - ----- F44 function key
+#key_f45 kf45 str FZ - - ----- F45 function key
+#key_f46 kf46 str Fa - - ----- F46 function key
+#key_f47 kf47 str Fb - - ----- F47 function key
+#key_f48 kf48 str Fc - - ----- F48 function key
+#key_f49 kf49 str Fd - - ----- F49 function key
+#key_f50 kf50 str Fe - - ----- F50 function key
+#key_f51 kf51 str Ff - - ----- F51 function key
+#key_f52 kf52 str Fg - - ----- F52 function key
+#key_f53 kf53 str Fh - - ----- F53 function key
+#key_f54 kf54 str Fi - - ----- F54 function key
+#key_f55 kf55 str Fj - - ----- F55 function key
+#key_f56 kf56 str Fk - - ----- F56 function key
+#key_f57 kf57 str Fl - - ----- F57 function key
+#key_f58 kf58 str Fm - - ----- F58 function key
+#key_f59 kf59 str Fn - - ----- F59 function key
+#key_f60 kf60 str Fo - - ----- F60 function key
+#key_f61 kf61 str Fp - - ----- F61 function key
+#key_f62 kf62 str Fq - - ----- F62 function key
+#key_f63 kf63 str Fr - - ----- F63 function key
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+# box1[0] = ACS_ULCORNER
+# box1[1] = ACS_HLINE
+# box1[2] = ACS_URCORNER
+# box1[3] = ACS_VLINE
+# box1[4] = ACS_LRCORNER
+# box1[5] = ACS_LLCORNER
+# box1[6] = ACS_TTEE
+# box1[7] = ACS_RTEE
+# box1[8] = ACS_BTEE
+# box1[9] = ACS_LTEE
+# box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+box_chars_1 box1 str bx - - ----K box characters primary set
+#box_chars_2 box2 str by - - ----K box characters secondary set
+#box_attr_1 batt1 str Bx - - ----K attributes for box1
+#box_attr_2 batt2 str By - - ----K attributes for box2
+#color_bg_0 colb0 str d0 - - ----K background color 0
+#color_bg_1 colb1 str d1 - - ----K background color 1
+#color_bg_2 colb2 str d2 - - ----K background color 2
+#color_bg_3 colb3 str d3 - - ----K background color 3
+#color_bg_4 colb4 str d4 - - ----K background color 4
+#color_bg_5 colb5 str d5 - - ----K background color 5
+#color_bg_6 colb6 str d6 - - ----K background color 6
+#color_bg_7 colb7 str d7 - - ----K background color 7
+#color_fg_0 colf0 str c0 - - ----K foreground color 0
+#color_fg_1 colf1 str c1 - - ----K foreground color 1
+#color_fg_2 colf2 str c2 - - ----K foreground color 2
+#color_fg_3 colf3 str c3 - - ----K foreground color 3
+#color_fg_4 colf4 str c4 - - ----K foreground color 4
+#color_fg_5 colf5 str c5 - - ----K foreground color 5
+#color_fg_6 colf6 str c6 - - ----K foreground color 6
+#color_fg_7 colf7 str c7 - - ----K foreground color 7
+#font_0 font0 str f0 - - ----- select font 0
+#font_1 font1 str f1 - - ----- select font 1
+#font_2 font2 str f2 - - ----- select font 2
+#font_3 font3 str f3 - - ----- select font 3
+#font_4 font4 str f4 - - ----K select font 4
+#font_5 font5 str f5 - - ----K select font 5
+#font_6 font6 str f6 - - ----K select font 6
+#font_7 font7 str f7 - - ----K select font 7
+#key_back_tab kbtab str k0 - - ----- backtab key
+#key_do kdo str ki - - ----K do request key
+#key_command kcmd str kd - - ----K command-request key
+#key_command_pane kcpn str kW - - ----K command-pane key
+#key_end kend str kw - - ----- end key
+#key_help khlp str kq - - ----- help key
+#key_newline knl str nl - - ----K newline key
+#key_next_pane knpn str kv - - ----K next-pane key
+#key_prev_cmd kppn str kp - - ----K previous-command key
+#key_prev_pane kppn str kV - - ----K previous-pane key
+#key_quit kquit str kQ - - ----K quit key
+#key_select ksel str kU - - ----- select key
+#key_scroll_left kscl str kz - - ----K scroll left
+#key_scroll_right kscr str kZ - - ----K scroll right
+#key_tab ktab str ko - - ----K tab key
+#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
+#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
+#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
+#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
+#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
+#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
+#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
+#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
+#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
+#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
+#appl_defined_str apstr str za - - ----K application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
+# the IBM manual pages, so the cap name strings are guesses. The terminfo
+# names are almost certainly right, the termcap ones almost certainly wrong.
+#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input
+#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output
+#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input
+#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output
+#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input
+#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output
+#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input
+#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output
+# Undocumented capabilities end here
+#key_sf1 ksf1 str S1 - - ----K special function key 1
+#key_sf2 ksf2 str S2 - - ----K special function key 2
+#key_sf3 ksf3 str S3 - - ----K special function key 3
+#key_sf4 ksf4 str S4 - - ----K special function key 4
+#key_sf5 ksf5 str S5 - - ----K special function key 5
+#key_sf6 ksf6 str S6 - - ----K special function key 6
+#key_sf7 ksf7 str S7 - - ----K special function key 7
+#key_sf8 ksf8 str S8 - - ----K special function key 8
+#key_sf9 ksf9 str S9 - - ----K special function key 9
+#key_sf10 ksf10 str SA - - ----K special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64. AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11 kf11 str k< - - ----- function key 11
+#key_f12 kf12 str k> - - ----- function key 12
+# Undocumented capabilities end here.
+#key_action kact str kJ - - ----K sent by action key
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+#enter_topline_mode topl str tp - - ----K start top-line mode
+#enter_bottom_mode btml str bm - - ----K start bottom-line mode
+#enter_rvert_mode rvert str rv - - ----K start right-vertical mode
+#enter_lvert_mode lvert str lv - - ----K start left-vertical mode
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files. We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias sb sr BSD scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities. Its signature is the KM capability, used to name
+# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set. Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias BO mr AT&T enter_reverse_mode
+capalias CI vi AT&T cursor_invisible
+capalias CV ve AT&T cursor_normal
+capalias DS mh AT&T enter_dim_mode
+#capalias EE me AT&T exit_attribute_mode
+capalias FE LF AT&T label_on
+capalias FL LO AT&T label_off
+capalias XS mk AT&T enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias EE mh XENIX exit_attribute_mode
+capalias GE ae XENIX exit_alt_charset_mode
+capalias GS as XENIX enter_alt_charset_mode
+capalias CF vi XENIX cursor_invis
+capalias CO ve XENIX cursor_normal
+capalias EN @7 XENIX key_end
+capalias HM kh XENIX key_home
+capalias LD kL XENIX key_dl
+capalias PD kN XENIX key_npage
+capalias PN po XENIX prtr_off
+capalias PS pf XENIX prtr_on
+capalias PU kP XENIX key_ppage
+capalias RT @8 XENIX kent
+capalias UP ku XENIX kcuu1
+capalias G6 IGNORE XENIX double-ACS_ULCORNER
+capalias G7 IGNORE XENIX double-ACS_LLCORNER
+capalias G5 IGNORE XENIX double-ACS_URCORNER
+capalias G8 IGNORE XENIX double-ACS_LRCORNER
+capalias Gr IGNORE XENIX double-ACS_LTEE
+capalias Gr IGNORE XENIX double-ACS_RTEE
+capalias Gu IGNORE XENIX double-ACS_BTEE
+capalias Gd IGNORE XENIX double ACS_TTEE
+capalias Gh IGNORE XENIX double-ACS_HLINE
+capalias Gv IGNORE XENIX double-ACS_VLINE
+capalias Gc IGNORE XENIX double-ACS_PLUS
+capalias GG IGNORE XENIX acs-glitch
+#
+# IBM extensions:
+#
+capalias kq %1 IBM key_help
+#
+# Iris extensions:
+#
+capalias HS mh IRIS enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias KA k; Tek key_f10
+capalias KB F1 Tek key_f11
+capalias KC F2 Tek key_f12
+capalias KD F3 Tek key_f13
+capalias KE F4 Tek key_f14
+capalias KF F5 Tek key_f15
+capalias BC Sb Tek set_background
+capalias FC Sf Tek set_foreground
+#
+# There are also the following:
+#
+# XENIX XENIX variable name name clash with terminfo?
+# ----- ------------------- -------------------------
+# CL key_char_left
+# CR key_char_right
+# CW key_change_window
+# HP ??
+# LF key_linefeed label_off
+# NU key_next_unlocked_cell
+# PL ??
+# PR ??
+# RC key_recalc remove_clock
+# RF key_toggle_ref req_for_input
+# WL key_word_left
+# WR key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias font0 s0ds IBM set0_des_seq
+infoalias font1 s1ds IBM set1_des_seq
+infoalias font2 s2ds IBM set2_des_seq
+infoalias font3 s3ds IBM set3_des_seq
+infoalias kbtab kcbt IBM key_backtab
+infoalias ksel kslt IBM key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/contrib/ncurses/include/Caps.osf1r5 b/contrib/ncurses/include/Caps.osf1r5
new file mode 100644
index 000000000000..28f4681e9e4d
--- /dev/null
+++ b/contrib/ncurses/include/Caps.osf1r5
@@ -0,0 +1,1274 @@
+##############################################################################
+# Copyright (c) 2002 Free Software Foundation, Inc. #
+# #
+# Permission is hereby granted, free of charge, to any person obtaining a #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation #
+# the rights to use, copy, modify, merge, publish, distribute, distribute #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the #
+# following conditions: #
+# #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software. #
+# #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
+# DEALINGS IN THE SOFTWARE. #
+# #
+# Except as contained in this notice, the name(s) of the above copyright #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written #
+# authorization. #
+##############################################################################
+#
+# Author: Thomas Dickey
+#
+# $Id: Caps.osf1r5,v 1.2 2002/04/20 15:43:58 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 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
+back_color_erase bce bool ut - - ----- screen erased with background color
+can_change ccc bool cc - - ----- terminal can re-define existing colors
+col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps
+cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
+cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode
+hard_cursor chts bool HC - - ----- cursor is hard to see
+has_print_wheel daisy bool YC - - ----- printer needs operator to change character set
+hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
+lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
+needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
+non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
+non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
+no_pad_char npc bool NP - - ----- pad character does not exist
+prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
+row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
+semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBNumeric name Code\fR
+columns cols num co - - YBCGE number of columns in a line
+init_tabs it num it - - YB-G- tabs initially every # spaces
+lines lines num li - - YBCGE number of lines on screen or page
+lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
+magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
+padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
+virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
+width_status_line wsl num ws - - YB-G- number of columns in status line
+bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row
+bit_image_type bitype num Yp - - ----- type of bit-image device
+buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing
+buttons btns num BT - - ----- number of buttons on mouse
+dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch
+dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch
+label_height lh num lh - - ----- rows in each label
+label_width lw num lw - - ----- columns in each label
+max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
+max_colors colors num Co - - ----- maximum number of colors on screen
+max_micro_address maddr num Yd - - ----- maximum value in micro_..._address
+max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro
+max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
+maximum_windows wnum num MW - - ----- maximum number of defineable windows
+micro_col_size mcs num Yf - - ----- character step size when in micro mode
+micro_line_size mls num Yg - - ----- line step size when in micro mode
+no_color_video ncv num NC - - ----- video attributes that can not be used with colors
+number_of_pins npins num Yh - - ----- numbers of pins in print-head
+num_labels nlab num Nl - - ----- number of labels on screen
+output_res_char orc num Yi - - ----- horizontal resolution in units per line
+output_res_line orl num Yj - - ----- vertical resolution in units per line
+output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch
+output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch
+print_rate cps num Ym - - ----- print rate in characters per second
+wide_char_size widcs num Yn - - ----- character step size when in double wide mode
+#%.TE
+#%.ad
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBString name Code\fR
+back_tab cbt str bt - - YBCGE back tab (P)
+bell bel str bl - - YB-GE audible signal (bell) (P)
+carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
+change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
+clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
+clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
+clr_eol el str ce - - YBCGE clear to end of line (P)
+clr_eos ed str cd - - YBCGE clear to end of screen (P*)
+column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
+command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
+cursor_address cup str cm - - YBCGE move to row #1 columns #2
+cursor_down cud1 str do - - YBCGE down one line
+cursor_home home str ho - - YBCGE home cursor (if no cup)
+cursor_invisible civis str vi - - YB-G- make cursor invisible
+cursor_left cub1 str le - - YBCGE move left one space
+cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
+cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
+cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
+cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
+cursor_up cuu1 str up - - YBCGE up one line
+cursor_visible cvvis str vs - - YBCGE make cursor very visible
+delete_character dch1 str dc - - YBCGE delete character (P*)
+delete_line dl1 str dl - - YBCGE delete line (P*)
+dis_status_line dsl str ds - - YB-G- disable status line
+down_half_line hd str hd - - YB-G- half a line down
+enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
+enter_blink_mode blink str mb - - YB-G- turn on blinking
+enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
+enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
+enter_delete_mode smdc str dm - - YBCGE enter delete mode
+enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
+enter_insert_mode smir str im - - YBCGE enter insert mode
+enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
+enter_protected_mode prot str mp - - -B-G-* turn on protected mode
+enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
+enter_standout_mode smso str so - - YBCGE begin standout mode
+enter_underline_mode smul str us - - YBCGE begin underline mode
+erase_chars ech str ec - - YB-G- erase #1 characters (P)
+exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
+exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
+exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
+exit_delete_mode rmdc str ed - - YBCGE end delete mode
+exit_insert_mode rmir str ei - - YBCGE exit insert mode
+exit_standout_mode rmso str se - - YBCGE exit standout mode
+exit_underline_mode rmul str ue - - YBCGE exit underline mode
+flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
+form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
+from_status_line fsl str fs - - YB-G- return from status line
+init_1string is1 str i1 - - YB-G- initialization string
+init_2string is2 str is - - YB-G- initialization string
+init_3string is3 str i3 - - YB-G- initialization string
+init_file if str if - - YB-G- name of initialization file
+insert_character ich1 str ic - - YBCGE insert character (P)
+insert_line il1 str al - - YBCGE insert line (P*)
+insert_padding ip str ip - - YBCGE insert padding after inserted character
+key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
+key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
+key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
+key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
+key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
+key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
+key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
+key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
+key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
+key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
+key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
+key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
+key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
+key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
+key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
+key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
+key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
+key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
+key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
+key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
+key_home khome str kh KEY_HOME 0406 YBCGE home key
+key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
+key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
+key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
+key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
+key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
+key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
+key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
+key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
+key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
+key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
+key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
+keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
+keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
+lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
+lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
+lab_f10 lf10 str la - - ----- label on function key f10 if not f10
+lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
+lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
+lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
+lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
+lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
+lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
+lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
+lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
+meta_off rmm str mo - - YB-G-* turn off meta mode
+meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
+newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
+pad_char pad str pc - - YBCGE padding char (instead of null)
+parm_dch dch str DC - - YB-GE delete #1 characters (P*)
+parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
+parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
+parm_ich ich str IC - - YB-GE insert #1 characters (P*)
+parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
+parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
+parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
+parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
+parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
+parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
+pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
+pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
+pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
+print_screen mc0 str ps - - -B-G-* print contents of screen
+prtr_off mc4 str pf - - -B-G-* turn off printer
+prtr_on mc5 str po - - -B-G-* turn on printer
+repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
+reset_1string rs1 str r1 - - -B--- reset string
+reset_2string rs2 str r2 - - -B--- reset string
+reset_3string rs3 str r3 - - -B--- reset string
+reset_file rf str rf - - -B--- name of reset file
+restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
+row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
+save_cursor sc str sc - - YBCG- save current cursor position (P)
+scroll_forward ind str sf - - YBCGE scroll text up (P)
+scroll_reverse ri str sr - - YBCGE scroll text down (P)
+set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
+set_tab hts str st - - YB-G- set a tab in every row, current columns
+set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
+tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
+to_status_line tsl str ts - - YB-G- move to status line, column #1
+underline_char uc str uc - - YBCG- underline char and move past it
+up_half_line hu str hu - - YB-G- half a line up
+init_prog iprog str iP - - -B--- path name of program for initialization
+key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
+key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
+key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
+key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
+key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
+prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
+#
+# SVr1 capabilities stop here. IBM's version of terminfo is the same as
+# SVr4 up to this point, but has a different set afterwards.
+#
+# OSF1 differences start here, based on IBM version:
+#
+box_chars_1 box1 str bx - - ----K box characters primary set
+box_chars_2 box2 str by - - ----K box characters secondary set
+box_attr_1 batt1 str Bx - - ----K attributes for box1
+box_attr_2 batt2 str By - - ----K attributes for box2
+color_bg_0 colb0 str d0 - - ----K background color 0
+color_bg_1 colb1 str d1 - - ----K background color 1
+color_bg_2 colb2 str d2 - - ----K background color 2
+color_bg_3 colb3 str d3 - - ----K background color 3
+color_bg_4 colb4 str d4 - - ----K background color 4
+color_bg_5 colb5 str d5 - - ----K background color 5
+color_bg_6 colb6 str d6 - - ----K background color 6
+color_bg_7 colb7 str d7 - - ----K background color 7
+color_fg_0 colf0 str c0 - - ----K foreground color 0
+color_fg_1 colf1 str c1 - - ----K foreground color 1
+color_fg_2 colf2 str c2 - - ----K foreground color 2
+color_fg_3 colf3 str c3 - - ----K foreground color 3
+color_fg_4 colf4 str c4 - - ----K foreground color 4
+color_fg_5 colf5 str c5 - - ----K foreground color 5
+color_fg_6 colf6 str c6 - - ----K foreground color 6
+color_fg_7 colf7 str c7 - - ----K foreground color 7
+font_0 font0 str f0 - - ----- select font 0
+font_1 font1 str f1 - - ----- select font 1
+font_2 font2 str f2 - - ----- select font 2
+font_3 font3 str f3 - - ----- select font 3
+font_4 font4 str f4 - - ----K select font 4
+font_5 font5 str f5 - - ----K select font 5
+font_6 font6 str f6 - - ----K select font 6
+font_7 font7 str f7 - - ----K select font 7
+key_back_tab kbtab str k0 - - ----- backtab key
+key_do kdo str ki - - ----K do request key
+key_command kcmd str kc KEY_COMMAND 0545 ----- command key
+key_command_pane kcpn str kW - - ----K command-pane key
+key_end kend str @7 KEY_END 0550 ----- end key
+key_help khlp str %1 KEY_HELP 0553 ----- help key
+key_newline knl str nl - - ----K newline key
+key_next_pane knpn str kv - - ----K next-pane key
+key_prev_cmd kppn str kp - - ----K previous-command key
+key_prev_pane kppn str kV - - ----K previous-pane key
+key_quit kquit str kQ - - ----K quit key
+key_select kslt str *6 KEY_SELECT 0601 ----- select key
+key_scroll_left kscl str kz - - ----K scroll left
+key_scroll_right kscr str kZ - - ----K scroll right
+key_tab ktab str ko - - ----K tab key
+key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
+key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
+key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
+key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
+key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
+key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
+key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
+key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
+key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
+key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
+appl_defined_str apstr str za - - ----K application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities are described in
+# the Tru64 manual pages.
+key_smap_in6 kmpf6 str Kr - - ----K special mapped key 6 input
+key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output
+key_smap_in7 kmpf7 str Ks - - ----K special mapped key 7 input
+key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output
+key_smap_in8 kmpf8 str Kt - - ----K special mapped key 8 input
+key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output
+key_smap_in9 kmpf9 str Ku - - ----K special mapped key 9 input
+key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output
+key_sf1 ksf1 str S1 - - ----K special function key 1
+key_sf2 ksf2 str S2 - - ----K special function key 2
+key_sf3 ksf3 str S3 - - ----K special function key 3
+key_sf4 ksf4 str S4 - - ----K special function key 4
+key_sf5 ksf5 str S5 - - ----K special function key 5
+key_sf6 ksf6 str S6 - - ----K special function key 6
+key_sf7 ksf7 str S7 - - ----K special function key 7
+key_sf8 ksf8 str S8 - - ----K special function key 8
+key_sf9 ksf9 str S9 - - ----K special function key 9
+key_sf10 ksf10 str SA - - ----K special function key 10
+#
+key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
+key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
+key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
+key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
+key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
+key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
+key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
+key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
+key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
+key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
+key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
+key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
+key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
+key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
+key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
+key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
+key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
+key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
+key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
+key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
+key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
+key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
+key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
+key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
+key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
+key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
+key_action kact str kJ KEY_ACTION 0541 ----K sent by action key
+acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
+alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation
+bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times
+bit_image_newline binel str Zz - - ----- Move to next row of the bit image
+bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row
+change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1
+change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1
+change_res_horz chr str ZC - - ----- Change horizontal resolution to #1
+change_res_vert cvr str ZD - - ----- Change vertical resolution to #1
+char_padding rmp str rP - - ----- like ip but when in insert mode
+char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names
+clear_margins mgc str MC - - ----- clear right and left soft margins
+clr_bol el1 str cb - - ----- Clear to beginning of line
+code_set_init csin str ci - - ----- Init sequence for multiple codesets
+color_names colornm str Yw - - ----- Give name for color #1
+create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5
+define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region
+define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3
+device_type devt str dv - - ----- Indicate language/codeset support
+dial_phone dial str DI - - ----- dial number #1
+display_clock dclk str DK - - ----- display clock
+display_pc_char dispc str S1 - - ----- Display PC character #1
+ena_acs enacs str eA - - ----- enable alternate char set
+end_bit_image_region endbi str Yy - - ----- End a bit-image region
+enter_am_mode smam str SA - - ----- turn on automatic margins
+enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode
+enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode
+enter_italics_mode sitm str ZH - - ----- Enter italic mode
+enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion
+enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode
+enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode
+enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode
+enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode
+enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode
+enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode
+enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode
+enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode
+enter_upward_mode sum str ZP - - ----- Start upward carriage motion
+enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
+exit_am_mode rmam str RA - - ----- turn off automatic margins
+exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode
+exit_italics_mode ritm str ZR - - ----- End italic mode
+exit_leftward_mode rlm str ZS - - ----- End left-motion mode
+exit_micro_mode rmicm str ZT - - ----- End micro-motion mode
+exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode
+exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode
+exit_shadow_mode rshm str ZU - - ----- End shadow-print mode
+exit_subscript_mode rsubm str ZV - - ----- End subscript mode
+exit_superscript_mode rsupm str ZW - - ----- End superscript mode
+exit_upward_mode rum str ZX - - ----- End reverse character motion
+exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
+fixed_pause pause str PA - - ----- pause for 2-3 seconds
+flash_hook hook str fh - - ----- flash switch hook
+get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
+goto_window wingo str WG - - ----- go to window #1
+hangup hup str HU - - ----- hang-up phone
+initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
+initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
+key_btab kcbt str kB KEY_BTAB 0632 ----- back-tab key
+key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
+key_close kclo str @3 KEY_CLOSE 0544 ----- close key
+key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
+key_create kcrt str @6 KEY_CREATE 0547 ----- create key
+key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
+key_exit kext str @9 KEY_EXIT 0551 ----- exit key
+key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
+key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
+key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
+key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
+key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
+key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
+key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
+key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
+key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
+key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
+key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
+key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
+key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
+key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
+key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
+key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
+key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
+key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
+key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
+key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
+key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
+key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
+key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
+key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
+key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
+key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
+key_find kfnd str @0 KEY_FIND 0552 ----- find key
+key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
+key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
+key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
+key_move kmov str %4 KEY_MOVE 0556 ----- move key
+key_next knxt str %5 KEY_NEXT 0557 ----- next key
+key_open kopn str %6 KEY_OPEN 0560 ----- open key
+key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
+key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
+key_print kprt str %9 KEY_PRINT 0532 ----- print key
+key_redo krdo str %0 KEY_REDO 0563 ----- redo key
+key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
+key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
+key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
+key_restart krst str &4 KEY_RESTART 0567 ----- restart key
+key_resume kres str &5 KEY_RESUME 0570 ----- resume key
+key_save ksav str &6 KEY_SAVE 0571 ----- save key
+key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
+key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
+key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
+key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
+key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
+key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
+key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
+key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
+key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
+key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
+key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
+key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
+key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
+key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
+key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
+key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
+key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
+key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
+key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
+key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
+key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
+key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
+key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
+key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
+key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
+key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
+key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
+key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
+key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
+key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+label_format fln str Lf - - ----- label format
+label_off rmln str LF - - ----- turn off soft labels
+label_on smln str LO - - ----- turn on soft labels
+micro_column_address mhpa str ZY - - ----- Like column_address in micro mode
+micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode
+micro_left mcub1 str Za - - ----- Like cursor_left in micro mode
+micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode
+micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode
+micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode
+mouse_info minfo str Mi - - ----- Mouse status information
+order_of_pins porder str Ze - - ----- Match software bits to print-head pins
+orig_colors oc str oc - - ----- Set all color pairs to the original ones
+orig_pair op str op - - ----- Set default pair to its original value
+parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode
+parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode
+parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode
+parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode
+pc_term_options pctrm str S6 - - ----- PC terminal options
+pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3
+plab_norm pln str pn - - ----- program label #1 to show string #2
+pulse pulse str PU - - ----- select pulse dialing
+quick_dial qdial str QD - - ----- dial number #1 without checking
+req_for_input rfi str RF - - ----- send next input char (for ptys)
+req_mouse_pos reqmp str RQ - - ----- Request mouse position
+remove_clock rmclk str RC - - ----- remove clock
+scancode_escape scesc str S7 - - ----- Escape for scancode emulation
+select_char_set scs str Zj - - ----- Select character set, #1
+set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
+set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
+set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
+set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
+set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
+set_background setb str Sb - - ----- Set background color #1
+set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line
+set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
+set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs
+set_color_band setcolor str Yz - - ----- Change to ribbon color #1
+set_color_pair scp str sp - - ----- Set current color pair to #1
+set_foreground setf str Sf - - ----- Set foreground color #1
+set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1
+set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap).
+set_page_length slines str YZ - - ----- Set page length to #1 lines
+set_right_margin smgr str MR - - ----- set right soft margin at current column
+set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1
+set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2
+set_top_margin smgt str Zo - - ----- Set top margin at current line
+set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1
+start_bit_image sbim str Zq - - ----- Start printing bit image graphics
+start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set
+stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics
+stop_char_set_def rcsd str Zt - - ----- End definition of character set #1
+subscript_characters subcs str Zu - - ----- List of subscriptable characters
+superscript_characters supcs str Zv - - ----- List of superscriptable characters
+these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR
+tone tone str TO - - ----- select touch tone dialing
+user0 u0 str u0 - - ----- User string #0
+user1 u1 str u1 - - ----- User string #1
+user2 u2 str u2 - - ----- User string #2
+user3 u3 str u3 - - ----- User string #3
+user4 u4 str u4 - - ----- User string #4
+user5 u5 str u5 - - ----- User string #5
+user6 u6 str u6 - - ----- User string #6
+user7 u7 str u7 - - ----- User string #7
+user8 u8 str u8 - - ----- User string #8
+user9 u9 str u9 - - ----- User string #9
+wait_tone wait str WA - - ----- wait for dial-tone
+xoff_character xoffc str XF - - ----- XOFF character
+xon_character xonc str XN - - ----- XON character
+zero_motion zerom str Zx - - ----- No motion for subsequent character
+set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
+enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
+enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
+enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
+enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode
+enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
+enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
+set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
+#
+#
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually! In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents. The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2. Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
+termcap_reset OTrs str rs - - YB-G- terminal reset string
+magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
+#
+# Obsolete termcap capabilities. Some are used for termcap translation. The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
+crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
+no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
+carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
+new_line_delay OTdN num dN - - YB-G- pad needed for LF
+linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
+backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
+#
+# GNU termcap library extensions. The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file. The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key OTMT bool MT - - ----E has meta key
+# gnu_tab_width OTtw num tw - - ----E tab width in spaces
+#
+# GNU termcap *does* include the following extended capability, Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer. Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code. They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both. This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code. It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text. All lines above the cursor's current line become locked in place on
+# the screen. Then enter data normally. When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data. Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline OTNL bool NL - - YB--- move down with \n
+# even_parity OTEP bool EP - - -B--- terminal requires even parity
+# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
+# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
+# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
+# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
+backspace_delay OTdB num dB - - YB-G- padding required for ^H
+# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
+horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
+# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
+number_of_function_keys OTkn num kn - - -B-G- count of function keys
+other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
+arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
+# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
+# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
+has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
+return_does_clr_eol OTxr bool xr - - YB--- return clears the line
+# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check. The descriptions are guesses from what was
+# in the mytinfo tables.
+#
+# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
+# key_kill_char OTkk str kk - - ----- string set by kill key (?)
+# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
+# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
+# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
+# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
+# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap IBM ASCII description ACS ASCII
+# --- ----------- -------------------- ------------- ------
+# G1 191 \277 M-? single upper right ACS_URCORNER
+# G2 218 \332 M-Z single upper left ACS_ULCORNER
+# G3 192 \300 M-@ single lower left ACS_LLCORNER
+# G4 217 \331 M-Y single lower right ACS_LRCORNER
+# G5 187 \273 M-; double upper right
+# G6 201 \311 M-I double upper left
+# G7 200 \310 M-H double lower left
+# G8 188 \274 M-< double lower right
+# GC 197 \305 M-E single intersection ACS_PLUS _ _
+# GD 194 \302 M-B single down-tick ACS_TTEE |
+# GH 196 \304 M-D single horizontal line ACS_HLINE
+# GL 180 \264 M-4 single left tick ACS_RTEE -|
+# GR 195 \303 M-C single right tick ACS_LTEE |-
+# GU 193 \301 M-A single up tick ACS_BTEE _|_
+# GV 179 \263 M-3 single vertical line ACS_VLINE
+# Gc 206 \316 M-N double intersection
+# Gd 203 \313 M-K double down tick
+# Gh 205 \315 M-M double horizontal line
+# Gl 204 \204 M-L double left tick
+# Gr 185 \271 M-9 double right tick
+# Gu 202 \312 M-J double up tick
+# Gv 186 \272 M-: double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down). We don't want to do normal pad
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics. There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner OTG2 str G2 - - ----- single upper left
+acs_llcorner OTG3 str G3 - - ----- single lower left
+acs_urcorner OTG1 str G1 - - ----- single upper right
+acs_lrcorner OTG4 str G4 - - ----- single lower right
+acs_ltee OTGR str GR - - ----- tee pointing right
+acs_rtee OTGL str GL - - ----- tee pointing left
+acs_btee OTGU str GU - - ----- tee pointing up
+acs_ttee OTGD str GD - - ----- tee pointing down
+acs_hline OTGH str GH - - ----- single horizontal line
+acs_vline OTGV str GV - - ----- single vertical line
+acs_plus OTGC str GC - - ----- single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments. What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set. They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files. Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different. Grrr....
+#
+memory_lock meml str ml - - ----K memory lock above
+memory_unlock memu str mu - - ----K memory unlock
+#plab_norm pln str pn - - ----- program label #1 to show string #2
+#label_on smln str LO - - ----- turn on soft labels
+#label_off rmln str LF - - ----- turn off soft labels
+#key_f11 kf11 str F1 - - ----- F11 function key
+#key_f12 kf12 str F2 - - ----- F12 function key
+#key_f13 kf13 str F3 - - ----- F13 function key
+#key_f14 kf14 str F4 - - ----- F14 function key
+#key_f15 kf15 str F5 - - ----- F15 function key
+#key_f16 kf16 str F6 - - ----- F16 function key
+#key_f17 kf17 str F7 - - ----- F17 function key
+#key_f18 kf18 str F8 - - ----- F18 function key
+#key_f19 kf19 str F9 - - ----- F19 function key
+#key_f20 kf20 str FA - - ----- F20 function key
+#key_f21 kf21 str FB - - ----- F21 function key
+#key_f22 kf22 str FC - - ----- F22 function key
+#key_f23 kf23 str FD - - ----- F23 function key
+#key_f24 kf24 str FE - - ----- F24 function key
+#key_f25 kf25 str FF - - ----- F25 function key
+#key_f26 kf26 str FG - - ----- F26 function key
+#key_f27 kf27 str FH - - ----- F27 function key
+#key_f28 kf28 str FI - - ----- F28 function key
+#key_f29 kf29 str FJ - - ----- F29 function key
+#key_f30 kf30 str FK - - ----- F30 function key
+#key_f31 kf31 str FL - - ----- F31 function key
+#key_f32 kf32 str FM - - ----- F32 function key
+#key_f33 kf33 str FN - - ----- F33 function key
+#key_f34 kf34 str FO - - ----- F34 function key
+#key_f35 kf35 str FP - - ----- F35 function key
+#key_f36 kf36 str FQ - - ----- F36 function key
+#key_f37 kf37 str FR - - ----- F37 function key
+#key_f38 kf38 str FS - - ----- F38 function key
+#key_f39 kf39 str FT - - ----- F39 function key
+#key_f40 kf40 str FU - - ----- F40 function key
+#key_f41 kf41 str FV - - ----- F41 function key
+#key_f42 kf42 str FW - - ----- F42 function key
+#key_f43 kf43 str FX - - ----- F43 function key
+#key_f44 kf44 str FY - - ----- F44 function key
+#key_f45 kf45 str FZ - - ----- F45 function key
+#key_f46 kf46 str Fa - - ----- F46 function key
+#key_f47 kf47 str Fb - - ----- F47 function key
+#key_f48 kf48 str Fc - - ----- F48 function key
+#key_f49 kf49 str Fd - - ----- F49 function key
+#key_f50 kf50 str Fe - - ----- F50 function key
+#key_f51 kf51 str Ff - - ----- F51 function key
+#key_f52 kf52 str Fg - - ----- F52 function key
+#key_f53 kf53 str Fh - - ----- F53 function key
+#key_f54 kf54 str Fi - - ----- F54 function key
+#key_f55 kf55 str Fj - - ----- F55 function key
+#key_f56 kf56 str Fk - - ----- F56 function key
+#key_f57 kf57 str Fl - - ----- F57 function key
+#key_f58 kf58 str Fm - - ----- F58 function key
+#key_f59 kf59 str Fn - - ----- F59 function key
+#key_f60 kf60 str Fo - - ----- F60 function key
+#key_f61 kf61 str Fp - - ----- F61 function key
+#key_f62 kf62 str Fq - - ----- F62 function key
+#key_f63 kf63 str Fr - - ----- F63 function key
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+# box1[0] = ACS_ULCORNER
+# box1[1] = ACS_HLINE
+# box1[2] = ACS_URCORNER
+# box1[3] = ACS_VLINE
+# box1[4] = ACS_LRCORNER
+# box1[5] = ACS_LLCORNER
+# box1[6] = ACS_TTEE
+# box1[7] = ACS_RTEE
+# box1[8] = ACS_BTEE
+# box1[9] = ACS_LTEE
+# box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+#box_chars_1 box1 str bx - - ----K box characters primary set
+#box_chars_2 box2 str by - - ----K box characters secondary set
+#box_attr_1 batt1 str Bx - - ----K attributes for box1
+#box_attr_2 batt2 str By - - ----K attributes for box2
+#color_bg_0 colb0 str d0 - - ----K background color 0
+#color_bg_1 colb1 str d1 - - ----K background color 1
+#color_bg_2 colb2 str d2 - - ----K background color 2
+#color_bg_3 colb3 str d3 - - ----K background color 3
+#color_bg_4 colb4 str d4 - - ----K background color 4
+#color_bg_5 colb5 str d5 - - ----K background color 5
+#color_bg_6 colb6 str d6 - - ----K background color 6
+#color_bg_7 colb7 str d7 - - ----K background color 7
+#color_fg_0 colf0 str c0 - - ----K foreground color 0
+#color_fg_1 colf1 str c1 - - ----K foreground color 1
+#color_fg_2 colf2 str c2 - - ----K foreground color 2
+#color_fg_3 colf3 str c3 - - ----K foreground color 3
+#color_fg_4 colf4 str c4 - - ----K foreground color 4
+#color_fg_5 colf5 str c5 - - ----K foreground color 5
+#color_fg_6 colf6 str c6 - - ----K foreground color 6
+#color_fg_7 colf7 str c7 - - ----K foreground color 7
+#font_0 font0 str f0 - - ----- select font 0
+#font_1 font1 str f1 - - ----- select font 1
+#font_2 font2 str f2 - - ----- select font 2
+#font_3 font3 str f3 - - ----- select font 3
+#font_4 font4 str f4 - - ----K select font 4
+#font_5 font5 str f5 - - ----K select font 5
+#font_6 font6 str f6 - - ----K select font 6
+#font_7 font7 str f7 - - ----K select font 7
+#key_back_tab kbtab str k0 - - ----- backtab key
+#key_do kdo str ki - - ----K do request key
+#key_command kcmd str kd - - ----K command-request key
+#key_command_pane kcpn str kW - - ----K command-pane key
+#key_end kend str kw - - ----- end key
+#key_help khlp str kq - - ----- help key
+#key_newline knl str nl - - ----K newline key
+#key_next_pane knpn str kv - - ----K next-pane key
+#key_prev_cmd kppn str kp - - ----K previous-command key
+#key_prev_pane kppn str kV - - ----K previous-pane key
+#key_quit kquit str kQ - - ----K quit key
+#key_select ksel str kU - - ----- select key
+#key_scroll_left kscl str kz - - ----K scroll left
+#key_scroll_right kscr str kZ - - ----K scroll right
+#key_tab ktab str ko - - ----K tab key
+#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
+#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
+#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
+#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
+#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
+#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
+#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
+#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
+#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
+#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
+#appl_defined_str apstr str za - - ----K application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
+# the IBM manual pages, so the cap name strings are guesses. The terminfo
+# names are almost certainly right, the termcap ones almost certainly wrong.
+#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input
+#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output
+#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input
+#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output
+#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input
+#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output
+#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input
+#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output
+# Undocumented capabilities end here
+#key_sf1 ksf1 str S1 - - ----K special function key 1
+#key_sf2 ksf2 str S2 - - ----K special function key 2
+#key_sf3 ksf3 str S3 - - ----K special function key 3
+#key_sf4 ksf4 str S4 - - ----K special function key 4
+#key_sf5 ksf5 str S5 - - ----K special function key 5
+#key_sf6 ksf6 str S6 - - ----K special function key 6
+#key_sf7 ksf7 str S7 - - ----K special function key 7
+#key_sf8 ksf8 str S8 - - ----K special function key 8
+#key_sf9 ksf9 str S9 - - ----K special function key 9
+#key_sf10 ksf10 str SA - - ----K special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64. AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11 kf11 str k< - - ----- function key 11
+#key_f12 kf12 str k> - - ----- function key 12
+# Undocumented capabilities end here.
+#key_action kact str kJ - - ----K sent by action key
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+#enter_topline_mode topl str tp - - ----K start top-line mode
+#enter_bottom_mode btml str bm - - ----K start bottom-line mode
+#enter_rvert_mode rvert str rv - - ----K start right-vertical mode
+#enter_lvert_mode lvert str lv - - ----K start left-vertical mode
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files. We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias sb sr BSD scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities. Its signature is the KM capability, used to name
+# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set. Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias BO mr AT&T enter_reverse_mode
+capalias CI vi AT&T cursor_invisible
+capalias CV ve AT&T cursor_normal
+capalias DS mh AT&T enter_dim_mode
+#capalias EE me AT&T exit_attribute_mode
+capalias FE LF AT&T label_on
+capalias FL LO AT&T label_off
+capalias XS mk AT&T enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias EE mh XENIX exit_attribute_mode
+capalias GE ae XENIX exit_alt_charset_mode
+capalias GS as XENIX enter_alt_charset_mode
+capalias CF vi XENIX cursor_invis
+capalias CO ve XENIX cursor_normal
+capalias EN @7 XENIX key_end
+capalias HM kh XENIX key_home
+capalias LD kL XENIX key_dl
+capalias PD kN XENIX key_npage
+capalias PN po XENIX prtr_off
+capalias PS pf XENIX prtr_on
+capalias PU kP XENIX key_ppage
+capalias RT @8 XENIX kent
+capalias UP ku XENIX kcuu1
+capalias G6 IGNORE XENIX double-ACS_ULCORNER
+capalias G7 IGNORE XENIX double-ACS_LLCORNER
+capalias G5 IGNORE XENIX double-ACS_URCORNER
+capalias G8 IGNORE XENIX double-ACS_LRCORNER
+capalias Gr IGNORE XENIX double-ACS_LTEE
+capalias Gr IGNORE XENIX double-ACS_RTEE
+capalias Gu IGNORE XENIX double-ACS_BTEE
+capalias Gd IGNORE XENIX double ACS_TTEE
+capalias Gh IGNORE XENIX double-ACS_HLINE
+capalias Gv IGNORE XENIX double-ACS_VLINE
+capalias Gc IGNORE XENIX double-ACS_PLUS
+capalias GG IGNORE XENIX acs-glitch
+#
+# IBM extensions:
+#
+capalias kq %1 IBM key_help
+#
+# Iris extensions:
+#
+capalias HS mh IRIS enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias KA k; Tek key_f10
+capalias KB F1 Tek key_f11
+capalias KC F2 Tek key_f12
+capalias KD F3 Tek key_f13
+capalias KE F4 Tek key_f14
+capalias KF F5 Tek key_f15
+capalias BC Sb Tek set_background
+capalias FC Sf Tek set_foreground
+#
+# There are also the following:
+#
+# XENIX XENIX variable name name clash with terminfo?
+# ----- ------------------- -------------------------
+# CL key_char_left
+# CR key_char_right
+# CW key_change_window
+# HP ??
+# LF key_linefeed label_off
+# NU key_next_unlocked_cell
+# PL ??
+# PR ??
+# RC key_recalc remove_clock
+# RF key_toggle_ref req_for_input
+# WL key_word_left
+# WR key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias font0 s0ds IBM set0_des_seq
+infoalias font1 s1ds IBM set1_des_seq
+infoalias font2 s2ds IBM set2_des_seq
+infoalias font3 s3ds IBM set3_des_seq
+infoalias kbtab kcbt IBM key_backtab
+infoalias ksel kslt IBM key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/contrib/ncurses/include/Caps.uwin b/contrib/ncurses/include/Caps.uwin
new file mode 100644
index 000000000000..ea755c142ccc
--- /dev/null
+++ b/contrib/ncurses/include/Caps.uwin
@@ -0,0 +1,1090 @@
+##############################################################################
+# Copyright (c) 2001 Free Software Foundation, Inc. #
+# #
+# Permission is hereby granted, free of charge, to any person obtaining a #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation #
+# the rights to use, copy, modify, merge, publish, distribute, distribute #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the #
+# following conditions: #
+# #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software. #
+# #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
+# DEALINGS IN THE SOFTWARE. #
+# #
+# Except as contained in this notice, the name(s) of the above copyright #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written #
+# authorization. #
+##############################################################################
+#
+# Author: Thomas Dickey
+#
+# $Id: Caps.uwin,v 1.2 2002/04/20 15:44: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 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
+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 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
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable Cap- TCap Description\fR
+#%\fBString name Code\fR
+back_tab cbt str bt - - YBCGE back tab (P)
+bell bel str bl - - YB-GE audible signal (bell) (P)
+carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
+change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
+clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
+clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
+clr_eol el str ce - - YBCGE clear to end of line (P)
+clr_eos ed str cd - - YBCGE clear to end of screen (P*)
+column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
+command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
+cursor_address cup str cm - - YBCGE move to row #1 columns #2
+cursor_down cud1 str do - - YBCGE down one line
+cursor_home home str ho - - YBCGE home cursor (if no cup)
+cursor_invisible civis str vi - - YB-G- make cursor invisible
+cursor_left cub1 str le - - YBCGE move left one space
+cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
+cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
+cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
+cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
+cursor_up cuu1 str up - - YBCGE up one line
+cursor_visible cvvis str vs - - YBCGE make cursor very visible
+delete_character dch1 str dc - - YBCGE delete character (P*)
+delete_line dl1 str dl - - YBCGE delete line (P*)
+dis_status_line dsl str ds - - YB-G- disable status line
+down_half_line hd str hd - - YB-G- half a line down
+enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
+enter_blink_mode blink str mb - - YB-G- turn on blinking
+enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
+enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
+enter_delete_mode smdc str dm - - YBCGE enter delete mode
+enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
+enter_insert_mode smir str im - - YBCGE enter insert mode
+enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
+enter_protected_mode prot str mp - - -B-G-* turn on protected mode
+enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
+enter_standout_mode smso str so - - YBCGE begin standout mode
+enter_underline_mode smul str us - - YBCGE begin underline mode
+erase_chars ech str ec - - YB-G- erase #1 characters (P)
+exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
+exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
+exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
+exit_delete_mode rmdc str ed - - YBCGE end delete mode
+exit_insert_mode rmir str ei - - YBCGE exit insert mode
+exit_standout_mode rmso str se - - YBCGE exit standout mode
+exit_underline_mode rmul str ue - - YBCGE exit underline mode
+flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
+form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
+from_status_line fsl str fs - - YB-G- return from status line
+init_1string is1 str i1 - - YB-G- initialization string
+init_2string is2 str is - - YB-G- initialization string
+init_3string is3 str i3 - - YB-G- initialization string
+init_file if str if - - YB-G- name of initialization file
+insert_character ich1 str ic - - YBCGE insert character (P)
+insert_line il1 str al - - YBCGE insert line (P*)
+insert_padding ip str ip - - YBCGE insert padding after inserted character
+key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
+key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
+key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
+key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
+key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
+key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
+key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
+key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
+key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
+key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
+key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
+key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
+key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
+key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
+key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
+key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
+key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
+key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
+key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
+key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
+key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
+key_home khome str kh KEY_HOME 0406 YBCGE home key
+key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
+key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
+key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
+key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
+key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
+key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
+key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
+key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
+key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
+key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
+key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
+keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
+keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
+lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
+lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
+lab_f10 lf10 str la - - ----- label on function key f10 if not f10
+lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
+lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
+lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
+lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
+lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
+lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
+lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
+lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
+meta_off rmm str mo - - YB-G-* turn off meta mode
+meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
+newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
+pad_char pad str pc - - YBCGE padding char (instead of null)
+parm_dch dch str DC - - YB-GE delete #1 characters (P*)
+parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
+parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
+parm_ich ich str IC - - YB-GE insert #1 characters (P*)
+parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
+parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
+parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
+parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
+parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
+parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
+pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
+pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
+pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
+print_screen mc0 str ps - - -B-G-* print contents of screen
+prtr_off mc4 str pf - - -B-G-* turn off printer
+prtr_on mc5 str po - - -B-G-* turn on printer
+repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
+reset_1string rs1 str r1 - - -B--- reset string
+reset_2string rs2 str r2 - - -B--- reset string
+reset_3string rs3 str r3 - - -B--- reset string
+reset_file rf str rf - - -B--- name of reset file
+restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
+row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
+save_cursor sc str sc - - YBCG- save current cursor position (P)
+scroll_forward ind str sf - - YBCGE scroll text up (P)
+scroll_reverse ri str sr - - YBCGE scroll text down (P)
+set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
+set_tab hts str st - - YB-G- set a tab in every row, current columns
+set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
+tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
+to_status_line tsl str ts - - YB-G- move to status line, column #1
+underline_char uc str uc - - YBCG- underline char and move past it
+up_half_line hu str hu - - YB-G- half a line up
+init_prog iprog str iP - - -B--- path name of program for initialization
+key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad
+key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad
+key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad
+key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad
+key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad
+prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes
+#
+# SVr1 capabilities stop here. IBM's version of terminfo is the same as
+# SVr4 up to this point, but has a different set afterwards.
+#
+char_padding rmp str rP - - ----- like ip but when in insert mode
+acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100
+plab_norm pln str pn - - ----- program label #1 to show string #2
+key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key
+enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking
+exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking
+enter_am_mode smam str SA - - ----- turn on automatic margins
+exit_am_mode rmam str RA - - ----- turn off automatic margins
+xon_character xonc str XN - - ----- XON character
+xoff_character xoffc str XF - - ----- XOFF character
+ena_acs enacs str eA - - ----- enable alternate char set
+label_on smln str LO - - ----- turn on soft labels
+label_off rmln str LF - - ----- turn off soft labels
+key_beg kbeg str @1 KEY_BEG 0542 ----- begin key
+key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key
+key_close kclo str @3 KEY_CLOSE 0544 ----- close key
+key_command kcmd str @4 KEY_COMMAND 0545 ----- command key
+key_copy kcpy str @5 KEY_COPY 0546 ----- copy key
+key_create kcrt str @6 KEY_CREATE 0547 ----- create key
+key_end kend str @7 KEY_END 0550 ----- end key
+key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key
+key_exit kext str @9 KEY_EXIT 0551 ----- exit key
+key_find kfnd str @0 KEY_FIND 0552 ----- find key
+key_help khlp str %1 KEY_HELP 0553 ----- help key
+key_mark kmrk str %2 KEY_MARK 0554 ----- mark key
+key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key
+key_move kmov str %4 KEY_MOVE 0556 ----- move key
+key_next knxt str %5 KEY_NEXT 0557 ----- next key
+key_open kopn str %6 KEY_OPEN 0560 ----- open key
+key_options kopt str %7 KEY_OPTIONS 0561 ----- options key
+key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key
+key_print kprt str %9 KEY_PRINT 0532 ----- print key
+key_redo krdo str %0 KEY_REDO 0563 ----- redo key
+key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key
+key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key
+key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key
+key_restart krst str &4 KEY_RESTART 0567 ----- restart key
+key_resume kres str &5 KEY_RESUME 0570 ----- resume key
+key_save ksav str &6 KEY_SAVE 0571 ----- save key
+key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key
+key_undo kund str &8 KEY_UNDO 0630 ----- undo key
+key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key
+key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key
+key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key
+key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key
+key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key
+key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key
+key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key
+key_select kslt str *6 KEY_SELECT 0601 ----- select key
+key_send kEND str *7 KEY_SEND 0602 ----- shifted end key
+key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key
+key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key
+key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key
+key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key
+key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key
+key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key
+key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key
+key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key
+key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key
+key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key
+key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key
+key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key
+key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key
+key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key
+key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key
+key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key
+key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key
+key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key
+key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key
+key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key
+req_for_input rfi str RF - - ----- send next input char (for ptys)
+key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key
+key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key
+key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key
+key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key
+key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key
+key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key
+key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key
+key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key
+key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key
+key_f20 kf20 str FA KEY_F(20) - ----E F20 function key
+key_f21 kf21 str FB KEY_F(21) - ----E F21 function key
+key_f22 kf22 str FC KEY_F(22) - ----E F22 function key
+key_f23 kf23 str FD KEY_F(23) - ----E F23 function key
+key_f24 kf24 str FE KEY_F(24) - ----E F24 function key
+key_f25 kf25 str FF KEY_F(25) - ----E F25 function key
+key_f26 kf26 str FG KEY_F(26) - ----E F26 function key
+key_f27 kf27 str FH KEY_F(27) - ----E F27 function key
+key_f28 kf28 str FI KEY_F(28) - ----E F28 function key
+key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key
+key_f30 kf30 str FK KEY_F(30) - ----E F30 function key
+key_f31 kf31 str FL KEY_F(31) - ----E F31 function key
+key_f32 kf32 str FM KEY_F(32) - ----E F32 function key
+key_f33 kf33 str FN KEY_F(33) - ----E F33 function key
+key_f34 kf34 str FO KEY_F(34) - ----E F34 function key
+key_f35 kf35 str FP KEY_F(35) - ----E F35 function key
+key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key
+key_f37 kf37 str FR KEY_F(37) - ----E F37 function key
+key_f38 kf38 str FS KEY_F(38) - ----E F38 function key
+key_f39 kf39 str FT KEY_F(39) - ----E F39 function key
+key_f40 kf40 str FU KEY_F(40) - ----E F40 function key
+key_f41 kf41 str FV KEY_F(41) - ----E F41 function key
+key_f42 kf42 str FW KEY_F(42) - ----E F42 function key
+key_f43 kf43 str FX KEY_F(43) - ----E F43 function key
+key_f44 kf44 str FY KEY_F(44) - ----E F44 function key
+key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key
+key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key
+key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key
+key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key
+key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key
+key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key
+key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key
+key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key
+key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key
+key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key
+key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key
+key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key
+key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key
+key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key
+key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key
+key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key
+key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key
+key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key
+key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key
+clr_bol el1 str cb - - ----- Clear to beginning of line
+clear_margins mgc str MC - - ----- clear right and left soft margins
+set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap).
+set_right_margin smgr str MR - - ----- set right soft margin at current column
+device_type devt str dv - - ----- Indicate language/codeset support
+code_set_init csin str ci - - ----- Init sequence for multiple codesets
+set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII)
+set1_des_seq s1ds str s1 - - ----- Shift to codeset 1
+set2_des_seq s2ds str s2 - - ----- Shift to codeset 2
+set3_des_seq s3ds str s3 - - ----- Shift to codeset 3
+key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred
+mouse_info minfo str Mi - - ----- Mouse status information
+req_mouse_pos reqmp str RQ - - ----- Request mouse position
+get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented.
+release_mouse relm str Rm - - ----- Curses should release the mouse */
+color_names colornm str Yw - - ----- Give name for color #1
+initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4)
+initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
+orig_colors oc str oc - - ----- Set all color pairs to the original ones
+orig_pair op str op - - ----- Set default pair to its original value
+set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape
+set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape
+set_background setb str Sb - - ----- Set background color #1
+set_color_pair scp str sp - - ----- Set current color pair to #1
+set_foreground setf str Sf - - ----- Set foreground color #1
+#%.TE
+#%.ad
+#%
+# The magic token below tells the tic compiler-generator code that all the caps
+# past it should be ignored (not written out) when dumping terminfo objects. It
+# also tells the man page table generator not to pass through following lines
+# This means we can have obsolete capabilities and pseudo-capabilities that are
+# recognized for termcap or terminfo compilation, but not output.
+#
+# %%-STOP-HERE-%%
+#
+# Don't move this casually! In fact, don't move it at all unless you're
+# either doing it to add System V or XPG4 extensions, or have decided you
+# don't care about SVr4 binary compatibility.
+#
+#############################################################################
+#
+# TERMCAP EXTENSION CAPABILITIES
+#
+# The capabilities below are either obsolete or extensions on certain systems.
+# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
+# termcap sources; the rest are listed for completeness, and in case somebody
+# cares about them enough to hack in code that will translate them into
+# terminfo capabilities.
+#
+# The first part of the list is from Ross Ridge's `mytinfo' package
+# (comp.sources.unix, volume 26); the variable names and terminfo names (as
+# well as the termcap codes) match his list.
+#
+# This group of codes is not marked obsolete in 4.4BSD, but have no direct
+# terminfo equivalents. The rs capability is specially translated to terminfo
+# r2, and vice versa, if an entry does not already have an r2. Similarly,
+# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
+# The ug capability is thrown away, but assumed to be whatever sg is if the
+# latter is nonzero and we're dumping in termcap format.
+#
+termcap_init2 OTi2 str i2 - - YB--- secondary initialization string
+termcap_reset OTrs str rs - - YB-G- terminal reset string
+magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul
+#
+# Obsolete termcap capabilities. Some are used for termcap translation. The
+# code uses the 'OT' prefix we put on obsolete capabilities to suppress
+# printing them in terminfo source dumps of compiled entries.
+#
+backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left
+crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll
+no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line
+carriage_return_delay OTdC num dC - - YB-G- pad needed for CR
+new_line_delay OTdN num dN - - YB-G- pad needed for LF
+linefeed_if_not_lf OTnl str nl - - YBCGE use to move down
+backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H
+#
+# GNU termcap library extensions. The GNU termcap file distributed with
+# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
+# BSD termcap file. The name clash with terminfo MT is resolved by type
+# info; MT is converted to km.
+#
+gnu_has_meta_key OTMT bool MT - - ----E has meta key
+# gnu_tab_width OTtw num tw - - ----E tab width in spaces
+#
+# GNU termcap *does* include the following extended capability, Only the
+# now-obsolete Ann Arbor terminals used it.
+#
+# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region
+#
+# The following comments describe capnames so ancient that I believe no
+# software uses them any longer. Some of these have to go because they
+# clash with terminfo names in ways that cannot be resolved by type
+# information.
+#
+# These mytinfo codes are not used in the 4.4BSD curses code. They are
+# marked obsolete in the 4.4BSD manual pages.
+#
+# There is one conflict with terminfo; ma is in both. This conflict is
+# resolved by type information.
+#
+# The `ko' capability is translated by special code. It should contain a
+# comma-separated list of capabilities for which there are corresponding keys.
+# The `kn' code is accepted but ignored.
+#
+# The `ma' capability seems to have been designed to map between the rogue(2)
+# motion keys (including jkhl) and characters emitted by arrow keys on some
+# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
+#
+# Here is a description of memory_lock_above and memory_unlock:
+# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
+# text. All lines above the cursor's current line become locked in place on
+# the screen. Then enter data normally. When the screen fills up, any
+# further data entered forces the first line of unfrozen line text to scroll
+# under the frozen data. Lines scrolled off the screen are inserted into
+# memory immediately preceding the first frozen line." (from the HP 700/96
+# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
+#
+# Applications that use terminfo are supposed to behave as though xr is
+# always true.
+#
+linefeed_is_newline OTNL bool NL - - YB--- move down with \n
+# even_parity OTEP bool EP - - -B--- terminal requires even parity
+# odd_parity OTOP bool OP - - -B--- terminal requires odd parity
+# half_duplex OTHD bool HD - - -B--- terminal is half-duplex
+# lower_case_only OTLC bool LC - - -B--- terminal has only lower case
+# upper_case_only OTUC bool UC - - -B--- terminal has only upper case
+backspace_delay OTdB num dB - - YB-G- padding required for ^H
+# form_feed_delay OTdF num dF - - -B-G- padding required for ^L
+horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I
+# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V
+number_of_function_keys OTkn num kn - - -B-G- count of function keys
+other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps
+arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys
+# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line
+# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line
+has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I
+return_does_clr_eol OTxr bool xr - - YB--- return clears the line
+# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch
+#
+# mytinfo described this as a termcap capability, but it's not listed in the
+# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
+# package, like System V, behaves as though it is always true.
+#
+# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line
+#
+# University of Waterloo termcap extensions (as described in mytinfo).
+# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
+# be resolved by a type check. The descriptions are guesses from what was
+# in the mytinfo tables.
+#
+# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?)
+# key_kill_char OTkk str kk - - ----- string set by kill key (?)
+# key_suspend_char OTkz str kz - - ----- string set by suspend key (?)
+# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?)
+# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return
+#
+# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
+# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
+# check.
+#
+# scroll_left OTsl1 str Sl - - ----- scroll screen leftward
+# scroll_right OTsr1 str Sr - - ----- scroll screen rightward
+# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters
+# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters
+#
+# The mytinfo capabilities end here.
+#
+# XENIX extensions:
+#
+# Xenix defined its own set of forms-drawing capabilities:
+#
+# cap IBM ASCII description ACS ASCII
+# --- ----------- -------------------- ------------- ------
+# G1 191 \277 M-? single upper right ACS_URCORNER
+# G2 218 \332 M-Z single upper left ACS_ULCORNER
+# G3 192 \300 M-@ single lower left ACS_LLCORNER
+# G4 217 \331 M-Y single lower right ACS_LRCORNER
+# G5 187 \273 M-; double upper right
+# G6 201 \311 M-I double upper left
+# G7 200 \310 M-H double lower left
+# G8 188 \274 M-< double lower right
+# GC 197 \305 M-E single intersection ACS_PLUS _ _
+# GD 194 \302 M-B single down-tick ACS_TTEE |
+# GH 196 \304 M-D single horizontal line ACS_HLINE
+# GL 180 \264 M-4 single left tick ACS_RTEE -|
+# GR 195 \303 M-C single right tick ACS_LTEE |-
+# GU 193 \301 M-A single up tick ACS_BTEE _|_
+# GV 179 \263 M-3 single vertical line ACS_VLINE
+# Gc 206 \316 M-N double intersection
+# Gd 203 \313 M-K double down tick
+# Gh 205 \315 M-M double horizontal line
+# Gl 204 \204 M-L double left tick
+# Gr 185 \271 M-9 double right tick
+# Gu 202 \312 M-J double up tick
+# Gv 186 \272 M-: double vertical line
+#
+# The compiler will translate the single-line caps and discard the others
+# (via IGNORE aliases further down). We don't want to do normal pad
+# translation on these, they're often single-character printable ASCII
+# strings that happen to be numerics. There's awk code in parametrized.sh
+# that detects the acs_ prefix and uses it to suppress pad translation.
+# These terminfo names are invented.
+#
+acs_ulcorner OTG2 str G2 - - ----- single upper left
+acs_llcorner OTG3 str G3 - - ----- single lower left
+acs_urcorner OTG1 str G1 - - ----- single upper right
+acs_lrcorner OTG4 str G4 - - ----- single lower right
+acs_ltee OTGR str GR - - ----- tee pointing right
+acs_rtee OTGL str GL - - ----- tee pointing left
+acs_btee OTGU str GU - - ----- tee pointing up
+acs_ttee OTGD str GD - - ----- tee pointing down
+acs_hline OTGH str GH - - ----- single horizontal line
+acs_vline OTGV str GV - - ----- single vertical line
+acs_plus OTGC str GC - - ----- single intersection
+#
+#############################################################################
+#
+# TERMINFO EXTENSION CAPABILITIES
+#
+# This section is almost all comments. What it's mainly for is to describe
+# what capabilities need to be squeezed out to get down to the XSI Curses
+# standard set. They are flagged with K.
+#
+# HP extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in HP
+# terminfo files. Except for memory_lock and memory_unlock, they are
+# functionally identical to SVr4 extensions, but they make the binary format
+# different. Grrr....
+#
+memory_lock meml str ml - - ----K memory lock above
+memory_unlock memu str mu - - ----K memory unlock
+#plab_norm pln str pn - - ----- program label #1 to show string #2
+#label_on smln str LO - - ----- turn on soft labels
+#label_off rmln str LF - - ----- turn off soft labels
+#key_f11 kf11 str F1 - - ----- F11 function key
+#key_f12 kf12 str F2 - - ----- F12 function key
+#key_f13 kf13 str F3 - - ----- F13 function key
+#key_f14 kf14 str F4 - - ----- F14 function key
+#key_f15 kf15 str F5 - - ----- F15 function key
+#key_f16 kf16 str F6 - - ----- F16 function key
+#key_f17 kf17 str F7 - - ----- F17 function key
+#key_f18 kf18 str F8 - - ----- F18 function key
+#key_f19 kf19 str F9 - - ----- F19 function key
+#key_f20 kf20 str FA - - ----- F20 function key
+#key_f21 kf21 str FB - - ----- F21 function key
+#key_f22 kf22 str FC - - ----- F22 function key
+#key_f23 kf23 str FD - - ----- F23 function key
+#key_f24 kf24 str FE - - ----- F24 function key
+#key_f25 kf25 str FF - - ----- F25 function key
+#key_f26 kf26 str FG - - ----- F26 function key
+#key_f27 kf27 str FH - - ----- F27 function key
+#key_f28 kf28 str FI - - ----- F28 function key
+#key_f29 kf29 str FJ - - ----- F29 function key
+#key_f30 kf30 str FK - - ----- F30 function key
+#key_f31 kf31 str FL - - ----- F31 function key
+#key_f32 kf32 str FM - - ----- F32 function key
+#key_f33 kf33 str FN - - ----- F33 function key
+#key_f34 kf34 str FO - - ----- F34 function key
+#key_f35 kf35 str FP - - ----- F35 function key
+#key_f36 kf36 str FQ - - ----- F36 function key
+#key_f37 kf37 str FR - - ----- F37 function key
+#key_f38 kf38 str FS - - ----- F38 function key
+#key_f39 kf39 str FT - - ----- F39 function key
+#key_f40 kf40 str FU - - ----- F40 function key
+#key_f41 kf41 str FV - - ----- F41 function key
+#key_f42 kf42 str FW - - ----- F42 function key
+#key_f43 kf43 str FX - - ----- F43 function key
+#key_f44 kf44 str FY - - ----- F44 function key
+#key_f45 kf45 str FZ - - ----- F45 function key
+#key_f46 kf46 str Fa - - ----- F46 function key
+#key_f47 kf47 str Fb - - ----- F47 function key
+#key_f48 kf48 str Fc - - ----- F48 function key
+#key_f49 kf49 str Fd - - ----- F49 function key
+#key_f50 kf50 str Fe - - ----- F50 function key
+#key_f51 kf51 str Ff - - ----- F51 function key
+#key_f52 kf52 str Fg - - ----- F52 function key
+#key_f53 kf53 str Fh - - ----- F53 function key
+#key_f54 kf54 str Fi - - ----- F54 function key
+#key_f55 kf55 str Fj - - ----- F55 function key
+#key_f56 kf56 str Fk - - ----- F56 function key
+#key_f57 kf57 str Fl - - ----- F57 function key
+#key_f58 kf58 str Fm - - ----- F58 function key
+#key_f59 kf59 str Fn - - ----- F59 function key
+#key_f60 kf60 str Fo - - ----- F60 function key
+#key_f61 kf61 str Fp - - ----- F61 function key
+#key_f62 kf62 str Fq - - ----- F62 function key
+#key_f63 kf63 str Fr - - ----- F63 function key
+#
+# IBM extensions
+#
+# These extensions follow ptr_non (replacing everything after it) in IBM
+# terminfo files.
+#
+# The places in the box[12] capabilities correspond to acsc characters, here is
+# the mapping:
+#
+# box1[0] = ACS_ULCORNER
+# box1[1] = ACS_HLINE
+# box1[2] = ACS_URCORNER
+# box1[3] = ACS_VLINE
+# box1[4] = ACS_LRCORNER
+# box1[5] = ACS_LLCORNER
+# box1[6] = ACS_TTEE
+# box1[7] = ACS_RTEE
+# box1[8] = ACS_BTEE
+# box1[9] = ACS_LTEE
+# box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+#
+box_chars_1 box1 str bx - - ----K box characters primary set
+#box_chars_2 box2 str by - - ----K box characters secondary set
+#box_attr_1 batt1 str Bx - - ----K attributes for box1
+#box_attr_2 batt2 str By - - ----K attributes for box2
+#color_bg_0 colb0 str d0 - - ----K background color 0
+#color_bg_1 colb1 str d1 - - ----K background color 1
+#color_bg_2 colb2 str d2 - - ----K background color 2
+#color_bg_3 colb3 str d3 - - ----K background color 3
+#color_bg_4 colb4 str d4 - - ----K background color 4
+#color_bg_5 colb5 str d5 - - ----K background color 5
+#color_bg_6 colb6 str d6 - - ----K background color 6
+#color_bg_7 colb7 str d7 - - ----K background color 7
+#color_fg_0 colf0 str c0 - - ----K foreground color 0
+#color_fg_1 colf1 str c1 - - ----K foreground color 1
+#color_fg_2 colf2 str c2 - - ----K foreground color 2
+#color_fg_3 colf3 str c3 - - ----K foreground color 3
+#color_fg_4 colf4 str c4 - - ----K foreground color 4
+#color_fg_5 colf5 str c5 - - ----K foreground color 5
+#color_fg_6 colf6 str c6 - - ----K foreground color 6
+#color_fg_7 colf7 str c7 - - ----K foreground color 7
+#font_0 font0 str f0 - - ----- select font 0
+#font_1 font1 str f1 - - ----- select font 1
+#font_2 font2 str f2 - - ----- select font 2
+#font_3 font3 str f3 - - ----- select font 3
+#font_4 font4 str f4 - - ----K select font 4
+#font_5 font5 str f5 - - ----K select font 5
+#font_6 font6 str f6 - - ----K select font 6
+#font_7 font7 str f7 - - ----K select font 7
+#key_back_tab kbtab str k0 - - ----- backtab key
+#key_do kdo str ki - - ----K do request key
+#key_command kcmd str kd - - ----K command-request key
+#key_command_pane kcpn str kW - - ----K command-pane key
+#key_end kend str kw - - ----- end key
+#key_help khlp str kq - - ----- help key
+#key_newline knl str nl - - ----K newline key
+#key_next_pane knpn str kv - - ----K next-pane key
+#key_prev_cmd kppn str kp - - ----K previous-command key
+#key_prev_pane kppn str kV - - ----K previous-pane key
+#key_quit kquit str kQ - - ----K quit key
+#key_select ksel str kU - - ----- select key
+#key_scroll_left kscl str kz - - ----K scroll left
+#key_scroll_right kscr str kZ - - ----K scroll right
+#key_tab ktab str ko - - ----K tab key
+#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
+#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
+#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
+#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
+#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
+#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
+#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
+#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
+#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
+#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
+#appl_defined_str apstr str za - - ----K application-defined string
+# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
+# the IBM manual pages, so the cap name strings are guesses. The terminfo
+# names are almost certainly right, the termcap ones almost certainly wrong.
+#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input
+#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output
+#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input
+#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output
+#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input
+#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output
+#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input
+#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output
+# Undocumented capabilities end here
+#key_sf1 ksf1 str S1 - - ----K special function key 1
+#key_sf2 ksf2 str S2 - - ----K special function key 2
+#key_sf3 ksf3 str S3 - - ----K special function key 3
+#key_sf4 ksf4 str S4 - - ----K special function key 4
+#key_sf5 ksf5 str S5 - - ----K special function key 5
+#key_sf6 ksf6 str S6 - - ----K special function key 6
+#key_sf7 ksf7 str S7 - - ----K special function key 7
+#key_sf8 ksf8 str S8 - - ----K special function key 8
+#key_sf9 ksf9 str S9 - - ----K special function key 9
+#key_sf10 ksf10 str SA - - ----K special function key 10
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64. AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11 kf11 str k< - - ----- function key 11
+#key_f12 kf12 str k> - - ----- function key 12
+# Undocumented capabilities end here.
+#key_action kact str kJ - - ----K sent by action key
+# The IBM docs say these capabilities are for table-drawing, and are
+# valid only for aixterm descriptions.
+#enter_topline_mode topl str tp - - ----K start top-line mode
+#enter_bottom_mode btml str bm - - ----K start bottom-line mode
+#enter_rvert_mode rvert str rv - - ----K start right-vertical mode
+#enter_lvert_mode lvert str lv - - ----K start left-vertical mode
+#
+#############################################################################
+#
+# ALIAS DECLARATIONS
+#
+# Here we set up aliases for translating extensions into standard terminfo.
+#
+#---------------------------------- Termcap aliases -------------------------
+#
+# BSD aliases:
+#
+# This is a common error in many termcap files. We'll get notified during
+# translation when this (or any other alias) fires.
+#
+capalias sb sr BSD scroll text down
+#
+# AT&T extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities. Its signature is the KM capability, used to name
+# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set. Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish the following mappings:
+#
+capalias BO mr AT&T enter_reverse_mode
+capalias CI vi AT&T cursor_invisible
+capalias CV ve AT&T cursor_normal
+capalias DS mh AT&T enter_dim_mode
+#capalias EE me AT&T exit_attribute_mode
+capalias FE LF AT&T label_on
+capalias FL LO AT&T label_off
+capalias XS mk AT&T enter_secure_mode
+#
+# We comment out EE because the conflicting XENIX EE is more common in
+# old entries.
+#
+# XENIX extensions:
+#
+# These are the ones we know how to translate directly:
+#
+capalias EE mh XENIX exit_attribute_mode
+capalias GE ae XENIX exit_alt_charset_mode
+capalias GS as XENIX enter_alt_charset_mode
+capalias CF vi XENIX cursor_invis
+capalias CO ve XENIX cursor_normal
+capalias EN @7 XENIX key_end
+capalias HM kh XENIX key_home
+capalias LD kL XENIX key_dl
+capalias PD kN XENIX key_npage
+capalias PN po XENIX prtr_off
+capalias PS pf XENIX prtr_on
+capalias PU kP XENIX key_ppage
+capalias RT @8 XENIX kent
+capalias UP ku XENIX kcuu1
+capalias G6 IGNORE XENIX double-ACS_ULCORNER
+capalias G7 IGNORE XENIX double-ACS_LLCORNER
+capalias G5 IGNORE XENIX double-ACS_URCORNER
+capalias G8 IGNORE XENIX double-ACS_LRCORNER
+capalias Gr IGNORE XENIX double-ACS_LTEE
+capalias Gr IGNORE XENIX double-ACS_RTEE
+capalias Gu IGNORE XENIX double-ACS_BTEE
+capalias Gd IGNORE XENIX double ACS_TTEE
+capalias Gh IGNORE XENIX double-ACS_HLINE
+capalias Gv IGNORE XENIX double-ACS_VLINE
+capalias Gc IGNORE XENIX double-ACS_PLUS
+capalias GG IGNORE XENIX acs-glitch
+#
+# IBM extensions:
+#
+capalias kq %1 IBM key_help
+#
+# Iris extensions:
+#
+capalias HS mh IRIS enter_dim_mode
+#
+# Tektronix extensions:
+#
+capalias KA k; Tek key_f10
+capalias KB F1 Tek key_f11
+capalias KC F2 Tek key_f12
+capalias KD F3 Tek key_f13
+capalias KE F4 Tek key_f14
+capalias KF F5 Tek key_f15
+capalias BC Sb Tek set_background
+capalias FC Sf Tek set_foreground
+#
+# There are also the following:
+#
+# XENIX XENIX variable name name clash with terminfo?
+# ----- ------------------- -------------------------
+# CL key_char_left
+# CR key_char_right
+# CW key_change_window
+# HP ??
+# LF key_linefeed label_off
+# NU key_next_unlocked_cell
+# PL ??
+# PR ??
+# RC key_recalc remove_clock
+# RF key_toggle_ref req_for_input
+# WL key_word_left
+# WR key_word_right
+#
+# If you know what any of the question-marked ones mean, please tell us.
+#
+#--------------------------------- Terminfo aliases ------------------------
+#
+# IBM extensions:
+#
+infoalias font0 s0ds IBM set0_des_seq
+infoalias font1 s1ds IBM set1_des_seq
+infoalias font2 s2ds IBM set2_des_seq
+infoalias font3 s3ds IBM set3_des_seq
+infoalias kbtab kcbt IBM key_backtab
+infoalias ksel kslt IBM key_select
+#
+# Some others are identical to SVr4/XPG4 capabilities, in particular:
+# kcmd, kend, khlp, and kf11...kf63.
+#
+#############################################################################
+#
+# The following sets edit modes for GNU EMACS
+# Local Variables:
+# case-fold-search:nil
+# truncate-lines:t
+# End:
diff --git a/contrib/ncurses/include/MKkey_defs.sh b/contrib/ncurses/include/MKkey_defs.sh
new file mode 100755
index 000000000000..68f33466bb80
--- /dev/null
+++ b/contrib/ncurses/include/MKkey_defs.sh
@@ -0,0 +1,162 @@
+#! /bin/sh
+# $Id: MKkey_defs.sh,v 1.7 2002/01/13 01:36:32 tom Exp $
+##############################################################################
+# Copyright (c) 2001,2002 Free Software Foundation, Inc. #
+# #
+# Permission is hereby granted, free of charge, to any person obtaining a #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation #
+# the rights to use, copy, modify, merge, publish, distribute, distribute #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the #
+# following conditions: #
+# #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software. #
+# #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
+# DEALINGS IN THE SOFTWARE. #
+# #
+# Except as contained in this notice, the name(s) of the above copyright #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written #
+# authorization. #
+##############################################################################
+#
+# MKkey_defs.sh -- generate function-key definitions for curses.h
+#
+# Author: Thomas E. Dickey <dickey@herndon4.his.com> 2001
+#
+# Extract function-key definitions from the Caps file
+#
+: ${AWK-awk}
+DATA=${1-Caps}
+
+data=data$$
+pass1=pass1_$$
+pass2=pass2_$$
+pass3=pass3_$$
+pass4=pass4_$$
+trap 'rm -f $data pass[1234]_$$' 0 1 2 5 15
+sed -e 's/[ ]\+/ /g' < $DATA |sort -n +5 >$data
+
+cat <<EOF
+/*
+ * These definitions were generated by $0 $DATA
+ */
+EOF
+
+# KEY_RESIZE
+maxkey=410
+
+for pass in 1 2 3 4
+do
+
+output=pass${pass}_$$
+
+${AWK-awk} >$output <$data '
+function print_cols(text,cols) {
+ printf "%s", text
+ len = length(text);
+ while (len < cols) {
+ printf " "
+ len += 8;
+ }
+}
+function decode(keycode) {
+ result = 0;
+ if (substr(keycode, 1, 2) == "0x") {
+ digits="0123456789abcdef";
+ } else if (substr(keycode, 1, 1) == "0") {
+ digits="01234567";
+ } else {
+ digits="0123456789";
+ }
+ while (length(keycode) != 0) {
+ digit=substr(keycode, 1, 1);
+ keycode=substr(keycode, 2);
+ result = result * length(digits) + index(digits, digit) - 1;
+ }
+ return result;
+}
+
+BEGIN {
+ maxkey='$maxkey';
+ pass='$pass';
+ key_max=1;
+ bits=1;
+ while (key_max < maxkey) {
+ bits = bits + 1;
+ key_max = (key_max * 2) + 1;
+ }
+ octal_fmt = sprintf ("%%0%do", (bits + 2) / 3 + 1);
+}
+
+/^$/ {next;}
+/^#/ {next;}
+/^capalias/ {next;}
+/^infoalias/ {next;}
+
+$5 != "-" && $6 != "-" {
+ if ($6 == "+") {
+ if (pass == 1 || pass == 2)
+ next;
+ thiskey=maxkey + 1;
+ } else {
+ if (pass == 3)
+ next;
+ thiskey=decode($6);
+ }
+ if (thiskey > maxkey)
+ maxkey = thiskey;
+ if (pass == 2 || pass == 3) {
+ showkey=sprintf(octal_fmt, thiskey);
+ if ($5 == "KEY_F(0)" ) {
+ printf "#define "
+ print_cols("KEY_F0", 16);
+ print_cols(showkey, 16);
+ print "/* Function keys. Space for 64 */";
+ printf "#define "
+ print_cols("KEY_F(n)", 16);
+ print_cols("(KEY_F0+(n))", 16);
+ print "/* Value of function key n */"
+ } else {
+ printf "#define "
+ print_cols($5, 16);
+ print_cols(showkey, 16);
+ printf "/*"
+ for (i = 8; i <= NF; i++)
+ printf " %s", $i
+ print " */"
+ }
+ }
+ }
+END {
+ if (pass == 1) {
+ print maxkey;
+ } else if (pass == 4) {
+ print "";
+ printf "#define ";
+ print_cols("KEY_MAX", 16);
+ result = sprintf (octal_fmt, key_max);
+ print_cols(result, 16);
+ printf "/* Maximum key value is ";
+ printf octal_fmt, maxkey;
+ print " */";
+ }
+ }
+'
+if test $pass = 1 ; then
+ maxkey=`cat $pass1`
+fi
+
+done
+
+cat $pass2
+cat $pass3
+cat $pass4
diff --git a/contrib/ncurses/include/MKterm.h.awk.in b/contrib/ncurses/include/MKterm.h.awk.in
index efca636fb32e..8243aea52dbe 100644
--- a/contrib/ncurses/include/MKterm.h.awk.in
+++ b/contrib/ncurses/include/MKterm.h.awk.in
@@ -1,7 +1,6 @@
-
BEGIN {
print "/****************************************************************************"
- print " * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *"
+ print " * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. *"
print " * *"
print " * Permission is hereby granted, free of charge, to any person obtaining a *"
print " * copy of this software and associated documentation files (the *"
@@ -33,7 +32,7 @@ BEGIN {
print "/* and: Eric S. Raymond <esr@snark.thyrsus.com> */"
print "/****************************************************************************/"
print ""
- print "/* $Id: MKterm.h.awk.in,v 1.39 2001/03/24 21:53:32 tom Exp $ */"
+ print "/* $Id: MKterm.h.awk.in,v 1.41 2001/12/23 01:04:38 tom Exp $ */"
print ""
print "/*"
print "** term.h -- Definition of struct term"
@@ -52,22 +51,15 @@ BEGIN {
print "#endif"
print ""
print "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H"
- print " * and BROKEN_LINKER definition (based on the system for which this was"
- print " * configured)."
+ print " * definition (based on the system for which this was configured)."
print " */"
print ""
print "#undef HAVE_TERMIOS_H"
print "#define HAVE_TERMIOS_H 1/*default*/"
print ""
- print "#undef HAVE_TERMIO_H"
- print "#define HAVE_TERMIO_H 0/*default*/"
- print ""
print "#undef HAVE_TCGETATTR"
print "#define HAVE_TCGETATTR 1/*default*/"
print ""
- print "#undef BROKEN_LINKER"
- print "#define BROKEN_LINKER 0/*default*/"
- print ""
print "#undef NCURSES_CONST"
print "#define NCURSES_CONST @NCURSES_CONST@"
print ""
@@ -81,7 +73,7 @@ BEGIN {
print "#undef SET_TTY"
print "#undef GET_TTY"
print ""
- print "/* Assume Posix termio if we have the header and function */"
+ print "/* Assume POSIX termio if we have the header and function */"
print "#if HAVE_TERMIOS_H && HAVE_TCGETATTR"
print ""
print "#undef TERMIOS"
@@ -228,7 +220,7 @@ END {
print ""
print "typedef struct term { /* describe an actual terminal */"
print " TERMTYPE type; /* terminal type description */"
- print " short Filedes; /* file description being written to */"
+ print " short Filedes; /* file description being written to */"
print " TTY Ottyb, /* original state of the terminal */"
print " Nttyb; /* current state of the terminal */"
print " int _baudrate; /* used to compute padding */"
diff --git a/contrib/ncurses/include/Makefile.in b/contrib/ncurses/include/Makefile.in
index 32f14217c897..1a48a1700a86 100644
--- a/contrib/ncurses/include/Makefile.in
+++ b/contrib/ncurses/include/Makefile.in
@@ -1,4 +1,4 @@
-# $Id: Makefile.in,v 1.27 2001/03/24 19:53:31 tom Exp $
+# $Id: Makefile.in,v 1.35 2001/12/08 18:50:06 tom Exp $
##############################################################################
# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. #
# #
@@ -27,7 +27,7 @@
# authorization. #
##############################################################################
#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey 1996-2001
#
# Makefile for ncurses source code.
#
@@ -56,15 +56,20 @@ 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.h \
+ curses.head \
termcap.h \
unctrl.h
# These files are generated by this makefile
AUTO_SRC = \
+ curses.h \
hashsize.h \
ncurses_def.h \
parametrized.h \
@@ -73,21 +78,31 @@ AUTO_SRC = \
################################################################################
all \
libs \
+depend \
sources \
install :: $(AUTO_SRC)
-term.h: $(srcdir)/Caps MKterm.h.awk
- $(AWK) -f MKterm.h.awk $(srcdir)/Caps > $@
+curses.h : $(TERMINFO_CAPS) \
+ curses.head \
+ $(srcdir)/curses.tail \
+ $(srcdir)/MKkey_defs.sh
+ cat curses.head >$@
+ AWK=$(AWK) sh $(srcdir)/MKkey_defs.sh $(TERMINFO_CAPS) >>$@
+ sh -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi'
+ cat $(srcdir)/curses.tail >>$@
+
+term.h: $(TERMINFO_CAPS) MKterm.h.awk
+ $(AWK) -f MKterm.h.awk $(TERMINFO_CAPS) > $@
sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
-hashsize.h: $(srcdir)/Caps $(srcdir)/MKhashsize.sh
- sh $(srcdir)/MKhashsize.sh $(srcdir)/Caps >$@
+hashsize.h: $(TERMINFO_CAPS) $(srcdir)/MKhashsize.sh
+ sh $(srcdir)/MKhashsize.sh $(TERMINFO_CAPS) >$@
ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh
AWK=$(AWK) sh $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@
-parametrized.h: $(srcdir)/Caps $(srcdir)/MKparametrized.sh
- AWK=$(AWK) sh $(srcdir)/MKparametrized.sh $(srcdir)/Caps >$@
+parametrized.h: $(TERMINFO_CAPS) $(srcdir)/MKparametrized.sh
+ AWK=$(AWK) sh $(srcdir)/MKparametrized.sh $(TERMINFO_CAPS) >$@
tags:
ctags *.[ch]
@@ -96,7 +111,7 @@ tags:
@MAKE_UPPER_TAGS@ etags *.[ch]
mostlyclean ::
- -rm -f core tags TAGS *~ *.i *.ln *.atac trace
+ -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
clean :: mostlyclean
-rm -f $(AUTO_SRC)
diff --git a/contrib/ncurses/include/curses.h.in b/contrib/ncurses/include/curses.h.in
index b73d44f22c90..88028cce1431 100644
--- a/contrib/ncurses/include/curses.h.in
+++ b/contrib/ncurses/include/curses.h.in
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998,1999,2000,2001,2002 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -31,7 +31,7 @@
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
****************************************************************************/
-/* $Id: curses.h.in,v 1.97 2000/12/10 02:00:24 tom Exp $ */
+/* $Id: curses.h.in,v 1.128 2002/05/11 21:38:02 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
@@ -73,6 +73,9 @@
#undef NCURSES_SIZE_T
#define NCURSES_SIZE_T short
+#undef NCURSES_CH_T
+#define NCURSES_CH_T @NCURSES_CH_T@
+
typedef unsigned @cf_cv_typeof_chtype@ chtype;
#include <stdio.h>
@@ -85,6 +88,13 @@ typedef unsigned @cf_cv_typeof_chtype@ chtype;
/* XSI and SVr4 specify that curses implements 'bool'. However, C++ may also
* implement it. If so, we must use the C++ compiler's type to avoid conflict
* with other interfaces.
+ *
+ * A further complication is that <stdbool.h> may declare 'bool' to be a
+ * different type, such as an enum which is not necessarily compatible with
+ * C++. If we have <stdbool.h>, make 'bool' a macro, so users may #undef it.
+ * Otherwise, let it remain a typedef to avoid conflicts with other #define's.
+ * In either case, make a typedef for NCURSES_BOOL which can be used if needed
+ * from either C or C++.
*/
#undef TRUE
@@ -93,11 +103,24 @@ typedef unsigned @cf_cv_typeof_chtype@ chtype;
#undef FALSE
#define FALSE 0
+typedef @cf_cv_type_of_bool@ NCURSES_BOOL;
+
#if (!defined(__cplusplus) || !@cf_cv_builtin_bool@) && (!@cf_cv_cc_bool_type@)
+
+#if @cf_cv_header_stdbool_h@
+#include <stdbool.h>
+#endif
+
#undef bool
+
+#if @cf_cv_header_stdbool_h@
+#define bool NCURSES_BOOL
+#else
typedef @cf_cv_type_of_bool@ bool;
#endif
+#endif /* !__cplusplus, etc. */
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -139,7 +162,12 @@ extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
/* line graphics */
+#if @BROKEN_LINKER@
+extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void);
+#define acs_map (_nc_acs_map())
+#else
extern NCURSES_EXPORT_VAR(chtype) acs_map[];
+#endif
/* VT100 symbols begin here */
#define ACS_ULCORNER (acs_map['l']) /* upper left corner */
@@ -199,11 +227,19 @@ extern NCURSES_EXPORT_VAR(chtype) acs_map[];
#define ACS_SBSB ACS_VLINE
#define ACS_SSSS ACS_PLUS
-#if !defined(ERR) || ((ERR) != -1)
+#if defined(ERR) && ((ERR) != -1)
+#undef ERR
+#endif
+
+#if !defined(ERR)
#define ERR (-1)
#endif
-#if !defined(OK) || ((OK) != 0)
+#if defined(OK) && ((OK) != 0)
+#undef OK
+#endif
+
+#if !defined(OK)
#define OK (0)
#endif
@@ -234,6 +270,20 @@ typedef struct _win_st WINDOW;
typedef chtype attr_t; /* ...must be at least as wide as chtype */
#ifdef _XOPEN_SOURCE_EXTENDED
+
+#if @NCURSES_LIBUTF8@
+#ifdef mblen /* libutf8.h defines it w/o undefining first */
+#undef mblen
+#endif
+#include <libutf8.h>
+#define _WCHAR_T
+#define _WINT_T
+#endif
+
+#if @NCURSES_MBSTATE_T@
+#include <wchar.h> /* ...to get mbstate_t, etc. */
+#endif
+
#ifndef _WCHAR_T
typedef unsigned long wchar_t;
#endif /* _WCHAR_T */
@@ -248,15 +298,10 @@ typedef struct
wchar_t chars[CCHARW_MAX];
}
cchar_t;
+
#endif /* _XOPEN_SOURCE_EXTENDED */
-struct ldat
-{
- chtype *text; /* text of the line */
- NCURSES_SIZE_T firstchar; /* first changed character in the line */
- NCURSES_SIZE_T lastchar; /* last changed character in the line */
- NCURSES_SIZE_T oldindex; /* index of the line at last update */
-};
+struct ldat;
struct _win_st
{
@@ -274,14 +319,14 @@ struct _win_st
/* option values set by user */
bool _notimeout; /* no time out on function-key entry? */
- bool _clear; /* consider all data in the window invalid? */
- bool _leaveok; /* OK to not reset cursor on exit? */
- bool _scroll; /* OK to scroll this window? */
- bool _idlok; /* OK to use insert/delete line? */
- bool _idcok; /* OK to use insert/delete char? */
+ bool _clear; /* consider all data in the window invalid? */
+ bool _leaveok; /* OK to not reset cursor on exit? */
+ bool _scroll; /* OK to scroll this window? */
+ bool _idlok; /* OK to use insert/delete line? */
+ bool _idcok; /* OK to use insert/delete char? */
bool _immed; /* window in immed mode? (not yet used) */
bool _sync; /* window in sync mode? */
- bool _use_keypad; /* process function keys into KEY_ symbols? */
+ bool _use_keypad; /* process function keys into KEY_ symbols? */
int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */
struct ldat *_line; /* the actual line data */
@@ -304,6 +349,10 @@ struct _win_st
} _pad;
NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
+
+#ifdef _XOPEN_SOURCE_EXTENDED
+ cchar_t _bkgrnd; /* current background char/attribute pair */
+#endif
};
extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
@@ -324,15 +373,21 @@ extern NCURSES_EXPORT_VAR(char) ttytype[]; /* needed for backward compatibility
/*
* These functions are extensions - not in XSI Curses.
*/
+#if @NCURSES_EXT_FUNCS@
+extern NCURSES_EXPORT(bool) is_term_resized (int, int);
extern NCURSES_EXPORT(char *) keybound (int, int);
extern NCURSES_EXPORT(const char *) curses_version (void);
extern NCURSES_EXPORT(int) assume_default_colors (int, int);
extern NCURSES_EXPORT(int) define_key (char *, int);
extern NCURSES_EXPORT(int) keyok (int, bool);
+extern NCURSES_EXPORT(int) resize_term (int, int);
extern NCURSES_EXPORT(int) resizeterm (int, int);
extern NCURSES_EXPORT(int) use_default_colors (void);
extern NCURSES_EXPORT(int) use_extended_names (bool);
extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
+#else
+#define curses_version() NCURSES_VERSION
+#endif
/*
* GCC (and some other compilers) define '__attribute__'; we're using this
@@ -359,17 +414,21 @@ extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
* We cannot define these in ncurses_cfg.h, since they require parameters to be
* passed (that's non-portable).
*/
-#ifdef GCC_PRINTF
+#ifndef GCC_PRINTFLIKE
+#if defined(GCC_PRINTF) && !defined(printf)
#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
#else
#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
#endif
+#endif
-#ifdef GCC_SCANF
+#ifndef GCC_SCANFLIKE
+#if defined(GCC_SCANF) && !defined(scanf)
#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
#else
#define GCC_SCANFLIKE(fmt,var) /*nothing*/
#endif
+#endif
#ifndef GCC_NORETURN
#define GCC_NORETURN /* nothing */
@@ -391,13 +450,6 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) addwstr (const wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) add_wch (const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
@@ -409,18 +461,8 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-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*); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
@@ -446,41 +488,21 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) erasewchar (wchar_t*); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) getch (void); /* generated */
extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) getstr (char *); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) get_wch (wint_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) get_wstr (wint_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */
extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */
extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */
@@ -491,39 +513,19 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) innwstr (wchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) ins_wch (const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) inwstr (wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) in_wch (NCURSES_CONST cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) in_wchstr (NCURSES_CONST cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) in_wchnstr (NCURSES_CONST cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(char *) key_name (wchar_t); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */
extern NCURSES_EXPORT(char) killchar (void); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) killwchar (wchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */
extern NCURSES_EXPORT(char *) longname (void); /* implemented */
extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */
@@ -533,120 +535,52 @@ extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* gener
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* missing */
-extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvin_wch (int, int, NCURSES_CONST cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvin_wchstr (int, int, NCURSES_CONST cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, NCURSES_CONST cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) mvprintw (int,int, NCURSES_CONST char *,...) /* implemented */
GCC_PRINTFLIKE(3,4);
extern NCURSES_EXPORT(int) mvscanw (int,int, NCURSES_CONST char *,...) /* implemented */
GCC_SCANFLIKE(3,4);
extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* missing */
-extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* missing */
-extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, NCURSES_CONST cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, NCURSES_CONST cchar_t *,int); /* missing */
-extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, NCURSES_CONST cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, NCURSES_CONST char *,...) /* implemented */
GCC_PRINTFLIKE(4,5);
extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, NCURSES_CONST char *,...) /* implemented */
GCC_SCANFLIKE(4,5);
extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
@@ -664,9 +598,6 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */
extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */
extern NCURSES_EXPORT(int) printw (NCURSES_CONST char *,...) /* implemented */
@@ -680,7 +611,7 @@ 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 (*init)(WINDOW *, int)); /* 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);
@@ -691,9 +622,6 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
@@ -712,9 +640,6 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) standout (void); /* generated */
extern NCURSES_EXPORT(int) standend (void); /* generated */
extern NCURSES_EXPORT(int) start_color (void); /* implemented */
@@ -722,7 +647,6 @@ extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implem
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(attr_t) term_attrs (void); /* missing */
extern NCURSES_EXPORT(char *) termname (void); /* implemented */
extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *); /* implemented */
extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *); /* implemented */
@@ -733,21 +657,11 @@ extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */
extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* implemented */
extern NCURSES_EXPORT(int) typeahead (int); /* implemented */
extern NCURSES_EXPORT(int) ungetch (int); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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) vid_attr (attr_t, short, void *); /* generated:WIDEC */
extern NCURSES_EXPORT(int) vidputs (chtype, int (*)(int)); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) vwprintw (WINDOW *, NCURSES_CONST char *,va_list); /* implemented */
extern NCURSES_EXPORT(int) vw_printw (WINDOW *, NCURSES_CONST char *,va_list); /* generated */
extern NCURSES_EXPORT(int) vwscanw (WINDOW *, NCURSES_CONST char *,va_list); /* implemented */
@@ -757,13 +671,6 @@ extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *const,int); /* imp
extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */
extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *const,int); /* implemented */
extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int); /* missing */
-extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* missing */
-extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */
extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */
extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */
@@ -773,14 +680,7 @@ extern NCURSES_EXPORT(int) wattr_off (WINDOW *, NCURSES_CONST attr_t, void *); /
extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, short, void *); /* generated */
extern NCURSES_EXPORT(int) wbkgd (WINDOW *,const chtype); /* implemented */
extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-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*); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
@@ -790,49 +690,21 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */
extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *,wint_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *); /* missing */
-extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *); /* missing */
-extern NCURSES_EXPORT(int) win_wch (WINDOW *, NCURSES_CONST cchar_t *); /* missing */
-extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, NCURSES_CONST cchar_t *, int); /* missing */
-extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, NCURSES_CONST cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */
extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */
extern NCURSES_EXPORT(int) wprintw (WINDOW *, NCURSES_CONST char *,...) /* implemented */
@@ -849,19 +721,19 @@ 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 */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(wchar_t *) wunctrl (cchar_t *); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */
-#ifdef _XOPEN_SOURCE_EXTENDED
-extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* missing */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */
+/*
+ * vid_attr() was implemented originally based on the draft of XSI curses.
+ */
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define vid_attr(a,pair,opts) vidattr(a)
+#endif
/* attributes */
-#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + @cf_cv_widec_shift@))
+#define NCURSES_ATTR_SHIFT 8
+#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT))
#define A_NORMAL 0L
#define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
@@ -875,11 +747,6 @@ extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* gene
#define A_BOLD NCURSES_BITS(@cf_cv_1UL@,13)
#define A_ALTCHARSET NCURSES_BITS(@cf_cv_1UL@,14)
#define A_INVIS NCURSES_BITS(@cf_cv_1UL@,15)
-
-/* Tradeoff on 32-bit machines ('protect' vs widec). The others (e.g., left
- * highlight are not implemented in any terminal descriptions, anyway.
- */
-#if ((16 + @cf_cv_widec_shift@) < @cf_cv_shift_limit@)
#define A_PROTECT NCURSES_BITS(@cf_cv_1UL@,16)
#define A_HORIZONTAL NCURSES_BITS(@cf_cv_1UL@,17)
#define A_LEFT NCURSES_BITS(@cf_cv_1UL@,18)
@@ -887,18 +754,9 @@ extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* gene
#define A_RIGHT NCURSES_BITS(@cf_cv_1UL@,20)
#define A_TOP NCURSES_BITS(@cf_cv_1UL@,21)
#define A_VERTICAL NCURSES_BITS(@cf_cv_1UL@,22)
-#else
-#define A_PROTECT 0L
-#define A_HORIZONTAL 0L
-#define A_LEFT 0L
-#define A_LOW 0L
-#define A_RIGHT 0L
-#define A_TOP 0L
-#define A_VERTICAL 0L
-#endif
#define COLOR_PAIR(n) NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) (((a) & A_COLOR) >> @cf_cv_widec_shift@)
+#define PAIR_NUMBER(a) (((a) & A_COLOR) >> NCURSES_ATTR_SHIFT)
/*
* pseudo functions
@@ -943,7 +801,7 @@ extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* gene
#define wattron(win,at) wattr_on(win, at, (void *)0)
#define wattroff(win,at) wattr_off(win, at, (void *)0)
-#define wattrset(win,at) ((win)->_attrs = (at))
+#define wattrset(win,at) ((win)->_attrs = (at))
#define scroll(win) wscrl(win,1)
@@ -968,172 +826,108 @@ extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* gene
* pseudo functions for standard screen
*/
-#define addch(ch) waddch(stdscr,ch)
+#define addch(ch) waddch(stdscr,ch)
#define addchnstr(str,n) waddchnstr(stdscr,str,n)
#define addchstr(str) waddchstr(stdscr,str)
#define addnstr(str,n) waddnstr(stdscr,str,n)
-#define addstr(str) waddnstr(stdscr,str,-1)
-#define attroff(at) wattroff(stdscr,at)
-#define attron(at) wattron(stdscr,at)
-#define attrset(at) wattrset(stdscr,at)
+#define addstr(str) waddnstr(stdscr,str,-1)
+#define attroff(at) wattroff(stdscr,at)
+#define attron(at) wattron(stdscr,at)
+#define attrset(at) wattrset(stdscr,at)
+#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o)
+#define attr_off(a,o) wattr_off(stdscr,a,o)
+#define attr_on(a,o) wattr_on(stdscr,a,o)
+#define attr_set(a,c,o) wattr_set(stdscr,a,c,o)
#define bkgd(ch) wbkgd(stdscr,ch)
#define bkgdset(ch) wbkgdset(stdscr,ch)
-#define clear() wclear(stdscr)
-#define clrtobot() wclrtobot(stdscr)
-#define clrtoeol() wclrtoeol(stdscr)
+#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o)
+#define clear() wclear(stdscr)
+#define clrtobot() wclrtobot(stdscr)
+#define clrtoeol() wclrtoeol(stdscr)
#define color_set(c,o) wcolor_set(stdscr,c,o)
-#define delch() wdelch(stdscr)
-#define deleteln() winsdelln(stdscr,-1)
+#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 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 insch(c) winsch(stdscr,c)
#define insdelln(n) winsdelln(stdscr,n)
-#define insertln() winsdelln(stdscr,1)
+#define insertln() winsdelln(stdscr,1)
#define insnstr(s,n) winsnstr(stdscr,s,n)
#define insstr(s) winsstr(stdscr,s)
#define instr(s) winstr(stdscr,s)
-#define move(y,x) wmove(stdscr,y,x)
-#define refresh() wrefresh(stdscr)
+#define move(y,x) wmove(stdscr,y,x)
+#define refresh() wrefresh(stdscr)
#define scrl(n) wscrl(stdscr,n)
-#define setscrreg(t,b) wsetscrreg(stdscr,t,b)
-#define standend() wstandend(stdscr)
-#define standout() wstandout(stdscr)
+#define setscrreg(t,b) wsetscrreg(stdscr,t,b)
+#define standend() wstandend(stdscr)
+#define standout() wstandout(stdscr)
#define timeout(delay) wtimeout(stdscr,delay)
-#define wdeleteln(win) winsdelln(win,-1)
-#define winsertln(win) winsdelln(win,1)
+#define wdeleteln(win) winsdelln(win,-1)
+#define winsertln(win) winsdelln(win,1)
/*
* mv functions
*/
-#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
+#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
#define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
-#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
+#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
#define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
-#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
-#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win))
-#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))
-#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
-#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
-#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
-#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))
+#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
+#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win))
+#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
+#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))
+#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
+#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
+#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
+#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))
#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
-#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
+#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
-#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
+#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
-#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
+#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n)
#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str)
#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n)
-#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
-#define mvdelch(y,x) mvwdelch(stdscr,y,x)
-#define mvgetch(y,x) mvwgetch(stdscr,y,x)
+#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
+#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o)
+#define mvdelch(y,x) mvwdelch(stdscr,y,x)
+#define mvgetch(y,x) mvwgetch(stdscr,y,x)
#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)
-#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
+#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n)
-#define mvinch(y,x) mvwinch(stdscr,y,x)
+#define mvinch(y,x) mvwinch(stdscr,y,x)
#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n)
#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s)
#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n)
-#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
+#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n)
#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s)
#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s)
#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)
/*
- * XSI curses macros for XPG4 conformance.
- * The underlying functions needed to make these work are:
- * waddnwstr(), waddchnwstr(), wadd_wch(), wborder_set(), wchgat(),
- * wecho_wchar(), wgetn_wstr(), wget_wch(), whline_set(), vhline_set(),
- * winnwstr(), wins_nwstr(), wins_wch(), win_wch(), win_wchnstr().
- * Except for wchgat(), these are not yet implemented. They will be someday.
+ * Some wide-character functions do not depend on the extensions.
*/
-#define add_wch(c) wadd_wch(stdscr,c)
-#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n)
-#define addwstr(wstr,n) waddnwstr(stdscr,wstr,-1)
-#define attr_get(a,pair,opts) wattr_get(stdscr,a,pair,opts)
-#define attr_off(a,opts) wattr_off(stdscr,a,opts)
-#define attr_on(a,opts) wattr_on(stdscr,a,opts)
-#define attr_set(a,pair,opts) wattr_set(stdscr,a,pair,opts)
-#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0)
-#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o)
-#define echo_wchar(c) wecho_wchar(stdscr,c)
-#define getbkgd(win) ((win)->_bkgd)
-#define get_wch(c) wget_wch(stdscr,c)
-#define get_wstr(t) wgetn_wstr(stdscr,t,-1)
-#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n)
-#define hline_set(c,n) whline_set(stdscr,c,n)
-#define in_wch(c) win_wch(stdscr,c)
-#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n)
-#define in_wchstr(c) win_wchnstr(stdscr,c,-1)
-#define innwstr(c,n) winnwstr(stdscr,c,n)
-#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n)
-#define ins_wch(c) wins_wch(stdscr,c)
-#define ins_wstr(t) wins_nwstr(stdscr,t,-1)
-#define inwstr(c) winnwstr(stdscr,c,-1)
-
-#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c)
-#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n)
-#define mvaddwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,-1)
-#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o)
-#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c)
-#define mvget_wstr(y,x,t) mvwgetn_wstr(stdscr,y,x,t,-1)
-#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n)
-#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n)
-#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c)
-#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n)
-#define mvin_wchstr(y,x,c) mvwin_wchnstr(stdscr,y,x,c,-1)
-#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n)
-#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n)
-#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c)
-#define mvins_wstr(y,x,t) mvwins_nwstr(stdscr,y,x,t,-1)
-#define mvinwstr(y,x,c) mvwinnwstr(stdscr,y,x,c,-1)
-#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n)
-
-#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(stdscr,c))
-#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(stdscr,wstr,n))
-#define mvwaddwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(stdscr,wstr,-1))
-#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
-#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
-#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,-1))
-#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
-#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
-#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
-#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(stdscr,c,n))
-#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(stdscr,c,-1))
-#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(stdscr,c,n))
-#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(stdscr,t,n))
-#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(stdscr,c))
-#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(stdscr,t,-1))
-#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winnwstr(stdscr,c,-1))
-#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
+#define getbkgd(win) ((win)->_bkgd)
#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
-#define vid_attr(a,pair,opts) vidattr(a)
-#define vline_set(c,n) wvline_set(stdscr,c,n)
-#define waddwstr(win,wstr,n) waddnwstr(win,wstr,-1)
#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
(void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
OK)
-#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
-#define win_wchstr(w,c) win_wchnstr(w,c,-1)
-#define wins_wstr(w,t) wins_nwstr(w,t,-1)
-#define winwstr(w,c) winnwstr(w,c,-1)
-
/*
* XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
@@ -1145,228 +939,28 @@ extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* gene
#define vw_scanw vwscanw
/*
+ * Export fallback function for use in C++ binding.
+ */
+#if !@HAVE_VSSCANF@
+#define vsscanf(a,b,c) _nc_vsscanf(a,b,c)
+NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
+#endif
+
+/*
* Pseudo-character tokens outside ASCII range. The curses wgetch() function
* will return any given one of these only if the corresponding k- capability
* is defined in your terminal's terminfo entry.
+ *
+ * Some keys (KEY_A1, etc) are arranged like this:
+ * a1 up a3
+ * left b2 right
+ * c1 down c3
+ *
+ * A few key codes do not depend upon the terminfo entry.
*/
#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */
#define KEY_MIN 0401 /* Minimum curses key */
-#define KEY_BREAK 0401 /* Break key (unreliable) */
-#define KEY_DOWN 0402 /* Down-arrow */
-#define KEY_UP 0403 /* Up-arrow */
-#define KEY_LEFT 0404 /* Left-arrow */
-#define KEY_RIGHT 0405 /* Right-arrow */
-#define KEY_HOME 0406 /* Home key (upward+left arrow) */
-#define KEY_BACKSPACE 0407 /* Backspace (unreliable) */
-#define KEY_F0 0410 /* Function keys. Space for 64 */
-#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */
-#define KEY_DL 0510 /* Delete line */
-#define KEY_IL 0511 /* Insert line */
-#define KEY_DC 0512 /* Delete character */
-#define KEY_IC 0513 /* Insert char or enter insert mode */
-#define KEY_EIC 0514 /* Exit insert char mode */
-#define KEY_CLEAR 0515 /* Clear screen */
-#define KEY_EOS 0516 /* Clear to end of screen */
-#define KEY_EOL 0517 /* Clear to end of line */
-#define KEY_SF 0520 /* Scroll 1 line forward */
-#define KEY_SR 0521 /* Scroll 1 line backward (reverse) */
-#define KEY_NPAGE 0522 /* Next page */
-#define KEY_PPAGE 0523 /* Previous page */
-#define KEY_STAB 0524 /* Set tab */
-#define KEY_CTAB 0525 /* Clear tab */
-#define KEY_CATAB 0526 /* Clear all tabs */
-#define KEY_ENTER 0527 /* Enter or send (unreliable) */
-#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */
-#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */
-#define KEY_PRINT 0532 /* Print */
-#define KEY_LL 0533 /* Home down or bottom (lower left) */
-
-/* The keypad is arranged like this: */
-/* a1 up a3 */
-/* left b2 right */
-/* c1 down c3 */
-
-#define KEY_A1 0534 /* Upper left of keypad */
-#define KEY_A3 0535 /* Upper right of keypad */
-#define KEY_B2 0536 /* Center of keypad */
-#define KEY_C1 0537 /* Lower left of keypad */
-#define KEY_C3 0540 /* Lower right of keypad */
-#define KEY_BTAB 0541 /* Back tab */
-#define KEY_BEG 0542 /* Beg (beginning) */
-#define KEY_CANCEL 0543 /* Cancel */
-#define KEY_CLOSE 0544 /* Close */
-#define KEY_COMMAND 0545 /* Cmd (command) */
-#define KEY_COPY 0546 /* Copy */
-#define KEY_CREATE 0547 /* Create */
-#define KEY_END 0550 /* End */
-#define KEY_EXIT 0551 /* Exit */
-#define KEY_FIND 0552 /* Find */
-#define KEY_HELP 0553 /* Help */
-#define KEY_MARK 0554 /* Mark */
-#define KEY_MESSAGE 0555 /* Message */
-#define KEY_MOVE 0556 /* Move */
-#define KEY_NEXT 0557 /* Next */
-#define KEY_OPEN 0560 /* Open */
-#define KEY_OPTIONS 0561 /* Options */
-#define KEY_PREVIOUS 0562 /* Prev (previous) */
-#define KEY_REDO 0563 /* Redo */
-#define KEY_REFERENCE 0564 /* Ref (reference) */
-#define KEY_REFRESH 0565 /* Refresh */
-#define KEY_REPLACE 0566 /* Replace */
-#define KEY_RESTART 0567 /* Restart */
-#define KEY_RESUME 0570 /* Resume */
-#define KEY_SAVE 0571 /* Save */
-#define KEY_SBEG 0572 /* Shifted Beg (beginning) */
-#define KEY_SCANCEL 0573 /* Shifted Cancel */
-#define KEY_SCOMMAND 0574 /* Shifted Command */
-#define KEY_SCOPY 0575 /* Shifted Copy */
-#define KEY_SCREATE 0576 /* Shifted Create */
-#define KEY_SDC 0577 /* Shifted Delete char */
-#define KEY_SDL 0600 /* Shifted Delete line */
-#define KEY_SELECT 0601 /* Select */
-#define KEY_SEND 0602 /* Shifted End */
-#define KEY_SEOL 0603 /* Shifted Clear line */
-#define KEY_SEXIT 0604 /* Shifted Dxit */
-#define KEY_SFIND 0605 /* Shifted Find */
-#define KEY_SHELP 0606 /* Shifted Help */
-#define KEY_SHOME 0607 /* Shifted Home */
-#define KEY_SIC 0610 /* Shifted Input */
-#define KEY_SLEFT 0611 /* Shifted Left arrow */
-#define KEY_SMESSAGE 0612 /* Shifted Message */
-#define KEY_SMOVE 0613 /* Shifted Move */
-#define KEY_SNEXT 0614 /* Shifted Next */
-#define KEY_SOPTIONS 0615 /* Shifted Options */
-#define KEY_SPREVIOUS 0616 /* Shifted Prev */
-#define KEY_SPRINT 0617 /* Shifted Print */
-#define KEY_SREDO 0620 /* Shifted Redo */
-#define KEY_SREPLACE 0621 /* Shifted Replace */
-#define KEY_SRIGHT 0622 /* Shifted Right arrow */
-#define KEY_SRSUME 0623 /* Shifted Resume */
-#define KEY_SSAVE 0624 /* Shifted Save */
-#define KEY_SSUSPEND 0625 /* Shifted Suspend */
-#define KEY_SUNDO 0626 /* Shifted Undo */
-#define KEY_SUSPEND 0627 /* Suspend */
-#define KEY_UNDO 0630 /* Undo */
-#define KEY_MOUSE 0631 /* Mouse event has occurred */
+#define KEY_BREAK 0401 /* Break key (unreliable) */
+#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */
+#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */
#define KEY_RESIZE 0632 /* Terminal resize event */
-#define KEY_MAX 0777 /* Maximum key value */
-
-/* mouse interface */
-#define NCURSES_MOUSE_VERSION 1
-
-/* event masks */
-#define BUTTON1_RELEASED 000000000001L
-#define BUTTON1_PRESSED 000000000002L
-#define BUTTON1_CLICKED 000000000004L
-#define BUTTON1_DOUBLE_CLICKED 000000000010L
-#define BUTTON1_TRIPLE_CLICKED 000000000020L
-#define BUTTON1_RESERVED_EVENT 000000000040L
-#define BUTTON2_RELEASED 000000000100L
-#define BUTTON2_PRESSED 000000000200L
-#define BUTTON2_CLICKED 000000000400L
-#define BUTTON2_DOUBLE_CLICKED 000000001000L
-#define BUTTON2_TRIPLE_CLICKED 000000002000L
-#define BUTTON2_RESERVED_EVENT 000000004000L
-#define BUTTON3_RELEASED 000000010000L
-#define BUTTON3_PRESSED 000000020000L
-#define BUTTON3_CLICKED 000000040000L
-#define BUTTON3_DOUBLE_CLICKED 000000100000L
-#define BUTTON3_TRIPLE_CLICKED 000000200000L
-#define BUTTON3_RESERVED_EVENT 000000400000L
-#define BUTTON4_RELEASED 000001000000L
-#define BUTTON4_PRESSED 000002000000L
-#define BUTTON4_CLICKED 000004000000L
-#define BUTTON4_DOUBLE_CLICKED 000010000000L
-#define BUTTON4_TRIPLE_CLICKED 000020000000L
-#define BUTTON4_RESERVED_EVENT 000040000000L
-#define BUTTON_CTRL 000100000000L
-#define BUTTON_SHIFT 000200000000L
-#define BUTTON_ALT 000400000000L
-#define ALL_MOUSE_EVENTS 000777777777L
-#define REPORT_MOUSE_POSITION 001000000000L
-
-/* macros to extract single event-bits from masks */
-#define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1))))
-#define BUTTON_PRESS(e, x) ((e) & (002 << (6 * ((x) - 1))))
-#define BUTTON_CLICK(e, x) ((e) & (004 << (6 * ((x) - 1))))
-#define BUTTON_DOUBLE_CLICK(e, x) ((e) & (010 << (6 * ((x) - 1))))
-#define BUTTON_TRIPLE_CLICK(e, x) ((e) & (020 << (6 * ((x) - 1))))
-#define BUTTON_RESERVED_EVENT(e, x) ((e) & (040 << (6 * ((x) - 1))))
-
-typedef unsigned long mmask_t;
-
-typedef struct
-{
- short id; /* ID to distinguish multiple devices */
- int x, y, z; /* event coordinates (character-cell) */
- mmask_t bstate; /* button state bits */
-}
-MEVENT;
-
-extern NCURSES_EXPORT(int) getmouse (MEVENT *);
-extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
-extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
-extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
-extern NCURSES_EXPORT(int) mouseinterval (int);
-extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW* win,int* y, int* x, bool to_screen);
-
-#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 (const unsigned char);
-extern NCURSES_EXPORT(char *) _tracechtype (chtype);
-extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
-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_MAXIMUM 0xffff /* 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
-
-/* these names conflict with STL */
-#undef box
-#undef clear
-#undef erase
-#undef move
-#undef refresh
-
-}
-#endif
-
-#endif /* __NCURSES_H */
diff --git a/contrib/ncurses/include/curses.tail b/contrib/ncurses/include/curses.tail
new file mode 100644
index 000000000000..589a2adb7a99
--- /dev/null
+++ b/contrib/ncurses/include/curses.tail
@@ -0,0 +1,134 @@
+/* $Id: curses.tail,v 1.5 2001/12/30 00:01:16 tom Exp $ */
+
+/* mouse interface */
+#define NCURSES_MOUSE_VERSION 1
+
+/* event masks */
+#define BUTTON1_RELEASED 000000000001L
+#define BUTTON1_PRESSED 000000000002L
+#define BUTTON1_CLICKED 000000000004L
+#define BUTTON1_DOUBLE_CLICKED 000000000010L
+#define BUTTON1_TRIPLE_CLICKED 000000000020L
+#define BUTTON1_RESERVED_EVENT 000000000040L
+#define BUTTON2_RELEASED 000000000100L
+#define BUTTON2_PRESSED 000000000200L
+#define BUTTON2_CLICKED 000000000400L
+#define BUTTON2_DOUBLE_CLICKED 000000001000L
+#define BUTTON2_TRIPLE_CLICKED 000000002000L
+#define BUTTON2_RESERVED_EVENT 000000004000L
+#define BUTTON3_RELEASED 000000010000L
+#define BUTTON3_PRESSED 000000020000L
+#define BUTTON3_CLICKED 000000040000L
+#define BUTTON3_DOUBLE_CLICKED 000000100000L
+#define BUTTON3_TRIPLE_CLICKED 000000200000L
+#define BUTTON3_RESERVED_EVENT 000000400000L
+#define BUTTON4_RELEASED 000001000000L
+#define BUTTON4_PRESSED 000002000000L
+#define BUTTON4_CLICKED 000004000000L
+#define BUTTON4_DOUBLE_CLICKED 000010000000L
+#define BUTTON4_TRIPLE_CLICKED 000020000000L
+#define BUTTON4_RESERVED_EVENT 000040000000L
+#define BUTTON_CTRL 000100000000L
+#define BUTTON_SHIFT 000200000000L
+#define BUTTON_ALT 000400000000L
+#define ALL_MOUSE_EVENTS 000777777777L
+#define REPORT_MOUSE_POSITION 001000000000L
+
+/* macros to extract single event-bits from masks */
+#define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1))))
+#define BUTTON_PRESS(e, x) ((e) & (002 << (6 * ((x) - 1))))
+#define BUTTON_CLICK(e, x) ((e) & (004 << (6 * ((x) - 1))))
+#define BUTTON_DOUBLE_CLICK(e, x) ((e) & (010 << (6 * ((x) - 1))))
+#define BUTTON_TRIPLE_CLICK(e, x) ((e) & (020 << (6 * ((x) - 1))))
+#define BUTTON_RESERVED_EVENT(e, x) ((e) & (040 << (6 * ((x) - 1))))
+
+typedef unsigned long mmask_t;
+
+typedef struct
+{
+ short id; /* ID to distinguish multiple devices */
+ int x, y, z; /* event coordinates (character-cell) */
+ mmask_t bstate; /* button state bits */
+}
+MEVENT;
+
+extern NCURSES_EXPORT(int) getmouse (MEVENT *);
+extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
+extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
+extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
+extern NCURSES_EXPORT(int) mouseinterval (int);
+extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW* win,int* y, int* x, bool to_screen);
+extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */
+
+#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
+
+/* other non-XSI functions */
+
+extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */
+extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? */
+
+/* Debugging : use with libncurses_g.a */
+
+extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT(void) _tracedump (const char *, WINDOW *);
+extern NCURSES_EXPORT(char *) _traceattr (attr_t);
+extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype);
+extern NCURSES_EXPORT(char *) _nc_tracebits (void);
+extern NCURSES_EXPORT(char *) _tracechar (int);
+extern NCURSES_EXPORT(char *) _tracechtype (chtype);
+extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
+#ifdef _XOPEN_SOURCE_EXTENDED
+#define _tracech_t _tracecchar_t
+extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
+#define _tracech_t2 _tracecchar_t2
+extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *);
+#else
+#define _tracech_t _tracechtype
+#define _tracech_t2 _tracechtype2
+#endif
+extern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *);
+extern NCURSES_EXPORT(void) trace (const unsigned int);
+
+/* trace masks */
+#define TRACE_DISABLE 0x0000 /* turn off tracing */
+#define TRACE_TIMES 0x0001 /* trace user and system times of updates */
+#define TRACE_TPUTS 0x0002 /* trace tputs calls */
+#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */
+#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */
+#define TRACE_CHARPUT 0x0010 /* trace all character outputs */
+#define TRACE_ORDINARY 0x001F /* trace all update actions */
+#define TRACE_CALLS 0x0020 /* trace all curses calls */
+#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */
+#define TRACE_IEVENT 0x0080 /* trace low-level input processing */
+#define TRACE_BITS 0x0100 /* trace state of TTY control bits */
+#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */
+#define TRACE_CCALLS 0x0400 /* trace per-character calls */
+#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */
+#define TRACE_ATTRS 0x1000 /* trace attribute updates */
+#define TRACE_MAXIMUM 0xffff /* maximum trace level */
+
+#if defined(TRACE) || defined(NCURSES_TEST)
+extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */
+#ifdef _XOPEN_SOURCE_EXTENDED
+extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+#endif
+extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */
+#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */
+#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */
+#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */
+#endif
+
+#ifdef __cplusplus
+
+/* these names conflict with STL */
+#undef box
+#undef clear
+#undef erase
+#undef move
+#undef refresh
+
+}
+#endif
+
+#endif /* __NCURSES_H */
diff --git a/contrib/ncurses/include/curses.wide b/contrib/ncurses/include/curses.wide
new file mode 100644
index 000000000000..c5577541ba44
--- /dev/null
+++ b/contrib/ncurses/include/curses.wide
@@ -0,0 +1,237 @@
+
+#ifdef _XOPEN_SOURCE_EXTENDED
+
+/* $Id: curses.wide,v 1.23 2002/05/11 22:25:33 tom Exp $ */
+
+extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
+
+#define WACS_BSSB (&_nc_wacs['l'])
+#define WACS_SSBB (&_nc_wacs['m'])
+#define WACS_BBSS (&_nc_wacs['k'])
+#define WACS_SBBS (&_nc_wacs['j'])
+#define WACS_SBSS (&_nc_wacs['u'])
+#define WACS_SSSB (&_nc_wacs['t'])
+#define WACS_SSBS (&_nc_wacs['v'])
+#define WACS_BSSS (&_nc_wacs['w'])
+#define WACS_BSBS (&_nc_wacs['q'])
+#define WACS_SBSB (&_nc_wacs['x'])
+#define WACS_SSSS (&_nc_wacs['n'])
+
+#define WACS_ULCORNER WACS_BSSB
+#define WACS_LLCORNER WACS_SSBB
+#define WACS_URCORNER WACS_BBSS
+#define WACS_LRCORNER WACS_SBBS
+#define WACS_RTEE WACS_SBSS
+#define WACS_LTEE WACS_SSSB
+#define WACS_BTEE WACS_SSBS
+#define WACS_TTEE WACS_BSSS
+#define WACS_HLINE WACS_BSBS
+#define WACS_VLINE WACS_SBSB
+#define WACS_PLUS WACS_SSSS
+
+#define WACS_S1 (&_nc_wacs['o']) /* scan line 1 */
+#define WACS_S9 (&_nc_wacs['s']) /* scan line 9 */
+#define WACS_DIAMOND (&_nc_wacs['`']) /* diamond */
+#define WACS_CKBOARD (&_nc_wacs['a']) /* checker board */
+#define WACS_DEGREE (&_nc_wacs['f']) /* degree symbol */
+#define WACS_PLMINUS (&_nc_wacs['g']) /* plus/minus */
+#define WACS_BULLET (&_nc_wacs['~']) /* bullet */
+
+ /* Teletype 5410v1 symbols */
+#define WACS_LARROW (&_nc_wacs[',']) /* arrow left */
+#define WACS_RARROW (&_nc_wacs['+']) /* arrow right */
+#define WACS_DARROW (&_nc_wacs['.']) /* arrow down */
+#define WACS_UARROW (&_nc_wacs['-']) /* arrow up */
+#define WACS_BOARD (&_nc_wacs['h']) /* board of squares */
+#define WACS_LANTERN (&_nc_wacs['i']) /* lantern symbol */
+#define WACS_BLOCK (&_nc_wacs['0']) /* solid square block */
+
+ /* ncurses extensions */
+#define WACS_S3 (&_nc_wacs['p']) /* scan line 3 */
+#define WACS_S7 (&_nc_wacs['r']) /* scan line 7 */
+#define WACS_LEQUAL (&_nc_wacs['y']) /* less/equal */
+#define WACS_GEQUAL (&_nc_wacs['z']) /* greater/equal */
+#define WACS_PI (&_nc_wacs['{']) /* Pi */
+#define WACS_NEQUAL (&_nc_wacs['|']) /* not equal */
+#define WACS_STERLING (&_nc_wacs['}']) /* UK pound sign */
+
+/*
+ * Function prototypes for wide-character operations.
+ *
+ * "generated" comments should include ":WIDEC" to make the corresponding
+ * functions ifdef'd in lib_gen.c
+ *
+ * "implemented" comments do not need this marker.
+ */
+
+extern NCURSES_EXPORT(int) add_wch (const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) addwstr (const wchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) erasewchar (wchar_t*); /* implemented:WIDEC */
+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 (NCURSES_CONST cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchnstr (NCURSES_CONST cchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchstr (NCURSES_CONST 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(char*) key_name (wchar_t); /* implemented */
+extern NCURSES_EXPORT(int) killwchar (wchar_t *); /* implemented:WIDEC */
+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, NCURSES_CONST cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, NCURSES_CONST cchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchstr (int, int, NCURSES_CONST 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, NCURSES_CONST cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, NCURSES_CONST cchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, NCURSES_CONST cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* missing */
+extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *); /* implemented */
+extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* missing */
+extern NCURSES_EXPORT(attr_t) term_attrs (void); /* implemented:WIDEC */
+extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* implemented:WIDEC */
+extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *); /* implemented:WIDEC */
+extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* implemented:WIDEC */
+extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *); /* implemented */
+extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* implemented */
+extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int); /* implemented */
+extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *); /* implemented */
+extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *); /* implemented */
+extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* implemented */
+extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *); /* implemented */
+extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *); /* implemented */
+extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *); /* implemented */
+extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *,wint_t *, int); /* implemented */
+extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int); /* implemented */
+extern NCURSES_EXPORT(int) win_wch (WINDOW *, NCURSES_CONST cchar_t *); /* implemented */
+extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, NCURSES_CONST cchar_t *, int); /* implemented */
+extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, NCURSES_CONST cchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int); /* implemented */
+extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int); /* implemented */
+extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *); /* implemented */
+extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *); /* implemented */
+extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *); /* implemented */
+extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* implemented */
+
+/*
+ * XSI curses macros for XPG4 conformance.
+ */
+#define add_wch(c) wadd_wch(stdscr,c)
+#define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n)
+#define add_wchstr(str) wadd_wchstr(stdscr,str)
+#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n)
+#define addwstr(wstr) waddwstr(stdscr,wstr)
+#define bkgrnd(c) wbkgrnd(stdscr,c)
+#define bkgrndset(c) wbkgrndset(stdscr,c)
+#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
+#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0)
+#define echo_wchar(c) wecho_wchar(stdscr,c)
+#define get_wch(c) wget_wch(stdscr,c)
+#define get_wstr(t) wget_wstr(stdscr,t)
+#define getbkgrnd(wch) wgetbkgrnd(stdscr,wch)
+#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n)
+#define hline_set(c,n) whline_set(stdscr,c,n)
+#define in_wch(c) win_wch(stdscr,c)
+#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n)
+#define in_wchstr(c) win_wchstr(stdscr,c)
+#define innwstr(c,n) winnwstr(stdscr,c,n)
+#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n)
+#define ins_wch(c) wins_wch(stdscr,c)
+#define ins_wstr(t) wins_wstr(stdscr,t)
+#define inwstr(c) winwstr(stdscr,c)
+#define vid_attr(a,pair,opts) vidattr(a)
+#define vline_set(c,n) wvline_set(stdscr,c,n)
+#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1)
+#define waddwstr(win,wstr) waddnwstr(win,wstr,-1)
+#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
+#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
+#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
+#define win_wchstr(w,c) win_wchnstr(w,c,-1)
+#define wins_wstr(w,t) wins_nwstr(w,t,-1)
+
+#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c)
+#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n)
+#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s)
+#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n)
+#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr)
+#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c)
+#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t)
+#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n)
+#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n)
+#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c)
+#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n)
+#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c)
+#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n)
+#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n)
+#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c)
+#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t)
+#define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c)
+#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n)
+
+#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
+#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
+#define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
+#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
+#define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
+#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
+#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
+#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
+#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
+#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
+#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
+#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
+#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
+#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
+#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
+#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
+#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
+#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
+
+#endif /* _XOPEN_SOURCE_EXTENDED */
diff --git a/contrib/ncurses/include/edit_cfg.sh b/contrib/ncurses/include/edit_cfg.sh
index ef9694cb83ee..8d64fee18013 100755
--- a/contrib/ncurses/include/edit_cfg.sh
+++ b/contrib/ncurses/include/edit_cfg.sh
@@ -1,7 +1,7 @@
#!/bin/sh
-# $Id: edit_cfg.sh,v 1.10 2000/09/09 20:29:58 tom Exp $
+# $Id: edit_cfg.sh,v 1.12 2001/12/23 00:52:40 tom Exp $
##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc. #
+# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
@@ -48,18 +48,20 @@ do
mv $2 $BAK
if ( grep "[ ]$name[ ]" $1 2>&1 >$TMP )
then
- sed -e 's@#define '$name'.*$@'"`cat $TMP`@" $BAK >$2
- elif test "$name" = "NCURSES_CONST" ; then
- sed -e 's/define '$name'.*$/define '$name' \/\*nothing\*\//' $BAK >$2
+ value=1
else
- sed -e 's/define '$name'.*$/define '$name' 0/' $BAK >$2
+ 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
- echo '** same: '$name
mv $BAK $2
else
- echo '** edit: '$name
rm -f $BAK
fi
done
diff --git a/contrib/ncurses/include/nc_alloc.h b/contrib/ncurses/include/nc_alloc.h
index 5ac5a78d3bd6..c7317a096c52 100644
--- a/contrib/ncurses/include/nc_alloc.h
+++ b/contrib/ncurses/include/nc_alloc.h
@@ -29,7 +29,7 @@
/****************************************************************************
* Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
****************************************************************************/
-/* $Id: nc_alloc.h,v 1.8 2000/04/08 23:42:57 tom Exp $ */
+/* $Id: nc_alloc.h,v 1.10 2001/12/08 23:49:44 tom Exp $ */
#ifndef NC_ALLOC_included
#define NC_ALLOC_included 1
@@ -66,14 +66,14 @@ extern void _nc_leaks_dump_entry(void);
#endif
#ifndef ExitProgram
-#define ExitProgram(code) return code
+#define ExitProgram(code) exit(code)
#endif
/* doalloc.c */
-extern void *_nc_doalloc(void *, size_t);
+extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t);
#if !HAVE_STRDUP
#define strdup _nc_strdup
-extern char *_nc_strdup(const char *);
+extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
#endif
#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
diff --git a/contrib/ncurses/include/ncurses_defs b/contrib/ncurses/include/ncurses_defs
index 76bfcae52f1e..f4c46cb2c1cf 100644
--- a/contrib/ncurses/include/ncurses_defs
+++ b/contrib/ncurses/include/ncurses_defs
@@ -1,6 +1,6 @@
-# $Id: ncurses_defs,v 1.7 2001/04/07 22:53:10 tom Exp $
+# $Id: ncurses_defs,v 1.14 2002/05/11 19:18:32 tom Exp $
##############################################################################
-# Copyright (c) 2000 Free Software Foundation, Inc. #
+# Copyright (c) 2000-2001,2002 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
@@ -37,6 +37,8 @@ CC_HAS_INLINE_FUNCS
CC_HAS_PROTOS
CPP_HAS_PARAM_INIT
CPP_HAS_VSCAN_FUNC
+CURSES_ACS_ARRAY acs_map
+CURSES_WACS_ARRAY _nc_wacs
DECL_ERRNO
ETIP_NEEDS_MATH_H
GCC_NORETURN /* nothing */
@@ -51,6 +53,7 @@ HAVE_FORM_H
HAVE_GETCWD
HAVE_GETEGID
HAVE_GETEUID
+HAVE_GETNSTR
HAVE_GETOPT_H
HAVE_GETTIMEOFDAY
HAVE_GETTTYNAM
@@ -109,6 +112,7 @@ HAVE_TERMIO_H
HAVE_TIMES
HAVE_TTYENT_H
HAVE_TYPEINFO
+HAVE_TYPE_ATTR_T
HAVE_TYPE_SIGACTION
HAVE_UNISTD_H
HAVE_UNLINK
@@ -118,11 +122,13 @@ HAVE_VSNPRINTF
HAVE_VSSCANF
HAVE_WORKING_POLL
HAVE_WRESIZE
+HAVE__DOSCAN
MIXEDCASE_FILENAMES
NCURSES_EXPANDED
NCURSES_EXT_FUNCS
NCURSES_NOMACROS
NCURSES_NO_PADDING
+NCURSES_PATHSEP ':'
NDEBUG
NEED_PTEM_H
NO_LEAKS
@@ -133,6 +139,8 @@ SVR4_ACTION
SVR4_TERMIO
SYSTEM_NAME "unknown"
TERMINFO "none"
+TERMPATH "none"
+TIME_WITH_SYS_TIME
TYPEOF_CHTYPE
USE_COLORFGBG
USE_DATABASE
@@ -149,6 +157,8 @@ USE_SCROLL_HINTS
USE_SIGWINCH
USE_STDIO_VSCAN
USE_STRSTREAM_VSCAN
+USE_STRSTREAM_VSCAN_CAST
USE_SYMLINKS
+USE_TERMCAP
USE_WIDEC_SUPPORT
USE_XMC_SUPPORT
diff --git a/contrib/ncurses/include/ncurses_dll.h b/contrib/ncurses/include/ncurses_dll.h
index 723d21e001bc..c961c3e0a49e 100644
--- a/contrib/ncurses/include/ncurses_dll.h
+++ b/contrib/ncurses/include/ncurses_dll.h
@@ -1,5 +1,10 @@
-/* $Id: ncurses_dll.h,v 1.1 2000/12/10 00:05:35 tom Exp $ */
+/* $Id: ncurses_dll.h,v 1.2 2001/12/09 01:36:34 tom Exp $ */
+#ifndef NCURSES_DLL_H_incl
+#define NCURSES_DLL_H_incl 1
+
+#undef NCURSES_DLL /* cygwin dll not implemented */
+#define NCURSES_STATIC /* cygwin dll not implemented */
#if defined(__CYGWIN__)
# if defined(NCURSES_DLL)
@@ -39,3 +44,5 @@
#if !defined(NCURSES_EXPORT_VAR)
# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
#endif
+
+#endif /* NCURSES_DLL_H_incl */
diff --git a/contrib/ncurses/include/tic.h b/contrib/ncurses/include/tic.h
index ff35c0426197..c4e7dfd095a5 100644
--- a/contrib/ncurses/include/tic.h
+++ b/contrib/ncurses/include/tic.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 1998-2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2001 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -32,7 +32,7 @@
****************************************************************************/
/*
- * $Id: tic.h,v 1.38 2001/03/11 15:12:08 tom Exp $
+ * $Id: tic.h,v 1.40 2001/08/12 00:45:57 tom Exp $
* tic.h - Global variables and structures for the terminfo
* compiler.
*/
@@ -216,16 +216,16 @@ extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_tabl
#define NOTFOUND ((struct name_table_entry *) 0)
/* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN -1
-#define ABSENT_NUMERIC -1
+#define ABSENT_BOOLEAN (-1) /* 255 */
+#define ABSENT_NUMERIC (-1)
#define ABSENT_STRING (char *)0
/* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN (char)(-2)
-#define CANCELLED_NUMERIC -2
-#define CANCELLED_STRING (char *)-1
+#define CANCELLED_BOOLEAN (char)(-2) /* 254 */
+#define CANCELLED_NUMERIC (-2)
+#define CANCELLED_STRING (char *)(-1)
-#define VALID_BOOLEAN(s) ((s) >= 0)
+#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
#define VALID_NUMERIC(s) ((s) >= 0)
#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
@@ -241,6 +241,7 @@ extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_tabl
/* access.c */
extern NCURSES_EXPORT(char *) _nc_basename (char *);
+extern NCURSES_EXPORT(char *) _nc_rootname (char *);
/* comp_hash.c: name lookup */
extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry