termcap vs. terminfo
hansen at pegasus.UUCP
hansen at pegasus.UUCP
Sun Feb 26 12:06:37 AEST 1984
Being on a System V machine, which supports termcap, that is getting ready
to convert to System V Release 2, which supports terminfo, I have found the
following table to be very handy in my own work for converting from termcap
to terminfo. It is a comparison between the termcap list as given in 4.2BSD
and the terminfo list given in SVR2, plus several entries that have been
added since SVR2 was put out.
There are four major columns below: the termcap name for each capability;
the name as used in a C program; the terminfo name; and, a short description
of the capability. The termcap name is further subdivided into three columns
depending on which database supports the given capability.
There are several reasons that there are still termcap names associated with
each terminfo entry. One is so that a termcap emulation package can be
supported. Another is that several tools use the termcap names as a two
character index into the tables. The most prominent reason, I think, is to
give some common base for discussion between users of termcap and users of
terminfo.
The termcap entries no longer supported were mostly subsumed by other entries.
For instance, "dC" is the padding for carriage return. It would now be noted
directly within the "cr" entry.
The bogus termcap name "MT" was never officially supported and is really "km".
The "ml" and "mu" capabilities are no longer supported at all. I don't know
why not.
I hope this table is of as much help to other people as it has been to me.
If there are any termcap entries around that are not listed below, I would
appreciate hearing about them.
Tony Hansen
AT&T-Information Systems
pegasus!hansen
----------------
caps.vs.info
----------------
Termcap vs Terminfo
------- -- --------
----------------------+-------------------------------+-------------------------------------------
termcap name | |
as in | | term-
term- term- | | info
cap info both | type C variable name | name description
----------------------+-------------------------------+-------------------------------------------
| |
AL | str parm_insert_line | il Add #1 new blank lines (G*)
CC | str command_character | cmdch Term. settable cmd char in prototype
CM | str cursor_mem_address | mrcup Memory relative cursor addressing.
DC | str parm_dch | dch Delete #1 chars (G*)
DL | str parm_delete_line | dl Delete #1 lines (G*)
DO | str parm_down_cursor | cud Move cursor down #1 lines. (G*)
IC | str parm_ich | ich Insert #1 blank chars (G*)
K1 | str key_a1 | ka1 Upper left of keypad
K2 | str key_b2 | kb2 Center of keypad
K3 | str key_a3 | ka3 Upper right of keypad
K4 | str key_c1 | kc1 Lower left of keypad
K5 | str key_c3 | kc3 Lower right of keypad
LE | str parm_left_cursor | cub Move cursor left #1 spaces (G)
Nl | num num_labels | nlab # function key labels
RI | str parm_right_cursor | cuf Move cursor right #1 spaces. (G*)
SF | str parm_index | indn Scroll forward #1 lines. (G)
SR | str parm_rindex | rin Scroll backward #1 lines. (G)
UP | str parm_up_cursor | cuu Move cursor up #1 lines. (G*)
ac | str acs_chars | acsc Graphics char set pairs aAbBcC - defn=vt100.
ae | str exit_alt_charset_mode | rmacs End alternate character set
al | str insert_line | il1 Add new blank line (*)
am | bool auto_right_margin | am Terminal has automatic margins
as | str enter_alt_charset_mode| smacs Start alternate character set
bc | str combined with cub1 | Backspace if not "^H"
bl | str bell | bel Audible signal (bell)
bs | bool combined with cub1 | Terminal can backspace with "^H"
bt | str back_tab | cbt Back tab
bw | bool auto_left_margin | bw cub1 wraps from column 0 to last column
cd | str clr_eos | ed Clear to end of display (*)
ce | str clr_eol | el Clear to end of line
ch | str column_address | hpa Set cursor column (G)
cl | str clear_screen | clear Clear screen (*)
cm | str cursor_address | cup Cursor motion to row #1 col #2 (G)
co | num columns | cols Number of columns in a line
cr | str carriage_return | cr Carriage return (*)
cs | str change_scroll_region | csr change to lines #1 thru #2 (vt100) (G)
ct | str clear_all_tabs | tbc Clear all tab stops.
cv | str row_address | vpa Like hpa but sets row. (G)
dB | num combined with cub1 | Number of millisec of bs delay needed
dC | num combined with cr | Number of millisec of cr delay needed
dF | num combined with ff | Number of millisec of ff delay needed
dN | num combined with cud1 | Number of millisec of nl delay needed
dT | num combined with ht | Number of millisec of tab delay needed
da | bool memory_above | da Display may be retained above the screen
db | bool memory_below | db Display may be retained below the screen
dc | str delete_character | dch1 Delete character (*)
dl | str delete_line | dl1 Delete line (*)
dm | str enter_delete_mode | smdc Delete mode (enter)
do | str cursor_down | cud1 Down one line
ds | str dis_status_line | dsl Disable status line
ec | str erase_chars | ech Erase #1 characters (G)
ed | str exit_delete_mode | rmdc End delete mode
ei | str exit_insert_mode | rmir End insert mode;
eo | bool erase_overstrike | eo Can erase overstrikes with a blank
es | bool status_line_esc_ok | eslok Escape can be used on the status line
ff | str form_feed | ff Hardcopy terminal page eject (*)
fs | str from_status_line | fsl Return from status line
gn | bool generic_type | gn Generic line type (e.g. dialup, switch).
hc | bool hard_copy | hc Hardcopy terminal
hd | str down_half_line | hd Half-line down (forward 1/2 linefeed)
ho | str cursor_home | home Home cursor (if no cup)
hs | bool has_status_line | hs Has extra "status line"
hu | str up_half_line | hu Half-line up (reverse 1/2 linefeed)
hz | bool tilde_glitch | hz Hazeltine; can't print ~'s
i1 | str init_1string | is1 Terminal initialization string
i2 | str init_3string | is3 Terminal initialization string
iP | str init_prog | iprog Path name of program for init.
ic | str insert_character | ich1 Insert character
if | str init_file | if Name of file containing is
im | str enter_insert_mode | smir Insert mode (enter);
in | bool insert_null_glitch | in Insert mode distinguishes nulls
ip | str insert_padding | ip Insert pad after character inserted (*)
is | str init_2string | is2 Terminal initialization string
it | num init_tabs | it Tabs initially every # spaces.
k0 | str key_f0 | kf0 Sent by function key f0.
k1 | str key_f1 | kf1 Sent by function key f1.
k2 | str key_f2 | kf2 Sent by function key f2.
k3 | str key_f3 | kf3 Sent by function key f3.
k4 | str key_f4 | kf4 Sent by function key f4.
k5 | str key_f5 | kf5 Sent by function key f5.
k6 | str key_f6 | kf6 Sent by function key f6.
k7 | str key_f7 | kf7 Sent by function key f7.
k8 | str key_f8 | kf8 Sent by function key f8.
k9 | str key_f9 | kf9 Sent by function key f9.
k; | str key_f10 | kf10 Has a meta key (shift, sets parity bit)
kA | str key_il | kil1 Sent by insert line.
kB | str key_btab | kcbt Sent by back-tab key.
kC | str key_clear | kclr Sent by clear screen or erase key.
kD | str key_dc | kdch1 Sent by delete character key.
kE | str key_eol | kel Sent by clear-to-end-of-line key.
kF | str key_sf | kind Sent by scroll-forward/down key
kH | str key_ll | kll Sent by home-down key
kI | str key_ic | kich1 Sent by ins char/enter ins mode key.
kL | str key_dl | kdl1 Sent by delete line key.
kM | str key_eic | krmir Sent by rmir or smir in insert mode.
kN | str key_npage | knp Sent by next-page key
kP | str key_ppage | kpp Sent by previous-page key
kR | str key_sr | kri Sent by scroll-backward/up key
kS | str key_eos | ked Sent by clear-to-end-of-screen key.
kT | str key_stab | khts Sent by set-tab key
ka | str key_catab | ktbc Sent by clear-all-tabs key.
kb | str key_backspace | kbs Sent by backspace key
kd | str key_down | kcud1 Sent by terminal down arrow key
ke | str keypad_local | rmkx Out of "keypad transmit" mode
kh | str key_home | khome Sent by home key.
kl | str key_left | kcub1 Sent by terminal left arrow key
km | bool has_meta_key | km Has a meta key (shift, sets parity bit)
kn | num never supported | Number of "other" keys
ko | str combined with key_* | Termcap entries for other non-function keys
kr | str key_right | kcuf1 Sent by terminal right arrow key
ks | str keypad_xmit | smkx Put terminal in "keypad transmit" mode
kt | str key_ctab | kctab Sent by clear-tab key
ku | str key_up | kcuu1 Sent by terminal up arrow key
l0 | str lab_f0 | lf0 Labels on function key f0 if not f0
l1 | str lab_f1 | lf1 Labels on function key f1 if not f1
l2 | str lab_f2 | lf2 Labels on function key f2 if not f2
l3 | str lab_f3 | lf3 Labels on function key f3 if not f3
l4 | str lab_f4 | lf4 Labels on function key f4 if not f4
l5 | str lab_f5 | lf5 Labels on function key f5 if not f5
l6 | str lab_f6 | lf6 Labels on function key f6 if not f6
l7 | str lab_f7 | lf7 Labels on function key f7 if not f7
l8 | str lab_f8 | lf8 Labels on function key f8 if not f8
l9 | str lab_f9 | lf9 Labels on function key f9 if not f9
la | str lab_f10 | lf10 Labels on function key f10 if not f10
le | str cursor_left | cub1 Move cursor left one space.
lh | num label_height | lh height of labels
li | num lines | lines Number of lines on screen or page
ll | str cursor_to_ll | ll Last line, first column (if no cup)
lm | num lines_of_memory | lm Lines of memory if > lines. 0 => varies
lw | num label_width | lw width of labels
ma | str combined with key_* | Arrow key map, used by vi version 2 only
mb | str enter_blink_mode | blink Turn on blinking
md | str enter_bold_mode | bold Turn on bold (extra bright) mode
me | str exit_attribute_mode | sgr0 Turn off all attributes
mh | str enter_dim_mode | dim Turn on half-bright mode
mi | bool move_insert_mode | mir Safe to move while in insert mode
mk | str enter_secure_mode | invis Turn on blank mode (chars invisible)
ml | str support dropped | Memory lock on above cursor.
mm | str meta_on | smm Turn on "meta mode" (8th bit)
mo | str meta_off | rmm Turn off "meta mode"
mp | str enter_protected_mode | prot Turn on protected mode
mr | str enter_reverse_mode | rev Turn on reverse video mode
ms | bool move_standout_mode | msgr Safe to move in standout modes
mu | str support dropped | Memory unlock (turn off memory lock).
nc | bool combined with cr | No correctly working carriage return (DM2500,H2000)
nd | str cursor_right | cuf1 Non-destructive space (cursor right)
nl | str combined with cud1 | Newline character (default "\n")
ns | bool combined with ind | Terminal is a CRT but doesn't scroll.
nw | str newline | nel Newline (behaves like cr followed by lf)
os | bool over_strike | os Terminal overstrikes
pO | str prtr_non | mc5p Turn on the printer for #1 bytes.
pb | num padding_baud_rate | pb Lowest baud rate where padding needed
pc | str pad_char | pad Pad character (rather than null)
pf | str prtr_off | mc4 Turn off the printer
pk | str pkey_key | pfkey Prog funct key #1 to type string #2
pl | str pkey_local | pfloc Prog funct key #1 to execute string #2
pn | str plab_norm | pln program label of funct key #1 with string #2
po | str prtr_on | mc5 Turn on the printer
ps | str print_screen | mc0 Print contents of the screen
pt | bool combined with it | Has hardware tabs (may need to be set with "is")
px | str pkey_xmit | pfx Prog funct key #1 to xmit string #2
r1 | str reset_1string | rs1 Reset terminal completely to sane modes.
r2 | str reset_2string | rs2 Reset terminal completely to sane modes.
r3 | str reset_3string | rs3 Reset terminal completely to sane modes.
rP | str char_padding | rmp Like ip but when in replace mode
rc | str restore_cursor | rc Restore cursor to position of last sc.
rf | str reset_file | rf Name of file containing reset string.
rp | str repeat_char | rep Repeat char #1 #2 times. (G*)
sa | str set_attributes | sgr Define the video attributes (G9)
sc | str save_cursor | sc Save cursor position.
se | str exit_standout_mode | rmso End stand out mode
sf | str scroll_forward | ind Scroll text up
sg | num magic_cookie_glitch | xmc Number blank chars left by smso or rmso
so | str enter_standout_mode | smso Begin stand out mode
sr | str scroll_reverse | ri Scroll text down
st | str set_tab | hts Set a tab in all rows, current column.
ta | str tab | ht Tab to next 8 space hardware tab stop.
tc | str | use Entry of similar terminal - must be last
te | str exit_ca_mode | rmcup String to end programs that use cup
ti | str enter_ca_mode | smcup String to begin programs that use cup
ts | str to_status_line | tsl Go to status line, column #1
uc | str underline_char | uc Underscore one char and move past it
ue | str exit_underline_mode | rmul End underscore mode
ug | num combined with xmc | Number of blank chars left by us or ue
ul | bool transparent_underline | ul underline character overstrikes
up | str cursor_up | cuu1 Upline (cursor up)
us | str enter_underline_mode | smul Start underscore mode
vb | str flash_screen | flash Visible bell (may not move cursor)
ve | str cursor_normal | cnorm Make cursor appear normal (undo vs/vi)
vi | str cursor_invisible | civis Make cursor invisible
vs | str cursor_visible | cvvis Make cursor very visible
vt | num virtual_terminal | vt Virtual terminal number (CB/Unix)
wi | str set_window | wind Current window is lines #1-#2 cols #3-#4
ws | num width_status_line | wsl # columns in status line
xb | bool beehive_glitch | xsb Beehive (f1=escape, f2=ctrl C)
xn | bool eat_newline_glitch | xenl newline ignored after 80 cols (Concept)
xo | bool xon_xoff | xon Terminal uses xon/xoff handshaking
xr | bool combined with cr | Return acts like ce \r \n (Delta Data)
xs | bool ceol_standout_glitch | xhp Standout not erased by overwriting (hp)
xt | bool teleray_glitch | xt Tabs destructive, magic so char (t1061)
----------------------+-------------------------------+-------------------------------------------
More information about the Comp.unix.wizards
mailing list