- notated as \054). White space after the `,' separator is
- ignored. The first entry for each terminal gives the
- names which are known for the terminal, separated by `|'
- characters. The first name given is the most common
- abbreviation for the terminal, the last name given should
- be a long name fully identifying the terminal, and all
- others are understood as synonyms for the terminal name.
+ notated as \054). White space after the `,' separator is
+ ignored. The first entry for each terminal gives the
+ names which are known for the terminal, separated by `|'
+ characters. The first name given is the most common
+ abbreviation for the terminal, the last name given should
+ be a long name fully identifying the terminal, and all
+ others are understood as synonyms for the terminal name.
- a large file at 9600 baud, delete 16 or so lines from the
- middle of the screen, then hit the `u' key several times
- quickly. If the terminal messes up, more padding is usu-
- ally needed. A similar test can be used for insert char-
+ a large file at 9600 baud, delete 16 or so lines from the
+ middle of the screen, then hit the `u' key several times
+ quickly. If the terminal messes up, more padding is usu-
+ ally needed. A similar test can be used for insert char-
- nal can clear its screen, leaving the cursor in the home
- position, then this is given by the <STRONG>clear</STRONG> string capabil-
- ity. If the terminal overstrikes (rather than clearing a
- position when a character is struck over) then it should
- have the <STRONG>os</STRONG> capability. If the terminal is a printing
- terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.
- (<STRONG>os</STRONG> applies to storage scope terminals, such as TEKTRONIX
- 4010 series, as well as hard copy and APL terminals.) If
+ nal can clear its screen, leaving the cursor in the home
+ position, then this is given by the <STRONG>clear</STRONG> string capabil-
+ ity. If the terminal overstrikes (rather than clearing a
+ position when a character is struck over) then it should
+ have the <STRONG>os</STRONG> capability. If the terminal is a printing
+ terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.
+ (<STRONG>os</STRONG> applies to storage scope terminals, such as TEKTRONIX
+ 4010 series, as well as hard copy and APL terminals.) If
that tabs are never expanded, so \t is safe to send. This
turns out to be essential for the Ann Arbor 4080.)
A final example is the LSI ADM-3a, which uses row and col-
umn offset by a blank character, thus "cup=\E=%p1%'
that tabs are never expanded, so \t is safe to send. This
turns out to be essential for the Ann Arbor 4080.)
A final example is the LSI ADM-3a, which uses row and col-
umn offset by a blank character, thus "cup=\E=%p1%'
- '%+%c%p2%' '%+%c". After sending `\E=', 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 charac-
- ter. Then the same is done for the second parameter.
+ '%+%c%p2%' '%+%c". After sending `\E=', 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 charac-
+ ter. Then the same is done for the second parameter.
- upper left corner of screen) then this can be given as
- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
- with <STRONG>cuu1</STRONG> from the home position, but a program should
- never do this itself (unless <STRONG>ll</STRONG> 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
+ upper left corner of screen) then this can be given as
+ <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
+ hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
+ with <STRONG>cuu1</STRONG> from the home position, but a program should
+ never do this itself (unless <STRONG>ll</STRONG> 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
- beginning of the line to the current position inclusive,
- leaving the cursor where it is, this should be given as
- <STRONG>el1</STRONG>. If the terminal can clear from the current position
- to the end of the display, then this should be given as
- <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
- (Thus, it can be simulated by a request to delete a large
+ beginning of the line to the current position inclusive,
+ leaving the cursor where it is, this should be given as
+ <STRONG>el1</STRONG>. If the terminal can clear from the current position
+ to the end of the display, then this should be given as
+ <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
+ (Thus, it can be simulated by a request to delete a large
- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
- scrolling window is effectively a view port on a screen-
- sized canvas. To test for this capability, create a
- scrolling region in the middle of the screen, write some-
- thing to the bottom line, move the cursor to the top of
+ The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
+ scrolling window is effectively a view port on a screen-
+ sized canvas. To test for this capability, create a
+ scrolling region in the middle of the screen, write some-
+ thing to the bottom line, move the cursor to the top of
- scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
- appears, then scrolling is non-destructive. System V and
- XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
- late destructive scrolling; their documentation cautions
- you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
+ scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
+ appears, then scrolling is non-destructive. System V and
+ XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
+ late destructive scrolling; their documentation cautions
+ you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
- If the terminal can retain display memory above, then the
- <STRONG>da</STRONG> capability should be given; if display memory can be
- retained below, then <STRONG>db</STRONG> should be given. These indicate
- that deleting a line or scrolling may bring non-blank
- lines up from below or that scrolling back with <STRONG>ri</STRONG> may
+ If the terminal can retain display memory above, then the
+ <STRONG>da</STRONG> capability should be given; if display memory can be
+ retained below, then <STRONG>db</STRONG> should be given. These indicate
+ that deleting a line or scrolling may bring non-blank
+ lines up from below or that scrolling back with <STRONG>ri</STRONG> may
- There are two basic kinds of intelligent terminals with
- respect to insert/delete character which can be described
- using <EM>terminfo.</EM> 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 "abc def" using local cursor motions (not spaces)
+ There are two basic kinds of intelligent terminals with
+ respect to insert/delete character which can be described
+ using <EM>terminfo.</EM> 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 "abc def" using local cursor motions (not spaces)
- minal does not distinguish between blanks and untyped
- positions. If the "abc" shifts over to the "def" 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 <STRONG>in</STRONG>, which stands
+ minal does not distinguish between blanks and untyped
+ positions. If the "abc" shifts over to the "def" 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 <STRONG>in</STRONG>, which stands
- If your terminal has both, insert mode is usually prefer-
- able to <STRONG>ich1</STRONG>. Technically, you should not give both
- unless the terminal actually requires both to be used in
- combination. Accordingly, some non-curses applications
- get confused if both are present; the symptom is doubled
+ If your terminal has both, insert mode is usually prefer-
+ able to <STRONG>ich1</STRONG>. Technically, you should not give both
+ unless the terminal actually requires both to be used in
+ combination. Accordingly, some non-curses applications
+ get confused if both are present; the symptom is doubled
- in insert mode, give this as a number of milliseconds
- padding in <STRONG>rmp</STRONG>.
-
- 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 <STRONG>mir</STRONG> to speed up inserting in this case.
- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
+ in insert mode, give this as a number of milliseconds pad-
+ ding in <STRONG>rmp</STRONG>.
+
+ 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 <STRONG>mir</STRONG> to speed up inserting in this case.
+ Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
- delete mode (any mode the terminal needs to be placed in
+ Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
+ ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
+ and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
+ delete mode (any mode the terminal needs to be placed in
- 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
- <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, 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,
+ 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
+ <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
+ or out of standout mode leaves one or even two blank spa-
+ ces on the screen, as the TVI 912 and Teleray 1061 do,
- programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are pre-
- sent, since the user may not have the tab stops properly
- set. If the terminal has hardware tabs which are ini-
- tially set every <EM>n</EM> spaces when the terminal is powered up,
- the numeric parameter <STRONG>it</STRONG> is given, showing the number of
- spaces the tabs are set to. This is normally used by the
- <EM>tset</EM> command to determine whether to set the mode for
+ programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
+ present, since the user may not have the tab stops prop-
+ erly set. If the terminal has hardware tabs which are
+ initially set every <EM>n</EM> spaces when the terminal is powered
+ up, the numeric parameter <STRONG>it</STRONG> is given, showing the number
+ of spaces the tabs are set to. This is normally used by
+ the <EM>tset</EM> command to determine whether to set the mode for
- the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
- <STRONG>is3</STRONG>. A pair of sequences that does a harder reset from a
- totally unknown state can be analogously given as <STRONG>rs1</STRONG>,
- <STRONG>rs2</STRONG>, <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>. These strings
- are output by the <EM>reset</EM> program, which is used when the
- terminal gets into a wedged state. Commands are normally
- placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoy-
- ing effects on the screen and are not necessary when log-
- ging in. For example, the command to set the vt100 into
- 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
- causes an annoying glitch of the screen and is not nor-
- mally needed since the terminal is usually already in 80
- column mode.
+ the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
+ <STRONG>is3</STRONG>.
+
+ A set of sequences that does a harder reset from a totally
+ unknown state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analo-
+ gous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG> and <STRONG>is3</STRONG> respectively. These
+ strings are output by the <EM>reset</EM> program, which is used
+ when the terminal gets into a wedged state. Commands are
+ normally placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they pro-
+ duce 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 <STRONG>is2</STRONG>,
+ but it causes an annoying glitch of the screen and is not
+ normally needed since the terminal is usually already in
+ 80 column mode.
+
+ The <EM>reset</EM> program writes strings including <STRONG>iprog</STRONG>, etc., in
+ the same order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc.,
+ instead of <STRONG>is1</STRONG>, etc. If any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset
+ capability strings are missing, the <EM>reset</EM> program falls
+ back upon the corresponding initialization capability
+ string.
- <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
- <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
- UK pound sign ACS_STERLING f }
- arrow pointing down ACS_DARROW v .
- arrow pointing left ACS_LARROW < ,
- arrow pointing right ACS_RARROW > +
- arrow pointing up ACS_UARROW ^ -
- board of squares ACS_BOARD # h
- bullet ACS_BULLET o ~
- checker board (stipple) ACS_CKBOARD : a
- degree symbol ACS_DEGREE \ f
-
- diamond ACS_DIAMOND + `
- greater-than-or-equal-to ACS_GEQUAL > z
- greek pi ACS_PI * {
- horizontal line ACS_HLINE - q
- lantern symbol ACS_LANTERN # i
- large plus or crossover ACS_PLUS + n
- less-than-or-equal-to ACS_LEQUAL < y
- lower left corner ACS_LLCORNER + m
- lower right corner ACS_LRCORNER + j
- not-equal ACS_NEQUAL ! |
- plus/minus ACS_PLMINUS # g
- scan line 1 ACS_S1 ~ o
- scan line 3 ACS_S3 - p
- scan line 7 ACS_S7 - r
- scan line 9 ACS_S9 _ s
- solid square block ACS_BLOCK # 0
- tee pointing down ACS_TTEE + w
- tee pointing left ACS_RTEE + u
- tee pointing right ACS_LTEE + t
- tee pointing up ACS_BTEE + v
- upper left corner ACS_ULCORNER + l
- upper right corner ACS_URCORNER + k
- vertical line ACS_VLINE | x
-
- The best way to define a new device's graphics set is to
- add a column to a copy of this table for your terminal,
- giving the character which (when emitted between
- <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
- ing graphic. Then read off the VT100/your terminal char-
- acter pairs right to left in sequence; these become the
+ <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
+ <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
+ UK pound sign ACS_STERLING f }
+ arrow pointing down ACS_DARROW v .
+ arrow pointing left ACS_LARROW < ,
+ arrow pointing right ACS_RARROW > +
+ arrow pointing up ACS_UARROW ^ -
+ board of squares ACS_BOARD # h
+ bullet ACS_BULLET o ~
+ checker board (stipple) ACS_CKBOARD : a
+ degree symbol ACS_DEGREE \ f
+ diamond ACS_DIAMOND + `
+ greater-than-or-equal-to ACS_GEQUAL > z
+ greek pi ACS_PI * {
+ horizontal line ACS_HLINE - q
+ lantern symbol ACS_LANTERN # i
+ large plus or crossover ACS_PLUS + n
+ less-than-or-equal-to ACS_LEQUAL < y
+ lower left corner ACS_LLCORNER + m
+ lower right corner ACS_LRCORNER + j
+ not-equal ACS_NEQUAL ! |
+ plus/minus ACS_PLMINUS # g
+ scan line 1 ACS_S1 ~ o
+ scan line 3 ACS_S3 - p
+ scan line 7 ACS_S7 - r
+ scan line 9 ACS_S9 _ s
+ solid square block ACS_BLOCK # 0
+ tee pointing down ACS_TTEE + w
+ tee pointing left ACS_RTEE + u
+ tee pointing right ACS_LTEE + t
+ tee pointing up ACS_BTEE + v
+ upper left corner ACS_ULCORNER + l
+
+ upper right corner ACS_URCORNER + k
+ vertical line ACS_VLINE | x
+
+ The best way to define a new device's graphics set is to
+ add a column to a copy of this table for your terminal,
+ giving the character which (when emitted between
+ <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
+ ing graphic. Then read off the VT100/your terminal char-
+ acter pairs right to left in sequence; these become the
- the maximum numbers of colors and color-pairs that can be
- displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
- resets foreground and background colors to their default
- values for the terminal. The <STRONG>oc</STRONG> string resets all colors
- or color-pairs to their default values for the terminal.
- Some terminals (including many PC terminal emulators)
- erase screen areas with the current background color
- rather than the power-up default background; these should
+ the maximum numbers of colors and color-pairs that can be
+ displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
+ resets foreground and background colors to their default
+ values for the terminal. The <STRONG>oc</STRONG> string resets all colors
+ or color-pairs to their default values for the terminal.
+ Some terminals (including many PC terminal emulators)
+ erase screen areas with the current background color
+ rather than the power-up default background; these should
- To change the current foreground or background color on a
- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
- and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
- and <STRONG>setb</STRONG> (set background). These take one parameter, the
+ To change the current foreground or background color on a
+ Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
+ and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
+ and <STRONG>setb</STRONG> (set background). These take one parameter, the
- ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
- tively. If the terminal supports other escape sequences
- to set background and foreground, they should be coded as
- <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
- the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
+ ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
+ tively. If the terminal supports other escape sequences
+ to set background and foreground, they should be coded as
+ <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
+ the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
- On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
- changing a color-pair value. It will take seven parame-
- ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
- triples describing first background and then foreground
- colors. These parameters must be (Red, Green, Blue) or
+ On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
+ changing a color-pair value. It will take seven parame-
+ ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
+ triples describing first background and then foreground
+ colors. These parameters must be (Red, Green, Blue) or
- 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 <STRONG>rep</STRONG>. 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
+ 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 <STRONG>rep</STRONG>. 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
- date, no entry has even approached terminfo's 4K string-
- table maximum. Unfortunately, the termcap translations
- are much more strictly limited (to 1K), thus termcap
- translations of long terminfo entries can cause problems.
-
- The man pages for 4.3BSD and older versions of tgetent()
- instruct the user to allocate a 1K buffer for the termcap
- entry. The entry gets null-terminated by the termcap
- library, so that makes the maximum safe length for a term-
- cap entry 1k-1 (1023) bytes. Depending on what the appli-
- cation and the termcap library being used does, and where
- in the termcap file the terminal type that tgetent() is
- searching for is, several bad things can happen.
+ date, no entry has even approached terminfo's 4096-byte
+ string-table maximum. Unfortunately, the termcap transla-
+ tions are much more strictly limited (to 1023 bytes), thus
+ termcap translations of long terminfo entries can cause
+ problems.
+
+ The man pages for 4.3BSD and older versions of <STRONG>tgetent()</STRONG>
+ instruct the user to allocate a 1024-byte buffer for the
+ termcap entry. The entry gets null-terminated by the
+ termcap library, so that makes the maximum safe length for
+ a termcap entry 1k-1 (1023) bytes. Depending on what the
+ application and the termcap library being used does, and
+ where in the termcap file the terminal type that <STRONG>tgetent()</STRONG>
+ is searching for is, several bad things can happen.
of course the two lengths are the same.
The "before tc expansion" length is the most important
one, because it affects more than just users of that par-
ticular terminal. This is the length of the entry as it
exists in /etc/termcap, minus the backslash-newline pairs,
of course the two lengths are the same.
The "before tc expansion" length is the most important
one, because it affects more than just users of that par-
ticular terminal. This is the length of the entry as it
exists in /etc/termcap, minus the backslash-newline pairs,