Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site pegasus.UUCP Path: utzoo!linus!decvax!harpo!eagle!hou5h!hou5a!hou5d!hogpc!pegasus!hansen From: hansen@pegasus.UUCP Newsgroups: net.info-terms,net.unix-wizards Subject: re: termcap vs. terminfo Message-ID: <998@pegasus.UUCP> Date: Sat, 25-Feb-84 21:06:37 EST Article-I.D.: pegasus.998 Posted: Sat Feb 25 21:06:37 1984 Date-Received: Sun, 26-Feb-84 05:00:21 EST Distribution: net Organization: AT&T Information Systems, Lincroft NJ Lines: 250 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) ----------------------+-------------------------------+-------------------------------------------