summaryrefslogtreecommitdiffstats
path: root/lib/libncurses/terminfo.5
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libncurses/terminfo.5')
-rw-r--r--lib/libncurses/terminfo.51656
1 files changed, 1656 insertions, 0 deletions
diff --git a/lib/libncurses/terminfo.5 b/lib/libncurses/terminfo.5
new file mode 100644
index 0000000..8c774f8
--- /dev/null
+++ b/lib/libncurses/terminfo.5
@@ -0,0 +1,1656 @@
+.\" Note: this must be run through tbl befor nroff
+.TH TERMINFO 5
+.ds n 5
+.ds d /usr/lib/terminfo
+.SH NAME
+terminfo \- terminal capability data base
+.SH SYNOPSIS
+\*d/*/*
+.SH DESCRIPTION
+.I Terminfo
+is a data base describing terminals, used by screen-oriented programs such as
+.IR vi (1),
+.IR rogue (1)
+and
+.IR ncurses (3X).
+.I Terminfo
+describes terminals by giving a set of capabilities which they
+have, by specifying how to perform screen operations, and by
+specifying padding requirements and initialization sequences.
+.PP
+Entries in
+.I terminfo
+consist of a number of `,' separated fields.
+White space after each `,' is ignored.
+The first entry for each terminal gives the names which are known for the
+terminal, separated by `|' characters.
+The first name given is the most common abbreviation for the terminal,
+the last name given should be a long name fully identifying the terminal,
+and all others are understood as synonyms for the terminal name.
+All names but the last should be in lower case and contain no blanks;
+the last name may well contain upper case and blanks for readability.
+.PP
+Terminal names (except for the last, verbose entry) should
+be chosen using the following conventions.
+The particular piece of hardware making up the terminal should
+have a root name chosen, thus ``hp2621''.
+This name should not contain hyphens, except that synonyms may
+be chosen that do not conflict with other names.
+Modes that the hardware can be in, or user preferences, should
+be indicated by appending a hyphen and an indicator of the mode.
+Thus, a vt100 in 132 column mode would be vt100-w.
+The following suffixes should be used where possible:
+.TS
+center;
+l c l
+l l l.
+\fBSuffix Meaning Example\fP
+-w Wide mode (more than 80 columns) vt100-w
+-am With auto. margins (usually default) vt100-am
+-nam Without automatic margins vt100-nam
+-\fIn\fP Number of lines on the screen aaa-60
+-na No arrow keys (leave them in local) c100-na
+-\fIn\fPp Number of pages of memory c100-4p
+-rv Reverse video c100-rv
+.TE
+.SH CAPABILITIES
+The variable is the name by which the programmer (at the terminfo level)
+accesses the capability.
+The capname is the short name used in the text of the database,
+and is used by a person updating the database.
+The i.code is the two letter internal code used in the compiled database,
+and always corresponds to the old
+.B termcap
+capability name.
+.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.
+Whenever possible, names are chosen to be the same as or similar to
+the ANSI X3.64-1979 standard. Semantics are also intended to match
+those of the specification.
+.TP
+(P)
+indicates that padding may be specified
+.TP
+(G)
+indicates that the string is passed through tparm with
+parms as given (#\fIi\fP).
+.TP
+(*)
+indicates that padding may be based on the number of
+lines affected
+.TP
+(#\d\fIi\fP\u)
+indicates the \fIi\fP\uth\d parameter.
+
+.TS
+center;
+c c c c
+c c c c
+l l l l.
+\fBVariable Cap- I. Description\fR
+\f3Booleans name Code\fR
+\s-1auto_left_margin, bw bw cub1 wraps from column 0 to last
+ column\s+1
+\s-1auto_right_margin, am am Terminal has automatic margins\s+1
+\s-1back_color_erase, bce ut screen erased with background color\s+1
+\s-1can_change, ccc cc terminal can re-define exiting colors\s+1
+\s-1ceol_standout_glitch, xhp xs Standout not erased by overwriting
+ (hp)\s+1
+\s-1col_addr_glitch, xhpa YA only positive motion for hpa/mhpa caps\s+1
+\s-1cpi_changes_res, cpix YF changing character pitch changes resolution\s+1
+\s-1cr_cancels_micro_mode, crxm YB using cr turns off micro mode\s+1
+\s-1eat_newline_glitch, xenl xn newline ignored after 80 cols
+ (Concept)\s+1
+\s-1erase_overstrike, eo eo Can erase overstrikes with a blank\s+1
+\s-1generic_type, gn gn Generic line type (e.g.,, dialup,
+ switch).\s+1
+\s-1hard_copy, hc hc Hardcopy terminal\s+1
+\s-1hard_cursor, chts HC cursor is hard to see\s+1
+\s-1has_meta_key, km km Has a meta key (shift, sets parity
+ bit)\s+1
+\s-1has_print_wheel, daisy YC printer needs operator to change character set\s+1
+\s-1has_status_line, hs hs Has extra "status line"\s+1
+\s-1hue_lightness_saturation, hls hl terminal uses only HLS color notation (tektronix)\s+1
+\s-1insert_null_glitch, in in Insert mode distinguishes nulls\s+1
+\s-1lpi_changes_res, lpix YG chnaging line pitch changes resolution\s+1
+\s-1memory_above, da da Display may be retained above the
+ screen\s+1
+\s-1memory_below, db db Display may be retained below the
+ screen\s+1
+\s-1move_insert_mode, mir mi Safe to move while in insert mode\s+1
+\s-1move_standout_mode, msgr ms Safe to move in standout modes\s+1
+\s-1needs_xon_xoff, nxon nx padding won't work, xon/xoff required\s+1
+\s-1no_esc_ctl_c, xsb xb Beehive (f1=escape, f2=ctrl C)\s+1
+\s-1non_rev_rmcup, nrrmc NR smcup does not revrse rmcup\s+1
+\s-1no_pad_char, npc NP pad character does not exist\s+1
+\s-1non_dest_scroll_region, ndscr ND scrolling region is non-destructive\s+1
+\s-1over_strike, os os Terminal overstrikes\s+1
+\s-1prtr_silent, mc5i 5i printer won't echo on screen\s+1
+\s-1row_addr_glitch, xvpa YD only posistive motion for vhp/mvpa caps\s+1
+\s-1semi_auto_right_margin, sam YE printing in last column causes cr\s+1
+\s-1status_line_esc_ok, eslok es Escape can be used on the status line\s+1
+\s-1dest_tabs_magic_smso, xt xt Tabs ruin, magic so char (Teleray
+ 1061)\s+1
+\s-1tilde_glitch, hz hz Hazeltine; can not print ~'s\s+1
+\s-1transparent_underline, ul ul underline character overstrikes\s+1
+\s-1xon_xoff, xon xo Terminal uses xon/xoff handshaking\s+1
+
+\s-1\f3Numbers:\fR\s+1
+\s-1bit_image_entwining, bitwin Yo Undocumented in SVr4.0\s+1
+\s-1buffer_capacity, bufsz Ya numbers of bytes buffered before printing\s+1
+\s-1columns, cols co Number of columns in a line\s+1
+\s-1dot_vert_spacing, spinv Yb spacing of dots horizontally in dots per inch\s+1
+\s-1dot_horz_spacing, spinh Yc spacing of pins vertically in pins per inch\s+1
+\s-1init_tabs, it it Tabs initially every # spaces\s+1
+\s-1label_height, lh lh rows in each label\s+1
+\s-1label_width, lw lw columns in each label\s+1
+\s-1lines, lines li Number of lines on screen or page\s+1
+\s-1lines_of_memory, lm lm Lines of memory if > lines. 0 means varies\s+1
+\s-1magic_cookie_glitch, xmc sg Number of blank chars left by smso or rmso\s+1
+\s-1max_colors, colors Co maximum numbers of colors on screen\s+1
+\s-1max_micro_address, maddr Yd maximum value in micro_..._address\s+1
+\s-1max_micro_jump, mjump Ye maximum value in parm_..._micro\s+1
+\s-1max_pairs, pairs pa maximum number of color-pairs on the screen\s+1
+\s-1micro_col_size, mcs Yf Character step size when in micro mode\s+1
+\s-1micro_line_size, mls Yg Line step size when in micro mode\s+1
+\s-1no_color_video, ncv NC video attributes that can't be used with colors\s+1
+\s-1number_of_pins, npins Yh numbers of pins in print-head\s+1
+\s-1num_labels, nlab Nl number of lables on screen\s+1
+\s-1output_res_char, orc Yi horizontal resolution in units per line\s+1
+\s-1output_res_line, orl Yj vertical resolution in units per line\s+1
+\s-1output_res_horz_inch, orhi Yk horizontal resolution in units per inch\s+1
+\s-1output_res_vert_inch, orvi Yl vertical resolution in units per inch\s+1
+\s-1padding_baud_rate, pb pb Lowest baud where cr/nl padding is needed\s+1
+\s-1virtual_terminal, vt vt Virtual terminal number (\s-1UNIX\s+1 system)\s+1
+\s-1width_status_line, wsl ws No. columns in status line\s+1
+.TE
+
+(The following numeric capabilities are present in the SVr4.0 term structure,
+but are not yet documented in the man page. Comments are from the term
+structure header.)
+
+.TS
+center;
+c c c c
+c c c c
+l l l l.
+\s-1bit_image_type, bitype Yp Type of bit-image device\s+1
+\s-1buttons, btns BT Number of mouse buttons\s+1
+\s-1max_attributes, ma ma Max combined attributes terminal can handle\s+1
+\s-1maximum_windows, wnum MW Max number of defineable windows\s+1
+\s-1print_rate, cps Ym Print rate in chars per second\s+1
+\s-1wide_char_size, widcs Yn Char step size in double wide mode\s+1
+
+\s-1\f3Strings:\fR\s+1
+\s-1acs_chars, acsc ac Graphics charset pairs - def=vt100\s+1
+\s-1alt_scancode_esc, scesa S8 Alternate esc for scancode emulation (default is vt100)\s+1
+\s-1back_tab, cbt bt Back tab (P)\s+1
+\s-1bell, bel bl Audible signal (bell) (P)\s+1
+\s-1bit_image_repeat, birep Xy Repeat bit image cell #1 #2 times (use tparm)\s+1
+\s-1bit_image_newline, binel Zz Move to next row of the bit image (use tparm)\s+1
+\s-1bit_image_carriage_return, bicr Yv Move to beginning of same row (use tparm)\s+1
+\s-1carriage_return, cr cr Carriage return (P*)\s+1
+\s-1change_char_pitch, cpi ZA Change # chars per inch\s+1
+\s-1change_line_pitch, lpi ZB Change # lines per inch\s+1
+\s-1change_res_horz, chr ZC Change horizontal resolution\s+1
+\s-1change_res_vert, cvr ZD Change vertical resolution\s+1
+\s-1change_scroll_region, csr cs Change to lines #1 through #2 (vt100) (PG)\s+1
+\s-1char_padding, rmp rP Like ip but when in insert mode\s+1
+\s-1char_set_names, csnm Zy List of character set names\s+1
+\s-1clear_all_tabs, tbc ct Clear all tab stops (P)\s+1
+\s-1clear_margins, mgc MC Clear all margins (top, bottom, and sides)\s+1
+\s-1clear_screen, clear cl Clear screen and home cursor (P*)\s+1
+\s-1clr_bol. el1 cb Clear to beginning of line\s+1
+\s-1clr_eol, el ce Clear to end of line (P)\s+1
+\s-1clr_eos, ed cd Clear to end of display (P*)\s+1
+\s-1code_set_init, csin ci Init sequence for multiple code sets\s+1
+\s-1color_names, colornm Yw Give name for color #1\s+1
+\s-1column_address, hpa ch Set cursor column (PG)\s+1
+\s-1command_character, cmdch CC Term. settable cmd char in prototype\s+1
+\s-1cursor_address, cup cm Screen rel. cursor motion row #1
+ col #2 (PG)\s+1
+\s-1cursor_down, cud1 do Down one line\s+1
+\s-1cursor_home, home ho Home cursor (if no cup)\s+1
+\s-1cursor_invisible, civis vi Make cursor invisible\s+1
+\s-1cursor_left, cub1 le Move cursor left one space\s+1
+\s-1cursor_mem_address, mrcup CM Memory relative cursor addressing\s+1
+\s-1cursor_normal, cnorm ve Make cursor appear normal (undo vs/vi)\s+1
+\s-1cursor_right, cuf1 nd Non-destructive space (cursor right)\s+1
+\s-1cursor_to_ll, ll ll Last line, first column (if no cup)\s+1
+\s-1cursor_up, cuu1 up Upline (cursor up)\s+1
+\s-1cursor_visible, cvvis vs Make cursor very visible\s+1
+\s-1define_bit_image_region, defbi Yx Define rectangular bit image region (use tparm)\s+1
+\s-1define_char, defc ZE Define character in a character set\s+1
+\s-1delete_character, dch1 dc Delete character (P*)\s+1
+\s-1delete_line, dl1 dl Delete line (P*)\s+1
+\s-1device_type, devt dv Indicate language/codeset support\s+1
+\s-1dis_status_line, dsl ds Disable status line\s+1
+\s-1display_pc_char, dispc S1 Display PC character\s+1
+\s-1down_half_line, hd hd Half-line down (forward 1/2 linefeed)\s+1
+\s-1ena_acs, enacs eA enable alternate char set\s+1
+\s-1end_bit_image_region, endbi Yy End bit image region (use tparm)\s+1
+\s-1enter_alt_charset_mode, smacs as Start alternate character set (P)\s+1
+\s-1enter_am_mode, smam SA turn on automatic margins\s+1
+\s-1enter_blink_mode, blink mb Turn on blinking\s+1
+\s-1enter_bold_mode, bold md Turn on bold (extra bright) mode\s+1
+\s-1enter_ca_mode, smcup ti String to begin programs that use cup\s+1
+\s-1enter_delete_mode, smdc dm Delete mode (enter)\s+1
+\s-1enter_dim_mode, dim mh Turn on half-bright mode\s+1
+\s-1enter_doublewide_mode, swidm ZF Enable double-wide mode\s+1
+\s-1enter_draft_quality, sdrfq ZG Set draft-quality printing\s+1
+\s-1enter_insert_mode, smir im Insert mode (enter);\s+1
+\s-1enter_italics_mode, sitm ZH Enable italics mode\s+1
+\s-1enter_leftward_mode, slm ZI Enable leftward carriage motion\s+1
+\s-1enter_micro_mode, smicm ZJ Enable micro-motion capabilities\s+1
+\s-1enter_near_letter_quality, snlq ZK Set NLQ printing\s+1
+\s-1enter_normal_quality, snrmq ZL Set normal quality printing\s+1
+\s-1enter_pc_charset_mode, smpch S2 Enter PC character display mode\s+1
+\s-1enter_protected_mode, prot mp Turn on protected mode\s+1
+\s-1enter_reverse_mode, rev mr Turn on reverse video mode\s+1
+\s-1enter_scancode_mode, smsc S4 Enter PC scancode mode\s+1
+\s-1enter_secure_mode, invis mk Turn on blank mode (chars invisible)\s+1
+\s-1enter_shadow_mode, sshm ZM Enable shadow-mode printing\s+1
+\s-1enter_standout_mode, smso so Begin stand out mode\s+1
+\s-1enter_subscript_mode, ssubm ZN Enable subscript printing\s+1
+\s-1enter_superscript_mode, ssupm ZO Enable supercript printing\s+1
+\s-1enter_underline_mode, smul us Start underscore mode\s+1
+\s-1enter_upward_mode, sum ZP Enable upward carriage motion\s+1
+\s-1enter_xon_mode, smxon SX Turn on xon/xoff handshaking\s+1
+\s-1erase_chars, ech ec Erase #1 characters (PG)\s+1
+\s-1exit_alt_charset_mode, rmacs ae End alternate character set (P)\s+1
+\s-1exit_am_mode, rmam RA Turn off automatic margins\s+1
+\s-1exit_attribute_mode, sgr0 me Turn off all attributes\s+1
+\s-1exit_ca_mode, rmcup te String to end programs that use cup\s+1
+\s-1exit_delete_mode, rmdc ed End delete mode\s+1
+\s-1exit_doublewide_mode, rwidm ZQ Disable doublewide printing\s+1
+\s-1exit_insert_mode, rmir ei End insert mode\s+1
+\s-1exit_italics_mode, ritm ZR Disable italic printing\s+1
+\s-1exit_leftward_mode, rlm ZS Enable rightward (normal) carriage motion\s+1
+\s-1exit_micro_mode, rmicm ZT Disable micro motion capabilities\s+1
+\s-1exit_pc_charset_mode, rmpch S3 Disable PC character display\s+1
+\s-1exit_scancode_mode, rmsc S5 Disable PC scancode mode\s+1
+\s-1exit_shadow_mode, rshm ZU Disable shadow printing\s+1
+\s-1exit_standout_mode, rmso se End stand out mode\s+1
+\s-1exit_subscript_mode, rsubm ZV Disable subscript printing\s+1
+\s-1exit_superscript_mode, rsupm ZW Disable supercript printing\s+1
+\s-1exit_underline_mode, rmul ue End underscore mode\s+1
+\s-1exit_upward_mode, rum ZX Enable downward (normal) carriage motion\s+1
+\s-1exit_xon_mode, rmxon RX turn off xon/xoff handshaking\s+1
+\s-1flash_screen, flash vb Visible bell (may not move cursor)\s+1
+\s-1form_feed, ff ff Hardcopy terminal page eject (P*)\s+1
+\s-1from_status_line, fsl fs Return from status line\s+1
+\s-1init_1string, is1 i1 Terminal initialization string\s+1
+\s-1init_2string, is2 i2 Terminal initialization string\s+1
+\s-1init_3string, is3 i3 Terminal initialization string\s+1
+\s-1init_file, if if Name of file containing is\s+1
+\s-1init_prog, iprog iP Path name of program for init\s+1
+\s-1initialize_color, initc Ic Initialize the definition of color\s+1
+\s-1initialize_pair, initp Ip Initialize color-pair\s+1
+\s-1insert_character, ich1 ic Insert character (P)\s+1
+\s-1insert_line, il1 al Add new blank line (P*)\s+1
+\s-1insert_padding, ip ip Insert pad after character inserted
+ (p*)\s+1
+\s-1key_a1, ka1 K1 Upper left of keypad\s+1
+\s-1key_a3, ka3 K3 Upper right of keypad\s+1
+\s-1key_b2, kb2 K2 Center of keypad\s+1
+\s-1key_backspace, kbs kb Sent by backspace key\s+1
+\s-1key_beg, kbeg @1 begin key\s+1
+\s-1key_btab, kcbt kB back-tab key\s+1
+\s-1key_c1, kc1 K4 Lower left of keypad\s+1
+\s-1key_c3, kc3 K5 Lower right of keypad\s+1
+\s-1key_cancel, kcan @2 cancel key\s+1
+\s-1key_catab, ktbc ka Sent by clear-all-tabs key\s+1
+\s-1key_clear, kclr kC Sent by clear screen or erase key\s+1
+\s-1key_close, kclo @3 close key\s+1
+\s-1key_command, kcmd @4 command key\s+1
+\s-1key_copy, kcpy @5 copy key\s+1
+\s-1key_create, kcrt @6 create key\s+1
+\s-1key_ctab, kctab kt Sent by clear-tab key\s+1
+\s-1key_dc, kdch1 kD Sent by delete character key\s+1
+\s-1key_dl, kdl1 kL Sent by delete line key\s+1
+\s-1key_down, kcud1 kd Sent by terminal down arrow key\s+1
+\s-1key_eic, krmir kM Sent by rmir or smir in insert mode\s+1
+\s-1key_end, kend @7 end key\s+1
+\s-1key_enter, kent @8 enter/send key\s+1
+\s-1key_eol, kel kE Sent by clear-to-end-of-line key\s+1
+\s-1key_eos, ked kS Sent by clear-to-end-of-screen key\s+1
+\s-1key_exit, kext @9 exit key\s+1
+\s-1key_f0, kf0 k0 Sent by function key f0\s+1
+\s-1key_f1, kf1 k1 Sent by function key f1\s+1
+\s-1key_f2, kf2 k2 Sent by function key f2\s+1
+\s-1key_f3, kf3 k3 Sent by function key f3\s+1
+\s-1key_f4, kf4 k4 Sent by function key f4\s+1
+\s-1key_f5, kf5 k5 Sent by function key f5\s+1
+\s-1key_f6, kf6 k6 Sent by function key f6\s+1
+\s-1key_f7, kf7 k7 Sent by function key f7\s+1
+\s-1key_f8, kf8 k8 Sent by function key f8\s+1
+\s-1key_f9, kf9 k9 Sent by function key f9\s+1
+\s-1key_f10, kf10 k; Sent by function key f10\s+1
+\s-1key_f11, kf11 F1 F11 function key\s+1
+\s-1key_f12, kf12 F2 F12 function key\s+1
+\s-1key_f13, kf13 F3 F13 function key\s+1
+\s-1key_f14, kf14 F4 F14 function key\s+1
+\s-1key_f15, kf15 F5 F15 function key\s+1
+\s-1key_f16, kf16 F6 F16 function key\s+1
+\s-1key_f17, kf17 F7 F17 function key\s+1
+\s-1key_f18, kf18 F8 F18 function key\s+1
+\s-1key_f19, kf19 F9 F19 function key\s+1
+\s-1key_f20, kf20 FA F20 function key\s+1
+\s-1key_f21, kf21 FB F21 function key\s+1
+\s-1key_f22, kf22 FC F22 function key\s+1
+\s-1key_f23, kf23 FD F23 function key\s+1
+\s-1key_f24, kf24 FE F24 function key\s+1
+\s-1key_f25, kf25 FF F25 function key\s+1
+\s-1key_f26, kf26 FG F26 function key\s+1
+\s-1key_f27, kf27 FH F27 function key\s+1
+\s-1key_f28, kf28 FI F28 function key\s+1
+\s-1key_f29, kf29 FJ F29 function key\s+1
+\s-1key_f30, kf30 FK F30 function key\s+1
+\s-1key_f31, kf31 FL F31 function key\s+1
+\s-1key_f32, kf32 FM F32 function key\s+1
+\s-1key_f33, kf33 FN F33 function key\s+1
+\s-1key_f34, kf34 FO F34 function key\s+1
+\s-1key_f35, kf35 FP F35 function key\s+1
+\s-1key_f36, kf36 FQ F36 function key\s+1
+\s-1key_f37, kf37 FR F37 function key\s+1
+\s-1key_f38, kf38 FS F38 function key\s+1
+\s-1key_f39, kf39 FT F39 function key\s+1
+\s-1key_f40, kf40 FU F40 function key\s+1
+\s-1key_f41, kf41 FV F41 function key\s+1
+\s-1key_f42, kf42 FW F42 function key\s+1
+\s-1key_f43, kf43 FX F43 function key\s+1
+\s-1key_f44, kf44 FY F44 function key\s+1
+\s-1key_f45, kf45 FZ F45 function key\s+1
+\s-1key_f46, kf46 Fa F46 function key\s+1
+\s-1key_f47, kf47 Fb F47 function key\s+1
+\s-1key_f48, kf48 Fc F48 function key\s+1
+\s-1key_f49, kf49 Fd F49 function key\s+1
+\s-1key_f50, kf50 Fe F50 function key\s+1
+\s-1key_f51, kf51 Ff F51 function key\s+1
+\s-1key_f52, kf52 Fg F52 function key\s+1
+\s-1key_f53, kf53 Fh F53 function key\s+1
+\s-1key_f54, kf54 Fi F54 function key\s+1
+\s-1key_f55, kf55 Fj F55 function key\s+1
+\s-1key_f56, kf56 Fk F56 function key\s+1
+\s-1key_f57, kf57 Fl F57 function key\s+1
+\s-1key_f58, kf58 Fm F58 function key\s+1
+\s-1key_f59, kf59 Fn F59 function key\s+1
+\s-1key_f60, kf60 Fo F60 function key\s+1
+\s-1key_f61, kf61 Fp F61 function key\s+1
+\s-1key_f62, kf62 Fq F62 function key\s+1
+\s-1key_f63, kf63 Fr F63 function key\s+1
+\s-1key_find, kfnd @0 find key\s+1
+\s-1key_help, khlp %1 help key\s+1
+\s-1key_home, khome kh Sent by home key\s+1
+\s-1key_ic, kich1 kI Sent by ins char/enter ins mode key\s+1
+\s-1key_il, kil1 kA Sent by insert line\s+1
+\s-1key_left, kcub1 kl Sent by terminal left arrow key\s+1
+\s-1key_ll, kll kH Sent by home-down key\s+1
+\s-1key_mark, kmrk %2 mark key\s+1
+\s-1key_message, kmsg %3 message key\s+1
+\s-1key_move, kmov %4 move key\s+1
+\s-1key_next, knxt %5 next key\s+1
+\s-1key_npage, knp kN Sent by next-page key\s+1
+\s-1key_open, kopn %6 open key\s+1
+\s-1key_options, kopt %7 options key\s+1
+\s-1key_ppage, kpp kP Sent by previous-page key\s+1
+\s-1key_previous, kprv %8 previous key\s+1
+\s-1key_print, kprt %9 print key\s+1
+\s-1key_redo, krdo %0 redo key\s+1
+\s-1key_reference, kref &1 reference key\s+1
+\s-1key_refresh, krfr &2 refresh key\s+1
+\s-1key_replace, krpl &3 replace key\s+1
+\s-1key_restart, krst &4 restart key\s+1
+\s-1key_resume, kres &5 resume key\s+1
+\s-1key_right, kcuf1 kr Sent by terminal right arrow key\s+1
+\s-1key_save, ksav &6 save key\s+1
+\s-1key_sbeg, kBEG &9 shifted begin key\s+1
+\s-1key_scancel, kCAN &0 shifted cancel key\s+1
+\s-1key_scommand, kCMD *1 shifted command key\s+1
+\s-1key_scopy, kCPY *2 shifted copy key\s+1
+\s-1key_screate, kCRT *3 shifted create key\s+1
+\s-1key_sdc, kDC *4 shifted delete char key\s+1
+\s-1key_sdl, kDL *5 shifted delete line key\s+1
+\s-1key_select, kslt *6 select key\s+1
+\s-1key_send, kEND *7 shifted end key\s+1
+\s-1key_seol, kEOL *8 shifted end of line key\s+1
+\s-1key_sexit, kEXT *9 shifted exit key\s+1
+\s-1key_sf, kind kF Sent by scroll-forward/down key\s+1
+\s-1key_sfind, kFND *0 shifted find key\s+1
+\s-1key_shelp, kHLP #1 shifted help key\s+1
+\s-1key_shome, kHOM #2 shifted home key\s+1
+\s-1key_sic, kIC #3 shifted insert char key\s+1
+\s-1key_sleft, kLFT #4 shifted left key\s+1
+\s-1key_smessage, kMSG %a shifted message key\s+1
+\s-1key_smove, kMOV %b shifted move key\s+1
+\s-1key_snext, kNXT %c shifted next key\s+1
+\s-1key_soptions, kOPT %d shifted options key\s+1
+\s-1key_sprevious, kPRV %e shifted previous key\s+1
+\s-1key_sprint, kPRT %f shifted print key\s+1
+\s-1key_sr, kri kR Sent by scroll-backward/up key\s+1
+\s-1key_sredo, kRDO %g shifted redo key\s+1
+\s-1key_sreplace, kRPL %h shifted replace key\s+1
+\s-1key_sright, kRIT %i shifted right key\s+1
+\s-1key_srsume, kRES %j shifted resume key\s+1
+\s-1key_ssave, kSAV !1 shifted save key\s+1
+\s-1key_ssuspend, kSPD !2 shifted suspend key\s+1
+\s-1key_stab, khts kT Sent by set-tab key\s+1
+\s-1key_sundo, kUND !3 shifted undo key\s+1
+\s-1key_suspend, kspd &7 suspend key\s+1
+\s-1key_undo, kund &8 undo key\s+1
+\s-1key_up, kcuu1 ku Sent by terminal up arrow key\s+1
+\s-1keypad_local, rmkx ke Out of "keypad transmit" mode\s+1
+\s-1keypad_xmit, smkx ks Put terminal in "keypad transmit" mode\s+1
+\s-1lab_f0, lf0 l0 Labels on function key f0 if not f0\s+1
+\s-1lab_f1, lf1 l1 Labels on function key f1 if not f1\s+1
+\s-1lab_f2, lf2 l2 Labels on function key f2 if not f2\s+1
+\s-1lab_f3, lf3 l3 Labels on function key f3 if not f3\s+1
+\s-1lab_f4, lf4 l4 Labels on function key f4 if not f4\s+1
+\s-1lab_f5, lf5 l5 Labels on function key f5 if not f5\s+1
+\s-1lab_f6, lf6 l6 Labels on function key f6 if not f6\s+1
+\s-1lab_f7, lf7 l7 Labels on function key f7 if not f7\s+1
+\s-1lab_f8, lf8 l8 Labels on function key f8 if not f8\s+1
+\s-1lab_f9, lf9 l9 Labels on function key f9 if not f9\s+1
+\s-1lab_f10, lf10 la Labels on function key f10 if not f10\s+1
+\s-1label_on, smln LO turn on soft labels\s+1
+\s-1label_off, rmln LF turn off soft labels\s+1
+\s-1meta_off, rmm mo Turn off "meta mode"\s+1
+\s-1meta_on, smm mm Turn on "meta mode" (8th bit)\s+1
+\s-1micro_column_address, mhpa ZY Like column_address for micro adjustment\s+1
+\s-1micro_down, mcud1 ZZ Like cursor_down for micro adjustment\s+1
+\s-1micro_left, mcub1 Za Like cursor_left for micro adjustment\s+1
+\s-1micro_right, mcuf1 Zb Like cursor_right for micro adjustment\s+1
+\s-1micro_row_address, mvpa Zc Like row_address for micro adjustment\s+1
+\s-1micro_up, mcuu1 Zd Like cursor_up for micro adjustment\s+1
+\s-1newline, nel nw Newline (behaves like cr followed by lf)\s+1
+\s-1order_of_pins, porder Ze Matches software buts to print-head pins\s+1
+\s-1orig_colors, oc oc Reset all color pairs\s+1
+\s-1orig_pair, op op Set default color-pair to original one\s+1
+\s-1pad_char, pad pc Pad character (rather than null)\s+1
+\s-1parm_dch, dch DC Delete #1 chars (PG*)\s+1
+\s-1parm_delete_line, dl DL Delete #1 lines (PG*)\s+1
+\s-1parm_down_cursor, cud DO Move cursor down #1 lines (PG*)\s+1
+\s-1parm_down_micro, mcud Zf Like cud for micro adjust\s+1
+\s-1parm_ich, ich IC Insert #1 blank chars (PG*)\s+1
+\s-1parm_index, indn SF Scroll forward #1 lines (PG)\s+1
+\s-1parm_insert_line, il AL Add #1 new blank lines (PG*)\s+1
+\s-1parm_left_cursor, cub LE Move cursor left #1 spaces (PG)\s+1
+\s-1parm_left_micro, mcub Zg Like cul for micro adjust\s+1
+\s-1parm_right_cursor, cuf RI Move cursor right #1 spaces (PG*)\s+1
+\s-1parm_right_micro, mcuf Zh Likr cuf for micro adjust\s+1
+\s-1parm_rindex, rin SR Scroll backward #1 lines (PG)\s+1
+\s-1parm_up_cursor, cuu UP Move cursor up #1 lines (PG*)\s+1
+\s-1parm_up_micro, mcuu Zi Like cuu for micro adjust\s+1
+\s-1pkey_key, pfkey pk Prog funct key #1 to type string #2\s+1
+\s-1pkey_local, pfloc pl Prog funct key #1 to execute string #2\s+1
+\s-1pkey_xmit, pfx px Prog funct key #1 to xmit string #2\s+1
+\s-1pkey_plab, pfxl xl Program key #1 to xmit #2 and show #3\s+1
+\s-1plab_norm, pln pn program label #1 to show string #2\s+1
+\s-1print_screen, mc0 ps Print contents of the screen\s+1
+\s-1prtr_non, mc5p pO Turn on the printer for #1 bytes\s+1
+\s-1prtr_off, mc4 pf Turn off the printer\s+1
+\s-1prtr_on, mc5 po Turn on the printer\s+1
+\s-1repeat_char, rep rp Repeat char #1 #2 times. (PG*)\s+1
+\s-1req_for_input, rfi RF request for input\s+1
+\s-1reset_1string, rs1 r1 Reset terminal completely to sane modes.\s+1
+\s-1reset_2string, rs2 r2 Reset terminal completely to sane modes.\s+1
+\s-1reset_3string, rs3 r3 Reset terminal completely to sane modes.\s+1
+\s-1reset_file, rf rf Name of file containing reset string\s+1
+\s-1restore_cursor, rc rc Restore cursor to position of last sc\s+1
+\s-1row_address, vpa cv Vertical position absolute (set row) (PG)\s+1
+\s-1save_cursor, sc sc Save cursor position (P)\s+1
+\s-1scancode_escape, scesc S7 Escape for scancode emulation\s+1
+\s-1scroll_forward, ind sf Scroll text up (P)\s+1
+\s-1scroll_reverse, ri sr Scroll text down (P)\s+1
+\s-1select_char_set, scs Zj Select character set\s+1
+\s-1set0_des_seq, s0ds s0 Shift to codeset 0 (EUC set 0, ASCII)\s+1
+\s-1set1_des_seq, s1ds s1 Shift to codeset 1\s+1
+\s-1set2_des_seq, s2ds s2 Shift to codeset 2\s+1
+\s-1set3_des_seq, s3ds s3 Shift to codeset 3\s+1
+\s-1set_a_background, setab AB Set background color using ANSI escape\s+1
+\s-1set_a_foreground, setaf AF Set foreground color using ANSI escape\s+1
+\s-1set_attributes, sgr sa Define the video attributes (PG9)\s+1
+\s-1set_background, setb Sb Set current background color\s+1
+\s-1set_bottom_margin, smgb Zk Set bottom margin at current line\s+1
+\s-1set_bottom_margin_parm, smgbp Zl Set bottom line at line #1 or #2 lines from bottom\s+1
+\s-1set_color_band, setcolor Yz Change to ribbon color #1\s+1
+\s-1set_color_pair, scp sp Set current color pair\s+1
+\s-1set_foreground, setf Sf Set current foreground color\s+1
+\s-1set_left_margin, smgl ML Set left margin at current line\s+1
+\s-1set_left_margin_parm, smglp Zm Set left (right) margin at #1 (#2)\s+1
+\s-1set_lr_margin, smglr ML Set both left and right margins\s+1
+\s-1set_page_length, slines YZ Set page length to #1 lines (use tparm)\s+1
+\s-1set_right_margin, smgr MR Set right margin at current column\s+1
+\s-1set_right_margin_parm, smgrp Zn Set right margin at column #1\s+1
+\s-1set_tab, hts st Set a tab in all rows, current column\s+1
+\s-1set_tb_margin, smgtb MT Sets both top and bottom margins\s+1
+\s-1set_top_margin, smgt Zo Set top margin at current line\s+1
+\s-1set_top_margin_parm, smgtp Zp Set top margin at line #1\s+1
+\s-1set_window, wind wi Current window is lines #1-#2 cols #3-#4\s+1
+\s-1start_bit_image, sbim Zq Start printing bit image graphics\s+1
+\s-1start_char_set_def, scsd Zr Start definition of a character set\s+1
+\s-1stop_bit_image, rbim Zs End printing bit image graphics\s+1
+\s-1stop_char_set_def, rcsd Zt End definition of character set\s+1
+\s-1subscript_characters, subcs Zu List of subscriptable chars\s+1
+\s-1superscript_characters, supcs Zv List of superscriptable chars\s+1
+\s-1tab, ht ta Tab to next 8 space hardware tab stop\s+1
+\s-1these_cause_cr, docr Zw These characters cause a CR\s+1
+\s-1to_status_line, tsl ts Go to status line, column #1\s+1
+\s-1underline_char, uc uc Underscore one char and move past it\s+1
+\s-1up_half_line, hu hu Half-line up (reverse 1/2 linefeed)\s+1
+\s-1xoff_character, xoffc XF XON character\s+1
+\s-1xon_character, xonc XN XOFF character\s+1
+.TE
+
+(The following string capabilities are present in the SVr4.0 term structure,
+but are not documented in the man page. Comments are from the term
+structure header.)
+
+.TS
+center;
+c c c c
+c c c c
+l l l l.
+\s-1label_format, fln Lf ??\s+1
+\s-1set_clock, sclk SC Set time-of-day clock\s+1
+\s-1display_clock, dclk DK Display time-of-day clock\s+1
+\s-1remove_clock, rmclk RC Remove time-of-day clock??\s+1
+\s-1create_window, cwin CW Define win #1 to go from #2,#3 to #4,#5\s+1
+\s-1goto_window, wingo WG Goto window #1\s+1
+\s-1hangup, hup HU Hang up phone\s+1
+\s-1dial_phone, dial DI Dial phone number #1\s+1
+\s-1quick_dial, qdial QD Dial phone number #1, without progress detection\s+1
+\s-1tone, tone TO Select touch tone dialing\s+1
+\s-1pulse, pulse PU Select pulse dialing\s+1
+\s-1flash_hook, hook fh Flash the switch hook\s+1
+\s-1fixed_pause, pause PA Pause for 2-3 seconds\s+1
+\s-1wait_tone, wait WA Wait for dial tone\s+1
+\s-1user0, u0 u0 User string # 0\s+1
+\s-1user1, u1 u1 User string # 1\s+1
+\s-1user2, u2 u2 User string # 2\s+1
+\s-1user3, u3 u3 User string # 3\s+1
+\s-1user4, u4 u4 User string # 4\s+1
+\s-1user5, u5 u5 User string # 5\s+1
+\s-1user6, u6 u6 User string # 6\s+1
+\s-1user7, u7 u7 User string # 7\s+1
+\s-1user8, u8 u8 User string # 8\s+1
+\s-1user9, u9 u9 User string # 9\s+1
+\s-1get_mouse, getm Gm Curses should get button events\s+1
+\s-1key_mouse, kmous Km ??\s+1
+\s-1mouse_info, minfo Mi Mouse status information\s+1
+\s-1pc_term_options, pctrm S6 PC terminal options\s+1
+\s-1req_mouse_pos, reqmp RQ Request mouse position report\s+1
+\s-1zero_motion, zerom, Zx No motion for the subsequent character\s+1
+.TE
+.PP
+.B A Sample Entry
+.PP
+The following entry, which describes the Concept\-100, is among the more
+complex entries in the
+.I terminfo
+file as of this writing.
+.PP
+.nf
+.in -2
+.ta .3i
+.ft CW
+\s-2concept100\||\|c100|\|\|concept\||\|c104\||\|c100-4p\||\|concept 100,
+ am, bel=^G, blank=\eEH, blink=\eEC, clear=^L$<2*>, cnorm=\eEw,
+ cols#80, cr=^M$<9>, cub1=^H, cud1=^J, cuf1=\eE=,
+ cup=\eEa%p1%' '%+%c%p2%' '%+%c,
+ cuu1=\eE;, cvvis=\eEW, db, dch1=\eE^A$<16*>, dim=\eEE, dl1=\eE^B$<3*>,
+ ed=\eE^C$<16*>, el=\eE^U$<16>, eo, flash=\eEk$<20>\eEK, ht=\et$<8>,
+ il1=\eE^R$<3*>, in, ind=^J, .ind=^J$<9>, ip=$<16*>,
+ is2=\eEU\eEf\eE7\eE5\eE8\eEl\eENH\eEK\eE\e200\eEo&\e200\eEo\e47\eE,
+ kbs=^h, kcub1=\eE>, kcud1=\eE<, kcuf1=\eE=, kcuu1=\eE;,
+ kf1=\eE5, kf2=\eE6, kf3=\eE7, khome=\eE?,
+ lines#24, mir, pb#9600, prot=\eEI, rep=\eEr%p1%c%p2%' '%+%c$<.2*>,
+ rev=\eED, rmcup=\eEv $<6>\eEp\er\en, rmir=\eE\e200, rmkx=\eEx,
+ rmso=\eEd\eEe, rmul=\eEg, rmul=\eEg, sgr0=\eEN\e200,
+ smcup=\eEU\eEv 8p\eEp\er, smir=\eE^P, smkx=\eEX, smso=\eEE\eED,
+ smul=\eEG, tabs, ul, vt#8, xenl,\s+2
+.in +2
+.fi
+.ft R
+.PP
+Entries may continue onto multiple lines by placing white space at
+the beginning of each line except the first.
+Comments may be included on lines beginning with ``#''.
+Capabilities in
+.I terminfo
+are of three types:
+Boolean capabilities which indicate that the terminal has
+some particular feature, numeric capabilities giving the size of the terminal
+or the size of particular delays, and string
+capabilities, which give a sequence which can be used to perform particular
+terminal operations.
+.PP
+.B Types of Capabilities
+.PP
+All capabilities have names. For instance, the fact that
+the Concept has
+.I "automatic margins"
+(i.e., an automatic return and linefeed
+when the end of a line is reached) is indicated by the capability \fBam\fR.
+Hence the description of the Concept includes \fBam\fR.
+Numeric capabilities are followed by the character `#' and then the value.
+Thus \fBcols\fR, which indicates the number of columns the terminal has,
+gives the value `80' for the Concept.
+.PP
+Finally, string valued capabilities, such as \fBel\fR (clear to end of line
+sequence) are given by the two-character code, an `=', and then a string
+ending at the next following `,'. A delay in milliseconds may appear
+anywhere in such a capability, enclosed in $<..> brackets,
+as in \fBel\fP=\eEK$<3>,
+and padding characters are supplied by
+.I tputs
+to provide this delay.
+The delay can be either a number, e.g., `20', or a number followed by
+an `*', i.e., `3*'. A `*' indicates that the padding required is proportional
+to the number of lines affected by the operation, and the amount given is
+the per-affected-unit padding required.
+(In the case of insert character, the factor is still the number of
+.IR lines
+affected.
+This is always one unless the terminal has \fBxenl\fP and the software uses it.)
+When a `*' is specified, it is sometimes useful to give a delay of the form
+`3.5' to specify a delay per unit to tenths of milliseconds.
+(Only one decimal place is allowed.)
+.PP
+A number of escape sequences are provided in the string valued capabilities
+for easy encoding of characters there. Both \fB\eE\fR and \fB\ee\fR
+map to an \s-1ESCAPE\s0 character,
+\fB^x\fR maps to a control-x for any appropriate x, and the sequences
+\fB\en \el \er \et \eb \ef \es\fR give
+a newline, linefeed, return, tab, backspace, formfeed, and space.
+Other escapes include \e^ for ^, \e\e for \e, \e, for comma, \e: for :,
+and \e0 for null.
+(\e0 will produce \e200, which does not terminate a string but behaves
+as a null character on most terminals.)
+Finally, characters may be given as three octal digits after a \fB\e\fR.
+.PP
+Sometimes individual capabilities must be commented out.
+To do this, put a period before the capability name.
+For example, see the second
+.B ind
+in the example above.
+.br
+.ne 5
+.PP
+.B Preparing Descriptions
+.PP
+We now outline how to prepare descriptions of terminals.
+The most effective way to prepare a terminal description is by imitating
+the description of a similar terminal in
+.I terminfo
+and to build up a description gradually, using partial descriptions
+with
+.I vi
+or some other screen-oriented program to check that they are correct.
+Be aware that a very unusual terminal may expose deficiencies in
+the ability of the
+.I terminfo
+file to describe it
+or bugs in the screen-handling code of the test program.
+To easily test a new terminal description you can set the environment variable
+TERMINFO to a pathname of a directory containing the
+compiled description you are working
+on and programs will look there rather than in
+.IR \*d .
+To get the padding for insert line right (if the terminal manufacturer
+did not document it) a severe test is to edit /etc/passwd at 9600 baud,
+delete 16 or so lines from the middle of the screen, then hit the `u'
+key several times quickly.
+If the terminal messes up, more padding is usually needed.
+A similar test can be used for insert character.
+.PP
+.B Basic Capabilities
+.PP
+The number of columns on each line for the terminal is given by the
+\fBcols\fR numeric capability. If the terminal is a \s-1CRT\s0, then the
+number of lines on the screen is given by the \fBlines\fR capability.
+If the terminal wraps around to the beginning of the next line when
+it reaches the right margin, then it should have the \fBam\fR capability.
+If the terminal can clear its screen, leaving the cursor in the home
+position, then this is given by the \fBclear\fR string capability.
+If the terminal overstrikes
+(rather than clearing a position when a character is struck over)
+then it should have the \fBos\fR capability.
+If the terminal is a printing terminal, with no soft copy unit,
+give it both
+.B hc
+and
+.BR os .
+.RB ( os
+applies to storage scope terminals, such as \s-1TEKTRONIX\s+1 4010
+series, as well as hard copy and APL terminals.)
+If there is a code to move the cursor to the left edge of the current
+row, give this as
+.BR cr .
+(Normally this will be carriage return, control M.)
+If there is a code to produce an audible signal (bell, beep, etc)
+give this as
+.BR bel .
+.PP
+If there is a code to move the cursor one position to the left
+(such as backspace) that capability should be given as
+.BR cub1 .
+Similarly, codes to move to the right, up, and down should be
+given as
+.BR cuf1 ,
+.BR cuu1 ,
+and
+.BR cud1 .
+These local cursor motions should not alter the text they pass over,
+for example, you would not normally use `\fBcuf1\fP=\ ' because the
+space would erase the character moved over.
+.PP
+A very important point here is that the local cursor motions encoded
+in
+.I terminfo
+are undefined at the left and top edges of a \s-1CRT\s0 terminal.
+Programs should never attempt to backspace around the left edge,
+unless
+.B bw
+is given,
+and never attempt to go up locally off the top.
+In order to scroll text up, a program will go to the bottom left corner
+of the screen and send the
+.B ind
+(index) string.
+.PP
+To scroll text down, a program goes to the top left corner
+of the screen and sends the
+.B ri
+(reverse index) string.
+The strings
+.B ind
+and
+.B ri
+are undefined when not on their respective corners of the screen.
+.PP
+Parameterized versions of the scrolling sequences are
+.B indn
+and
+.B rin
+which have the same semantics as
+.B ind
+and
+.B ri
+except that they take one parameter, and scroll that many lines.
+They are also undefined except at the appropriate edge of the screen.
+.PP
+The \fBam\fR capability tells whether the cursor sticks at the right
+edge of the screen when text is output, but this does not necessarily
+apply to a
+.B cuf1
+from the last column.
+The only local motion which is defined from the left edge is if
+.B bw
+is given, then a
+.B cub1
+from the left edge will move to the right edge of the previous row.
+If
+.B bw
+is not given, the effect is undefined.
+This is useful for drawing a box around the edge of the screen, for example.
+If the terminal has switch selectable automatic margins,
+the
+.I terminfo
+file usually assumes that this is on; i.e., \fBam\fR.
+If the terminal has a command which moves to the first column of the next
+line, that command can be given as
+.B nel
+(newline).
+It does not matter if the command clears the remainder of the current line,
+so if the terminal has no
+.B cr
+and
+.B lf
+it may still be possible to craft a working
+.B nel
+out of one or both of them.
+.PP
+These capabilities suffice to describe hardcopy and \*(lqglass-tty\*(rq terminals.
+Thus the model 33 teletype is described as
+.PP
+.DT
+.nf
+.ft CW
+.in -7
+ \s-133\||\|tty33\||\|tty\||\|model 33 teletype,
+ bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
+.in +7
+.ft R
+.PP
+while the Lear Siegler \s-1ADM\-3\s0 is described as
+.PP
+.DT
+.nf
+.ft CW
+.in -7
+ \s-1adm3\||\|3\||\|lsi adm3,
+ am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+ ind=^J, lines#24,\s+1
+.in +7
+.ft R
+.fi
+.PP
+.B Parameterized Strings
+.PP
+Cursor addressing and other strings requiring parameters
+in the terminal are described by a
+parameterized string capability, with
+.IR printf (3S)
+like escapes \fB%x\fR in it.
+For example, to address the cursor, the
+.B cup
+capability is given, using two parameters:
+the row and column to address to.
+(Rows and columns are numbered from zero and refer to the
+physical screen visible to the user, not to any unseen memory.)
+If the terminal has memory relative cursor addressing,
+that can be indicated by
+.BR mrcup .
+.PP
+The parameter mechanism uses a stack and special \fB%\fP codes
+to manipulate it. Typically a sequence will push one of the
+parameters onto the stack and then print it in some format.
+Often more complex operations are necessary.
+.PP
+The \fB%\fR encodings have the following meanings:
+.PP
+.DT
+.nf
+.ta .5i 1.5i
+ \s-1%% outputs `%'
+ %d print pop() as in printf
+ %2d print pop() like %2d
+ %3d print pop() like %3d
+ %02d
+ %03d as in printf
+ %c print pop() gives %c
+ %s print pop() gives %s
+
+ %p[1-9] push ith parm
+ %P[a-z] set variable [a-z] to pop()
+ %g[a-z] get variable [a-z] and push it
+ %'c' char constant c
+ %{nn} integer constant nn
+
+ %+ %- %* %/ %m
+ arithmetic (%m is mod): push(pop() op pop())
+ %& %| %^ bit operations: push(pop() op pop())
+ %= %> %< logical operations: push(pop() op pop())
+ %! %~ unary operations push(op pop())
+ %i add 1 to first two parms (for ANSI terminals)
+
+ %? expr %t thenpart %e elsepart %;
+ if-then-else, %e elsepart is optional.
+ else-if's are possible ala Algol 68:
+ %? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %;
+\s+1 c\di\u are conditions, b\di\u are bodies.
+.fi
+.PP
+Binary operations are in postfix form with the operands in the usual order.
+That is, to get x-5 one would use "%gx%{5}%-".
+.PP
+Consider the HP2645, which, to get to row 3 and column 12, needs
+to be sent \eE&a12c03Y padded for 6 milliseconds. Note that the order
+of the rows and columns is inverted here, and that the row and column
+are printed as two digits.
+Thus its \fBcup\fR capability is \*(lqcup=6\eE&%p2%2dc%p1%2dY\*(rq.
+.PP
+The Microterm \s-1ACT-IV\s0 needs the current row and column sent
+preceded by a \fB^T\fR, with the row and column simply encoded in binary,
+\*(lqcup=^T%p1%c%p2%c\*(rq.
+Terminals which use \*(lq%c\*(rq need to be able to
+backspace the cursor (\fBcub1\fR),
+and to move the cursor up one line on the screen (\fBcuu1\fR).
+This is necessary because it is not always safe to transmit \fB\en\fR
+\fB^D\fR and \fB\er\fR, as the system may change or discard them.
+(The library routines dealing with terminfo set tty modes so that
+tabs are never expanded, so \et is safe to send.
+This turns out to be essential for the Ann Arbor 4080.)
+.PP
+A final example is the \s-1LSI ADM\s0-3a, which uses row and column
+offset by a blank character, thus \*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq.
+After sending `\eE=', this pushes the first parameter, pushes the
+ASCII value for a space (32), adds them (pushing the sum on the stack
+in place of the two previous values) and outputs that value as a character.
+Then the same is done for the second parameter.
+More complex arithmetic is possible using the stack.
+.PP
+If the terminal has row or column absolute cursor addressing,
+these can be given as single parameter capabilities
+.B hpa
+(horizontal position absolute)
+and
+.B vpa
+(vertical position absolute).
+Sometimes these are shorter than the more general two parameter
+sequence (as with the hp2645) and can be used in preference to
+.B cup .
+If there are parameterized local motions (e.g., move
+.I n
+spaces to the right) these can be given as
+.BR cud ,
+.BR cub ,
+.BR cuf ,
+and
+.BR cuu
+with a single parameter indicating how many spaces to move.
+These are primarily useful if the terminal does not have
+.BR cup ,
+such as the \s-1TEKTRONIX\s+1 4025.
+.PP
+.B Cursor Motions
+.PP
+If the terminal has a fast way to home the cursor
+(to very upper left corner of screen) then this can be given as
+\fBhome\fR; similarly a fast way of getting to the lower left-hand corner
+can be given as \fBll\fR; this may involve going up with \fBcuu1\fR
+from the home position,
+but a program should never do this itself (unless \fBll\fR does) because it
+can make no assumption about the effect of moving up from the home position.
+Note that the home position is the same as addressing to (0,0):
+to the top left corner of the screen, not of memory.
+(Thus, the \eEH sequence on HP terminals cannot be used for
+.BR home .)
+.PP
+.B Area Clears
+.PP
+If the terminal can clear from the current position to the end of the
+line, leaving the cursor where it is, this should be given as \fBel\fR.
+If the terminal can clear from the current position to the end of the
+display, then this should be given as \fBed\fR.
+\fBEd\fR is only defined from the first column of a line.
+(Thus, it can be simulated by a request to delete a large number of lines,
+if a true
+.B ed
+is not available.)
+.PP
+.B Insert/delete line
+.PP
+If the terminal can open a new blank line before the line where the cursor
+is, this should be given as \fBil1\fR; this is done only from the first
+position of a line. The cursor must then appear on the newly blank line.
+If the terminal can delete the line which the cursor is on, then this
+should be given as \fBdl1\fR; this is done only from the first position on
+the line to be deleted.
+Versions of
+.B il1
+and
+.B dl1
+which take a single parameter and insert or delete that many lines can
+be given as
+.B il
+and
+.BR dl .
+If the terminal has a settable scrolling region (like the vt100)
+the command to set this can be described with the
+.B csr
+capability, which takes two parameters:
+the top and bottom lines of the scrolling region.
+The cursor position is, alas, undefined after using this command.
+It is possible to get the effect of insert or delete line using
+this command \- the
+.B sc
+and
+.B rc
+(save and restore cursor) commands are also useful.
+Inserting lines at the top or bottom of the screen can also be
+done using
+.B ri
+or
+.B ind
+on many terminals without a true insert/delete line,
+and is often faster even on terminals with those features.
+.PP
+If the terminal has the ability to define a window as part of
+memory, which all commands affect,
+it should be given as the parameterized string
+.BR wind .
+The four parameters are the starting and ending lines in memory
+and the starting and ending columns in memory, in that order.
+.PP
+If the terminal can retain display memory above, then the
+\fBda\fR capability should be given; if display memory can be retained
+below, then \fBdb\fR should be given. These indicate
+that deleting a line or scrolling may bring non-blank lines up from below
+or that scrolling back with \fBri\fR may bring down non-blank lines.
+.PP
+.B Insert/Delete Character
+.PP
+There are two basic kinds of intelligent terminals with respect to
+insert/delete character which can be described using
+.I terminfo.
+The most common insert/delete character operations affect only the characters
+on the current line and shift characters off the end of the line rigidly.
+Other terminals, such as the Concept 100 and the Perkin Elmer Owl, make
+a distinction between typed and untyped blanks on the screen, shifting
+upon an insert or delete only to an untyped blank on the screen which is
+either eliminated, or expanded to two untyped blanks. You can determine the
+kind of terminal you have by clearing the screen and then typing
+text separated by cursor motions. Type \*(lqabc\ \ \ \ def\*(rq using local
+cursor motions (not spaces) between the \*(lqabc\*(rq and the \*(lqdef\*(rq.
+Then position the cursor before the \*(lqabc\*(rq and put the terminal in insert
+mode. If typing characters causes the rest of the line to shift
+rigidly and characters to fall off the end, then your terminal does
+not distinguish between blanks and untyped positions. If the \*(lqabc\*(rq
+shifts over to the \*(lqdef\*(rq which then move together around the end of the
+current line and onto the next as you insert, you have the second type of
+terminal, and should give the capability \fBin\fR, which stands for
+\*(lqinsert null\*(rq.
+While these are two logically separate attributes (one line vs. multiline
+insert mode, and special treatment of untyped spaces) we have seen no
+terminals whose insert mode cannot be described with the single attribute.
+.PP
+Terminfo can describe both terminals which have an insert mode, and terminals
+which send a simple sequence to open a blank position on the current line.
+Give as \fBsmir\fR the sequence to get into insert mode.
+Give as \fBrmir\fR the sequence to leave insert mode.
+Now give as \fBich1\fR any sequence needed to be sent just before sending
+the character to be inserted. Most terminals with a true insert mode
+will not give \fBich1\fR; terminals which send a sequence to open a screen
+position should give it here.
+(If your terminal has both, insert mode is usually preferable to \fBich1\fP.
+Do not give both unless the terminal actually requires both
+to be used in combination.)
+If post insert padding is needed, give this as a number of milliseconds
+in \fBip\fR (a string option). Any other sequence which may need to be
+sent after an insert of a single character may also be given in \fBip\fR.
+If your terminal needs both to be placed into an `insert mode' and
+a special code to precede each inserted character, then both
+.BR smir / rmir
+and
+.B ich1
+can be given, and both will be used.
+The
+.B ich
+capability, with one parameter,
+.IR n ,
+will repeat the effects of
+.B ich1
+.I n
+times.
+.PP
+It is occasionally necessary to move around while in insert mode
+to delete characters on the same line (e.g., if there is a tab after
+the insertion position). If your terminal allows motion while in
+insert mode you can give the capability \fBmir\fR to speed up inserting
+in this case. Omitting \fBmir\fR will affect only speed. Some terminals
+(notably Datamedia's) must not have \fBmir\fR because of the way their
+insert mode works.
+.PP
+Finally, you can specify
+.B dch1
+to delete a single character,
+.B dch
+with one parameter,
+.IR n ,
+to delete
+.I n characters,
+and delete mode by giving \fBsmdc\fR and \fBrmdc\fR
+to enter and exit delete mode (any mode the terminal needs to be placed
+in for
+.B dch1
+to work).
+.PP
+A command to erase
+.I n
+characters (equivalent to outputting
+.I n
+blanks without moving the cursor)
+can be given as
+.B ech
+with one parameter.
+.PP
+.B "Highlighting, Underlining, and Visible Bells"
+.PP
+If your terminal has one or more kinds of display attributes,
+these can be represented in a number of different ways.
+You should choose one display form as
+\f2standout mode\fR,
+representing a good, high contrast, easy-on-the-eyes,
+format for highlighting error messages and other attention getters.
+(If you have a choice, reverse video plus half-bright is good,
+or reverse video alone.)
+The sequences to enter and exit standout mode
+are given as \fBsmso\fR and \fBrmso\fR, respectively.
+If the code to change into or out of standout
+mode leaves one or even two blank spaces on the screen,
+as the TVI 912 and Teleray 1061 do,
+then \fBxmc\fR should be given to tell how many spaces are left.
+.PP
+Codes to begin underlining and end underlining can be given as \fBsmul\fR
+and \fBrmul\fR respectively.
+If the terminal has a code to underline the current character and move
+the cursor one space to the right,
+such as the Microterm Mime,
+this can be given as \fBuc\fR.
+.PP
+Other capabilities to enter various highlighting modes include
+.B blink
+(blinking)
+.B bold
+(bold or extra bright)
+.B dim
+(dim or half-bright)
+.B invis
+(blanking or invisible text)
+.B prot
+(protected)
+.B rev
+(reverse video)
+.B sgr0
+(turn off
+.I all
+attribute modes)
+.B smacs
+(enter alternate character set mode)
+and
+.B rmacs
+(exit alternate character set mode).
+Turning on any of these modes singly may or may not turn off other modes.
+.PP
+If there is a sequence to set arbitrary combinations of modes,
+this should be given as
+.B sgr
+(set attributes),
+taking 9 parameters.
+Each parameter is either 0 or 1, as the corresponding attribute is on or off.
+The 9 parameters are, in order:
+standout, underline, reverse, blink, dim, bold, blank, protect, alternate
+character set.
+Not all modes need be supported by
+.BR sgr ,
+only those for which corresponding separate attribute commands exist.
+.PP
+Terminals with the ``magic cookie'' glitch
+.RB ( xmc )
+deposit special ``cookies'' when they receive mode-setting sequences,
+which affect the display algorithm rather than having extra bits for
+each character.
+Some terminals, such as the HP 2621, automatically leave standout
+mode when they move to a new line or the cursor is addressed.
+Programs using standout mode should exit standout mode before
+moving the cursor or sending a newline,
+unless the
+.B msgr
+capability, asserting that it is safe to move in standout mode, is present.
+.PP
+If the terminal has
+a way of flashing the screen to indicate an error quietly (a bell replacement)
+then this can be given as \fBflash\fR; it must not move the cursor.
+.PP
+If the cursor needs to be made more visible than normal when it is
+not on the bottom line (to make, for example, a non-blinking underline into an
+easier to find block or blinking underline)
+give this sequence as
+.BR cvvis .
+If there is a way to make the cursor completely invisible, give that as
+.BR civis .
+The capability
+.BR cnorm
+should be given which undoes the effects of both of these modes.
+.PP
+If the terminal needs to be in a special mode when running
+a program that uses these capabilities,
+the codes to enter and exit this mode can be given as \fBsmcup\fR and \fBrmcup\fR.
+This arises, for example, from terminals like the Concept with more than
+one page of memory.
+If the terminal has only memory relative cursor addressing and not screen
+relative cursor addressing, a one screen-sized window must be fixed into
+the terminal for cursor addressing to work properly.
+This is also used for the \s-1TEKTRONIX\s+1 4025,
+where
+.B smcup
+sets the command character to be the one used by terminfo.
+.PP
+If your terminal correctly generates underlined characters
+(with no special codes needed)
+even though it does not overstrike,
+then you should give the capability \fBul\fR.
+If overstrikes are erasable with a blank,
+then this should be indicated by giving \fBeo\fR.
+.PP
+.B Keypad
+.PP
+If the terminal has a keypad that transmits codes when the keys are pressed,
+this information can be given. Note that it is not possible to handle
+terminals where the keypad only works in local (this applies, for example,
+to the unshifted HP 2621 keys).
+If the keypad can be set to transmit or not transmit,
+give these codes as \fBsmkx\fR and \fBrmkx\fR.
+Otherwise the keypad is assumed to always transmit.
+The codes sent by the left arrow, right arrow, up arrow, down arrow,
+and home keys can be given as \fBkcub1, kcuf1, kcuu1, kcud1,
+\fRand\fB khome\fR respectively.
+If there are function keys such as f0, f1, ..., f10, the codes they send
+can be given as \fBkf0, kf1, ..., kf10\fR.
+If these keys have labels other than the default f0 through f10, the labels
+can be given as \fBlf0, lf1, ..., lf10\fR.
+The codes transmitted by certain other special keys can be given:
+.B kll
+(home down),
+.B kbs
+(backspace),
+.B ktbc
+(clear all tabs),
+.B kctab
+(clear the tab stop in this column),
+.B kclr
+(clear screen or erase key),
+.B kdch1
+(delete character),
+.B kdl1
+(delete line),
+.B krmir
+(exit insert mode),
+.B kel
+(clear to end of line),
+.B ked
+(clear to end of screen),
+.B kich1
+(insert character or enter insert mode),
+.B kil1
+(insert line),
+.B knp
+(next page),
+.B kpp
+(previous page),
+.B kind
+(scroll forward/down),
+.B kri
+(scroll backward/up),
+.B khts
+(set a tab stop in this column).
+In addition, if the keypad has a 3 by 3 array of keys including the four
+arrow keys, the other five keys can be given as
+.BR ka1 ,
+.BR ka3 ,
+.BR kb2 ,
+.BR kc1 ,
+and
+.BR kc3 .
+These keys are useful when the effects of a 3 by 3 directional pad are needed.
+.PP
+.B Tabs and Initialization
+.PP
+If the terminal has hardware tabs, the command to advance to the next
+tab stop can be given as
+.B ht
+(usually control I).
+A ``backtab'' command which moves leftward to the next tab stop can
+be given as
+.BR cbt .
+By convention, if the teletype modes indicate that tabs are being
+expanded by the computer rather than being sent to the terminal,
+programs should not use
+.B ht
+or
+.B cbt
+even if they are present, since the user may not have the tab stops
+properly set.
+If the terminal has hardware tabs which are initially set every
+.I n
+spaces when the terminal is powered up,
+the numeric parameter
+.B it
+is given, showing the number of spaces the tabs are set to.
+This is normally used by the
+.IR tset
+command to determine whether to set the mode for hardware tab expansion,
+and whether to set the tab stops.
+If the terminal has tab stops that can be saved in nonvolatile memory,
+the terminfo description can assume that they are properly set.
+.PP
+Other capabilities
+include
+.BR is1 ,
+.BR is2 ,
+and
+.BR is3 ,
+initialization strings for the terminal,
+.BR iprog ,
+the path name of a program to be run to initialize the terminal,
+and \fBif\fR, the name of a file containing long initialization strings.
+These strings are expected to set the terminal into modes consistent
+with the rest of the terminfo description.
+They are normally sent to the terminal, by the
+.IR tset
+program, each time the user logs in.
+They will be printed in the following order:
+.BR is1 ;
+.BR is2 ;
+setting tabs using
+.B tbc
+and
+.BR hts ;
+.BR if ;
+running the program
+.BR iprog ;
+and finally
+.BR is3 .
+Most initialization is done with
+.BR is2 .
+Special terminal modes can be set up without duplicating strings
+by putting the common sequences in
+.B is2
+and special cases in
+.B is1
+and
+.BR is3 .
+A pair of sequences that does a harder reset from a totally unknown state
+can be analogously given as
+.BR rs1 ,
+.BR rs2 ,
+.BR rf ,
+and
+.BR rs3 ,
+analogous to
+.B is2
+and
+.BR if .
+These strings are output by the
+.IR reset
+program, which is used when the terminal gets into a wedged state.
+Commands are normally placed in
+.B rs2
+and
+.B rf
+only if they produce annoying effects on the screen and are not
+necessary when logging in.
+For example, the command to set the vt100 into 80-column mode would
+normally be part of
+.BR is2 ,
+but it causes an annoying glitch of the screen and is not normally
+needed since the terminal is usually already in 80 column mode.
+.PP
+If there are commands to set and clear tab stops, they can be given as
+.B tbc
+(clear all tab stops)
+and
+.B hts
+(set a tab stop in the current column of every row).
+If a more complex sequence is needed to set the tabs than can be
+described by this, the sequence can be placed in
+.B is2
+or
+.BR if .
+.PP
+Delays
+.PP
+Certain capabilities control padding in the teletype driver.
+These are primarily needed by hard copy terminals, and are used
+by the
+.IR tset
+program to set teletype modes appropriately.
+Delays embedded in the capabilities
+.BR cr ,
+.BR ind ,
+.BR cub1 ,
+.BR ff ,
+and
+.B tab
+will cause the appropriate delay bits to be set in the teletype driver.
+If
+.B pb
+(padding baud rate)
+is given,
+these values can be ignored at baud rates below the value of
+.BR pb .
+.PP
+.B Miscellaneous
+.PP
+If the terminal requires other than a null (zero) character as a pad,
+then this can be given as \fBpad\fR.
+Only the first character of the
+.B pad
+string is used.
+.PP
+If the terminal has an extra ``status line'' that is not normally
+used by software, this fact can be indicated.
+If the status line is viewed as an extra line below the bottom line,
+into which one can cursor address normally
+(such as the Heathkit h19's 25th line, or the 24th line of a vt100
+which is set to a 23-line scrolling region),
+the capability
+.B hs
+should be given.
+Special strings to go to the beginning of the status
+line and to return from the status line can be given as
+.B tsl
+and
+.BR fsl .
+.RB ( fsl
+must leave the cursor position in the same place it was before
+.BR tsl .
+If necessary, the
+.B sc
+and
+.B rc
+strings can be included in
+.B tsl
+and
+.B fsl
+to get this effect.)
+The parameter
+.B tsl
+takes one parameter, which is the column number of the status line
+the cursor is to be moved to.
+If escape sequences and other special commands, such as tab, work
+while in the status line, the flag
+.B eslok
+can be given.
+A string which turns off the status line (or otherwise erases its
+contents) should be given as
+.BR dsl .
+If the terminal has commands to save and restore the position of the cursor,
+give them as
+.B sc
+and
+.BR rc .
+The status line is normally assumed to be the same width as the rest
+of the screen, e.g.,
+.BR cols .
+If the status line is a different width (possibly because the terminal
+does not allow an entire line to be loaded) the width, in columns,
+can be indicated with the numeric parameter
+.BR wsl .
+.PP
+If the terminal can move up or down half a line,
+this can be indicated with
+.B hu
+(half-line up)
+and
+.B hd
+(half-line down).
+This is primarily useful for superscripts and subscripts on hardcopy terminals.
+If a hardcopy terminal can eject to the next page (form feed), give this as
+.B ff
+(usually control L).
+.PP
+If there is a command to repeat a given character a given number of
+times (to save time transmitting a large number of identical characters)
+this can be indicated with the parameterized string
+.BR rep .
+The first parameter is the character to be repeated and the second
+is the number of times to repeat it.
+Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'.
+.PP
+If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025,
+this can be indicated with
+.BR cmdch .
+A prototype command character is chosen which is used in all capabilities.
+This character is given in the
+.B cmdch
+capability to identify it.
+The following convention is supported on some UNIX systems:
+The environment is to be searched for a
+.B CC
+variable, and if found, all
+occurrences of the prototype character are replaced with the character
+in the environment variable.
+.PP
+Terminal descriptions that do not represent a specific kind of known
+terminal, such as
+.IR switch ,
+.IR dialup ,
+.IR patch ,
+and
+.IR network ,
+should include the
+.B gn
+(generic) capability so that programs can complain that they do not know
+how to talk to the terminal.
+(This capability does not apply to
+.I virtual
+terminal descriptions for which the escape sequences are known.)
+.PP
+If the terminal uses xon/xoff handshaking for flow control, give
+.BR xon .
+Padding information should still be included so that routines can
+make better decisions about costs, but actual pad characters will
+not be transmitted.
+.PP
+If the terminal has a ``meta key'' which acts as a shift key,
+setting the 8th bit of any character transmitted, this fact can
+be indicated with
+.BR km .
+Otherwise, software will assume that the 8th bit is parity and it
+will usually be cleared.
+If strings exist to turn this ``meta mode'' on and off, they
+can be given as
+.B smm
+and
+.BR rmm .
+.PP
+If the terminal has more lines of memory than will fit on the screen
+at once, the number of lines of memory can be indicated with
+.BR lm .
+A value of
+.BR lm #0
+indicates that the number of lines is not fixed,
+but that there is still more memory than fits on the screen.
+.PP
+If the terminal is one of those supported by the \s-1UNIX\s+1 virtual
+terminal protocol, the terminal number can be given as
+.BR vt .
+.PP
+Media copy
+strings which control an auxiliary printer connected to the terminal
+can be given as
+.BR mc0 :
+print the contents of the screen,
+.BR mc4 :
+turn off the printer, and
+.BR mc5 :
+turn on the printer.
+When the printer is on, all text sent to the terminal will be sent
+to the printer.
+It is undefined whether the text is also displayed on the terminal screen
+when the printer is on.
+A variation
+.B mc5p
+takes one parameter, and leaves the printer on for as many characters
+as the value of the parameter, then turns the printer off.
+The parameter should not exceed 255.
+All text, including
+.BR mc4 ,
+is transparently passed to the printer while an
+.B mc5p
+is in effect.
+.PP
+Strings to program function keys can be given as
+.BR pfkey ,
+.BR pfloc ,
+and
+.BR pfx .
+Each of these strings takes two parameters: the function key number to
+program (from 0 to 10) and the string to program it with.
+Function key numbers out of this range may program undefined keys in
+a terminal dependent manner.
+The difference between the capabilities is that
+.B pfkey
+causes pressing the given key to be the same as the user typing the
+given string;
+.B pfloc
+causes the string to be executed by the terminal in local; and
+.B pfx
+causes the string to be transmitted to the computer.
+.PP
+.B Glitches and Braindamage
+.PP
+Hazeltine terminals, which do not allow `~' characters to be displayed should
+indicate \fBhz\fR.
+.PP
+Terminals which ignore a linefeed immediately after an \fBam\fR wrap,
+such as the Concept and vt100,
+should indicate \fBxenl\fR.
+.PP
+If
+.B el
+is required to get rid of standout
+(instead of merely writing normal text on top of it),
+\fBxhp\fP should be given.
+.PP
+Teleray terminals, where tabs turn all characters moved over to blanks,
+should indicate \fBxt\fR (destructive tabs).
+Note: the variable indicating this is now `dest_tabs_magic_smso'; in
+older versions, it was teleray_glitch.
+This glitch is also taken to mean that it is not possible to position
+the cursor on top of a ``magic cookie'',
+that to erase standout mode it is instead necessary to use
+delete and insert line.
+.PP
+The Beehive Superbee, which is unable to correctly transmit the escape
+or control C characters, has
+.BR xsb ,
+indicating that the f1 key is used for escape and f2 for control C.
+(Only certain Superbees have this problem, depending on the ROM.)
+Note that in older terminfo versions, this capability was called
+`beehive_glitch'; it is now `no_esc_ctl_c'.
+.PP
+Other specific terminal problems may be corrected by adding more
+capabilities of the form \fBx\fIx\fR.
+.PP
+.B Similar Terminals
+.PP
+If there are two very similar terminals,
+one can be defined as being just like the other with certain exceptions.
+The string capability \fBuse\fR can be given
+with the name of the similar terminal.
+The capabilities given before
+.B use
+override those in the terminal type invoked by
+.BR use .
+A capability can be cancelled by placing \fBxx@\fR to the left of the
+capability definition, where xx is the capability.
+For example, the entry
+.PP
+ 2621-nl, smkx@, rmkx@, use=2621,
+.PP
+defines a 2621-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
+and hence does not turn on the function key labels when in visual mode.
+This is useful for different modes for a terminal, or for different
+user preferences.
+.SH FILES
+.TP 25
+\*d/?/*
+files containing terminal descriptions
+.SH "SEE ALSO"
+tic(1m), curses(3X), printf(3S), term(\*n).
+.SH AUTHORS
+Pavel Curtis, Zeyd M. Ben-Halim
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
OpenPOWER on IntegriCloud