4328 lines
137 KiB
HTML
4328 lines
137 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of terminfo</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>terminfo</H1>
|
|
Section: File Formats (5)<BR>Updated: <BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
terminfo - terminal capability data base
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
/etc/terminfo/*/*
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
<I>Terminfo</I>
|
|
|
|
is a data base describing terminals,
|
|
used by screen-oriented programs such as
|
|
<B><A HREF="/cgi-bin/man/man2html?1+nvi">nvi</A></B>(1),
|
|
<B><A HREF="/cgi-bin/man/man2html?1+lynx">lynx</A></B>(1),
|
|
<B><A HREF="/cgi-bin/man/man2html?1+mutt">mutt</A></B>(1),
|
|
and other curses applications,
|
|
using high-level calls to libraries such as <B>ncurses</B>(3NCURSES).
|
|
It is also used via low-level calls by non-curses applications
|
|
which may be screen-oriented (such as <B><A HREF="/cgi-bin/man/man2html?1+clear">clear</A></B>(1))
|
|
or non-screen (such as <B><A HREF="/cgi-bin/man/man2html?1+tabs">tabs</A></B>(1)).
|
|
<P>
|
|
|
|
<I>Terminfo</I>
|
|
|
|
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.
|
|
<P>
|
|
|
|
This manual describes <B>ncurses</B>
|
|
version 6.2 (patch 20200212).
|
|
<A NAME="lbAE"> </A>
|
|
<H3>Terminfo Entry Syntax</H3>
|
|
|
|
<P>
|
|
|
|
Entries in
|
|
<I>terminfo</I>
|
|
|
|
consist of a sequence of fields:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Each field ends with a comma ``,''
|
|
(embedded commas may be
|
|
escaped with a backslash or written as ``\054'').
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
White space between fields is ignored.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
The first field in a <I>terminfo</I> entry begins in the first column.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Newlines and leading whitespace (spaces or tabs)
|
|
may be used for formatting entries for readability.
|
|
These are removed from parsed entries.
|
|
<DL COMPACT>
|
|
<DT id="1"><DD>
|
|
The <B>infocmp</B> <B>-f</B> and <B>-W</B> options rely on this to
|
|
format if-then-else expressions,
|
|
or to enforce maximum line-width.
|
|
The resulting formatted terminal description can be read by <B>tic</B>.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
The first field for each terminal gives the names which are known for the
|
|
terminal, separated by ``|'' characters.
|
|
<DT id="2"><DD>
|
|
The first name given is the most common abbreviation for the terminal
|
|
(its primary name),
|
|
the last name given should be a long name fully identifying the terminal
|
|
(see <B><A HREF="/cgi-bin/man/man2html?3X+longname">longname</A></B>(3X)),
|
|
and all others are treated as synonyms (aliases) for the primary terminal name.
|
|
<DT id="3"><DD>
|
|
X/Open Curses advises that 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.
|
|
<DT id="4"><DD>
|
|
This implementation is not so strict;
|
|
it allows mixed case in the primary name and aliases.
|
|
If the last name has no embedded blanks,
|
|
it allows that to be both an alias and a verbose name
|
|
(but will warn about this ambiguity).
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Lines beginning with a ``#'' in the first column are treated as comments.
|
|
<DT id="5"><DD>
|
|
While comment lines are legal at any point, the output of <B>captoinfo</B>
|
|
and <B>infotocap</B> (aliases for <B>tic</B>)
|
|
will move comments so they occur only between entries.
|
|
</DL>
|
|
<P>
|
|
|
|
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, thus ``hp2621''.
|
|
This name should not contain hyphens.
|
|
Modes that the hardware can be in, or user preferences, should
|
|
be indicated by appending a hyphen and a mode suffix.
|
|
Thus, a vt100 in 132-column mode would be vt100-w.
|
|
The following suffixes should be used where possible:
|
|
<P>
|
|
|
|
<CENTER><TABLE>
|
|
<TR VALIGN=top><TD><B>Suffix</B></TD><TD ALIGN=center>Meaning</TD><TD>Example<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-<I>nn</I></TD><TD>Number of lines on the screen</TD><TD>aaa-60<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-<I>n</I>p</TD><TD>Number of pages of memory</TD><TD>c100-4p<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-am</TD><TD>With automargins (usually the default)</TD><TD>vt100-am<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-m</TD><TD>Mono mode; suppress color </TD><TD>ansi-m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-mc</TD><TD>Magic cookie; spaces when highlighting</TD><TD>wy30-mc<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-na</TD><TD>No arrow keys (leave them in local)</TD><TD>c100-na<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-nam</TD><TD>Without automatic margins </TD><TD>vt100-nam<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-nl</TD><TD>No status line </TD><TD>att4415-nl<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-ns</TD><TD>No status line </TD><TD>hp2626-ns<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-rv</TD><TD>Reverse video </TD><TD>c100-rv<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-s</TD><TD>Enable status line </TD><TD>vt100-s<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-vb</TD><TD>Use visible bell instead of beep</TD><TD>wy370-vb<BR></TD></TR>
|
|
<TR VALIGN=top><TD>-w</TD><TD>Wide mode (> 80 columns, usually 132)</TD><TD>vt100-w<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
|
|
<P>
|
|
|
|
For more on terminal naming conventions, see the <B><A HREF="/cgi-bin/man/man2html?7+term">term</A></B>(7) manual page.
|
|
<A NAME="lbAF"> </A>
|
|
<H3>Terminfo Capabilities Syntax</H3>
|
|
|
|
<P>
|
|
|
|
The terminfo entry consists of several <I>capabilities</I>,
|
|
i.e., features that the terminal has,
|
|
or methods for exercising the terminal's features.
|
|
<P>
|
|
|
|
After the first field (giving the name(s) of the terminal entry),
|
|
there should be one or more <I>capability</I> fields.
|
|
These are boolean, numeric or string names with corresponding values:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Boolean capabilities are true when present, false when absent.
|
|
There is no explicit value for boolean capabilities.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Numeric capabilities have a ``#'' following the name,
|
|
then an unsigned decimal integer value.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
String capabilities have a ``='' following the name,
|
|
then an string of characters making up the capability value.
|
|
<DL COMPACT>
|
|
<DT id="6"><DD>
|
|
String capabilities can be split into multiple lines,
|
|
just as the fields comprising a terminal entry can be
|
|
split into multiple lines.
|
|
While blanks between fields are ignored,
|
|
blanks embedded within a string value are retained,
|
|
except for leading blanks on a line.
|
|
</DL>
|
|
<P>
|
|
|
|
Any capability can be <I>canceled</I>,
|
|
i.e., suppressed from the terminal entry,
|
|
by following its name with ``@''
|
|
rather than a capability value.
|
|
<A NAME="lbAG"> </A>
|
|
<H3>Similar Terminals</H3>
|
|
|
|
<P>
|
|
|
|
If there are two very similar terminals, one (the variant) can be defined as
|
|
being just like the other (the base) with certain exceptions.
|
|
In the
|
|
definition of the variant, the string capability <B>use</B> can be given with
|
|
the name of the base terminal:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
The capabilities given before
|
|
<B>use</B>
|
|
|
|
override those in the base type named by
|
|
<B>use</B>.
|
|
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
If there are multiple <B>use</B> capabilities, they are merged in reverse order.
|
|
That is, the rightmost <B>use</B> reference is processed first, then the one to
|
|
its left, and so forth.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Capabilities given explicitly in the entry override
|
|
those brought in by <B>use</B> references.
|
|
<P>
|
|
|
|
A capability can be canceled by placing <B>xx@</B> to the left of the
|
|
use reference that imports it, where <I>xx</I> is the capability.
|
|
For example, the entry
|
|
<DL COMPACT><DT id="7"><DD>
|
|
<P>
|
|
|
|
2621-nl, smkx@, rmkx@, use=2621,
|
|
</DL>
|
|
|
|
<P>
|
|
|
|
defines a 2621-nl that does not have the <B>smkx</B> or <B>rmkx</B> 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.
|
|
<P>
|
|
|
|
An entry included via <B>use</B> can contain canceled capabilities,
|
|
which have the same effect as if those cancels were inline in the
|
|
using terminal entry.
|
|
<A NAME="lbAH"> </A>
|
|
<H3>Predefined Capabilities</H3>
|
|
|
|
|
|
<FONT SIZE="-1">
|
|
The following is a complete table of the capabilities included in a
|
|
terminfo description block and available to terminfo-using code. In each
|
|
line of the table,
|
|
<P>
|
|
The <B>variable</B> is the name by which the programmer (at the terminfo level)
|
|
accesses the capability.
|
|
<P>
|
|
The <B>capname</B> is the short name used in the text of the database,
|
|
and is used by a person updating the database.
|
|
Whenever possible, capnames are chosen to be the same as or similar to
|
|
the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
|
|
identical or very similar names). Semantics are also intended to match
|
|
those of the specification.
|
|
<P>
|
|
The termcap code is the old
|
|
<B>termcap</B>
|
|
|
|
capability name (some capabilities are new, and have names which termcap
|
|
did not originate).
|
|
<P>
|
|
|
|
Capability names have no hard length limit, but an informal limit of 5
|
|
characters has been adopted to keep them short and to allow the tabs in
|
|
the source file
|
|
<B>Caps</B>
|
|
|
|
to line up nicely.
|
|
<P>
|
|
Finally, the description field attempts to convey the semantics of the
|
|
capability. You may find some codes in the description field:
|
|
<DL COMPACT>
|
|
<DT id="8">(P)<DD>
|
|
indicates that padding may be specified
|
|
<DT id="9">#[1-9]<DD>
|
|
in the description field indicates that the string is passed through tparm with
|
|
parms as given (#<I>i</I>).
|
|
<DT id="10">(P*)<DD>
|
|
indicates that padding may vary in proportion to the number of
|
|
lines affected
|
|
<DT id="11">(#<I>i</I>)<DD>
|
|
indicates the <I>i</I>th parameter.
|
|
<P>
|
|
</DL>
|
|
<P>
|
|
|
|
These are the boolean capabilities:
|
|
<P>
|
|
|
|
</FONT><CENTER><TABLE>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Variable</B></TD><TD>Cap-</TD><TD>TCap</TD><TD ALIGN=center>Description<BR></TD></TR>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Booleans</B></TD><TD>name</TD><TD>Code</TD><TD ALIGN=center><BR></TD></TR>
|
|
<TR VALIGN=top><TD>auto_left_margin</TD><TD>bw</TD><TD>bw</TD><TD>
|
|
cub1 wraps from column 0 to last column
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>auto_right_margin</TD><TD>am</TD><TD>am</TD><TD>
|
|
terminal has automatic margins
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>back_color_erase</TD><TD>bce</TD><TD>ut</TD><TD>
|
|
screen erased with background color
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>can_change</TD><TD>ccc</TD><TD>cc</TD><TD>
|
|
terminal can re-define existing colors
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>ceol_standout_glitch</TD><TD>xhp</TD><TD>xs</TD><TD>
|
|
standout not erased by overwriting (hp)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>col_addr_glitch</TD><TD>xhpa</TD><TD>YA</TD><TD>
|
|
only positive motion for hpa/mhpa caps
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cpi_changes_res</TD><TD>cpix</TD><TD>YF</TD><TD>
|
|
changing character pitch changes resolution
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cr_cancels_micro_mode</TD><TD>crxm</TD><TD>YB</TD><TD>
|
|
using cr turns off micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>dest_tabs_magic_smso</TD><TD>xt</TD><TD>xt</TD><TD>
|
|
tabs destructive, magic so char (t1061)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>eat_newline_glitch</TD><TD>xenl</TD><TD>xn</TD><TD>
|
|
newline ignored after 80 cols (concept)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>erase_overstrike</TD><TD>eo</TD><TD>eo</TD><TD>
|
|
can erase overstrikes with a blank
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>generic_type</TD><TD>gn</TD><TD>gn</TD><TD>
|
|
generic line type
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>hard_copy</TD><TD>hc</TD><TD>hc</TD><TD>
|
|
hardcopy terminal
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>hard_cursor</TD><TD>chts</TD><TD>HC</TD><TD>
|
|
cursor is hard to see
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>has_meta_key</TD><TD>km</TD><TD>km</TD><TD>
|
|
Has a meta key (i.e., sets 8th-bit)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>has_print_wheel</TD><TD>daisy</TD><TD>YC</TD><TD>
|
|
printer needs operator to change character set
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>has_status_line</TD><TD>hs</TD><TD>hs</TD><TD>
|
|
has extra status line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>hue_lightness_saturation</TD><TD>hls</TD><TD>hl</TD><TD>
|
|
terminal uses only HLS color notation (Tektronix)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>insert_null_glitch</TD><TD>in</TD><TD>in</TD><TD>
|
|
insert mode distinguishes nulls
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lpi_changes_res</TD><TD>lpix</TD><TD>YG</TD><TD>
|
|
changing line pitch changes resolution
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>memory_above</TD><TD>da</TD><TD>da</TD><TD>
|
|
display may be retained above the screen
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>memory_below</TD><TD>db</TD><TD>db</TD><TD>
|
|
display may be retained below the screen
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>move_insert_mode</TD><TD>mir</TD><TD>mi</TD><TD>
|
|
safe to move while in insert mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>move_standout_mode</TD><TD>msgr</TD><TD>ms</TD><TD>
|
|
safe to move while in standout mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>needs_xon_xoff</TD><TD>nxon</TD><TD>nx</TD><TD>
|
|
padding will not work, xon/xoff required
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>no_esc_ctlc</TD><TD>xsb</TD><TD>xb</TD><TD>
|
|
beehive (f1=escape, f2=ctrl C)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>no_pad_char</TD><TD>npc</TD><TD>NP</TD><TD>
|
|
pad character does not exist
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>non_dest_scroll_region</TD><TD>ndscr</TD><TD>ND</TD><TD>
|
|
scrolling region is non-destructive
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>non_rev_rmcup</TD><TD>nrrmc</TD><TD>NR</TD><TD>
|
|
smcup does not reverse rmcup
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>over_strike</TD><TD>os</TD><TD>os</TD><TD>
|
|
terminal can overstrike
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>prtr_silent</TD><TD>mc5i</TD><TD>5i</TD><TD>
|
|
printer will not echo on screen
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>row_addr_glitch</TD><TD>xvpa</TD><TD>YD</TD><TD>
|
|
only positive motion for vpa/mvpa caps
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>semi_auto_right_margin</TD><TD>sam</TD><TD>YE</TD><TD>
|
|
printing in last column causes cr
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>status_line_esc_ok</TD><TD>eslok</TD><TD>es</TD><TD>
|
|
escape can be used on the status line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>tilde_glitch</TD><TD>hz</TD><TD>hz</TD><TD>
|
|
cannot print ~'s (Hazeltine)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>transparent_underline</TD><TD>ul</TD><TD>ul</TD><TD>
|
|
underline character overstrikes
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>xon_xoff</TD><TD>xon</TD><TD>xo</TD><TD>
|
|
terminal uses xon/xoff handshaking
|
|
<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
<FONT SIZE="-1">
|
|
|
|
<P>
|
|
These are the numeric capabilities:
|
|
<P>
|
|
|
|
</FONT><CENTER><TABLE>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Variable</B></TD><TD>Cap-</TD><TD>TCap</TD><TD ALIGN=center>Description<BR></TD></TR>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Numeric</B></TD><TD>name</TD><TD>Code</TD><TD ALIGN=center><BR></TD></TR>
|
|
<TR VALIGN=top><TD>columns</TD><TD>cols</TD><TD>co</TD><TD>
|
|
number of columns in a line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>init_tabs</TD><TD>it</TD><TD>it</TD><TD>
|
|
tabs initially every # spaces
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>label_height</TD><TD>lh</TD><TD>lh</TD><TD>
|
|
rows in each label
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>label_width</TD><TD>lw</TD><TD>lw</TD><TD>
|
|
columns in each label
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lines</TD><TD>lines</TD><TD>li</TD><TD>
|
|
number of lines on screen or page
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lines_of_memory</TD><TD>lm</TD><TD>lm</TD><TD>
|
|
lines of memory if > line. 0 means varies
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>magic_cookie_glitch</TD><TD>xmc</TD><TD>sg</TD><TD>
|
|
number of blank characters left by smso or rmso
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>max_attributes</TD><TD>ma</TD><TD>ma</TD><TD>
|
|
maximum combined attributes terminal can handle
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>max_colors</TD><TD>colors</TD><TD>Co</TD><TD>
|
|
maximum number of colors on screen
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>max_pairs</TD><TD>pairs</TD><TD>pa</TD><TD>
|
|
maximum number of color-pairs on the screen
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>maximum_windows</TD><TD>wnum</TD><TD>MW</TD><TD>
|
|
maximum number of definable windows
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>no_color_video</TD><TD>ncv</TD><TD>NC</TD><TD>
|
|
video attributes that cannot be used with colors
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>num_labels</TD><TD>nlab</TD><TD>Nl</TD><TD>
|
|
number of labels on screen
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>padding_baud_rate</TD><TD>pb</TD><TD>pb</TD><TD>
|
|
lowest baud rate where padding needed
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>virtual_terminal</TD><TD>vt</TD><TD>vt</TD><TD>
|
|
virtual terminal number (CB/unix)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>width_status_line</TD><TD>wsl</TD><TD>ws</TD><TD>
|
|
number of columns in status line
|
|
<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
<FONT SIZE="-1">
|
|
|
|
<P>
|
|
The following numeric capabilities are present in the SVr4.0 term structure,
|
|
but are not yet documented in the man page. They came in with SVr4's
|
|
printer support.
|
|
<P>
|
|
|
|
</FONT><CENTER><TABLE>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Variable</B></TD><TD>Cap-</TD><TD>TCap</TD><TD ALIGN=center>Description<BR></TD></TR>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Numeric</B></TD><TD>name</TD><TD>Code</TD><TD ALIGN=center><BR></TD></TR>
|
|
<TR VALIGN=top><TD>bit_image_entwining</TD><TD>bitwin</TD><TD>Yo</TD><TD>
|
|
number of passes for each bit-image row
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>bit_image_type</TD><TD>bitype</TD><TD>Yp</TD><TD>
|
|
type of bit-image device
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>buffer_capacity</TD><TD>bufsz</TD><TD>Ya</TD><TD>
|
|
numbers of bytes buffered before printing
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>buttons</TD><TD>btns</TD><TD>BT</TD><TD>
|
|
number of buttons on mouse
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>dot_horz_spacing</TD><TD>spinh</TD><TD>Yc</TD><TD>
|
|
spacing of dots horizontally in dots per inch
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>dot_vert_spacing</TD><TD>spinv</TD><TD>Yb</TD><TD>
|
|
spacing of pins vertically in pins per inch
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>max_micro_address</TD><TD>maddr</TD><TD>Yd</TD><TD>
|
|
maximum value in micro_..._address
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>max_micro_jump</TD><TD>mjump</TD><TD>Ye</TD><TD>
|
|
maximum value in parm_..._micro
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_col_size</TD><TD>mcs</TD><TD>Yf</TD><TD>
|
|
character step size when in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_line_size</TD><TD>mls</TD><TD>Yg</TD><TD>
|
|
line step size when in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>number_of_pins</TD><TD>npins</TD><TD>Yh</TD><TD>
|
|
numbers of pins in print-head
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>output_res_char</TD><TD>orc</TD><TD>Yi</TD><TD>
|
|
horizontal resolution in units per line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>output_res_horz_inch</TD><TD>orhi</TD><TD>Yk</TD><TD>
|
|
horizontal resolution in units per inch
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>output_res_line</TD><TD>orl</TD><TD>Yj</TD><TD>
|
|
vertical resolution in units per line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>output_res_vert_inch</TD><TD>orvi</TD><TD>Yl</TD><TD>
|
|
vertical resolution in units per inch
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>print_rate</TD><TD>cps</TD><TD>Ym</TD><TD>
|
|
print rate in characters per second
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>wide_char_size</TD><TD>widcs</TD><TD>Yn</TD><TD>
|
|
character step size when in double wide mode
|
|
<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
<FONT SIZE="-1">
|
|
|
|
<P>
|
|
These are the string capabilities:
|
|
<P>
|
|
|
|
</FONT><CENTER><TABLE>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Variable</B></TD><TD>Cap-</TD><TD>TCap</TD><TD ALIGN=center>Description<BR></TD></TR>
|
|
<TR VALIGN=top><TD ALIGN=center><B>String</B></TD><TD>name</TD><TD>Code</TD><TD ALIGN=center><BR></TD></TR>
|
|
<TR VALIGN=top><TD>acs_chars</TD><TD>acsc</TD><TD>ac</TD><TD>
|
|
graphics charset pairs, based on vt100
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>back_tab</TD><TD>cbt</TD><TD>bt</TD><TD>
|
|
back tab (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>bell</TD><TD>bel</TD><TD>bl</TD><TD>
|
|
audible signal (bell) (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>carriage_return</TD><TD>cr</TD><TD>cr</TD><TD>
|
|
carriage return (P*) (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>change_char_pitch</TD><TD>cpi</TD><TD>ZA</TD><TD>
|
|
Change number of characters per inch to #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>change_line_pitch</TD><TD>lpi</TD><TD>ZB</TD><TD>
|
|
Change number of lines per inch to #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>change_res_horz</TD><TD>chr</TD><TD>ZC</TD><TD>
|
|
Change horizontal resolution to #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>change_res_vert</TD><TD>cvr</TD><TD>ZD</TD><TD>
|
|
Change vertical resolution to #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>change_scroll_region</TD><TD>csr</TD><TD>cs</TD><TD>
|
|
change region to line #1 to line #2 (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>char_padding</TD><TD>rmp</TD><TD>rP</TD><TD>
|
|
like ip but when in insert mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>clear_all_tabs</TD><TD>tbc</TD><TD>ct</TD><TD>
|
|
clear all tab stops (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>clear_margins</TD><TD>mgc</TD><TD>MC</TD><TD>
|
|
clear right and left soft margins
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>clear_screen</TD><TD>clear</TD><TD>cl</TD><TD>
|
|
clear screen and home cursor (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>clr_bol</TD><TD>el1</TD><TD>cb</TD><TD>
|
|
Clear to beginning of line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>clr_eol</TD><TD>el</TD><TD>ce</TD><TD>
|
|
clear to end of line (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>clr_eos</TD><TD>ed</TD><TD>cd</TD><TD>
|
|
clear to end of screen (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>column_address</TD><TD>hpa</TD><TD>ch</TD><TD>
|
|
horizontal position #1, absolute (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>command_character</TD><TD>cmdch</TD><TD>CC</TD><TD>
|
|
terminal settable cmd character in prototype !?
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>create_window</TD><TD>cwin</TD><TD>CW</TD><TD>
|
|
define a window #1 from #2,#3 to #4,#5
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_address</TD><TD>cup</TD><TD>cm</TD><TD>
|
|
move to row #1 columns #2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_down</TD><TD>cud1</TD><TD>do</TD><TD>
|
|
down one line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_home</TD><TD>home</TD><TD>ho</TD><TD>
|
|
home cursor (if no cup)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_invisible</TD><TD>civis</TD><TD>vi</TD><TD>
|
|
make cursor invisible
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_left</TD><TD>cub1</TD><TD>le</TD><TD>
|
|
move left one space
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_mem_address</TD><TD>mrcup</TD><TD>CM</TD><TD>
|
|
memory relative cursor addressing, move to row #1 columns #2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_normal</TD><TD>cnorm</TD><TD>ve</TD><TD>
|
|
make cursor appear normal (undo civis/cvvis)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_right</TD><TD>cuf1</TD><TD>nd</TD><TD>
|
|
non-destructive space (move right one space)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_to_ll</TD><TD>ll</TD><TD>ll</TD><TD>
|
|
last line, first column (if no cup)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_up</TD><TD>cuu1</TD><TD>up</TD><TD>
|
|
up one line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cursor_visible</TD><TD>cvvis</TD><TD>vs</TD><TD>
|
|
make cursor very visible
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>define_char</TD><TD>defc</TD><TD>ZE</TD><TD>
|
|
Define a character #1, #2 dots wide, descender #3
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>delete_character</TD><TD>dch1</TD><TD>dc</TD><TD>
|
|
delete character (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>delete_line</TD><TD>dl1</TD><TD>dl</TD><TD>
|
|
delete line (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>dial_phone</TD><TD>dial</TD><TD>DI</TD><TD>
|
|
dial number #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>dis_status_line</TD><TD>dsl</TD><TD>ds</TD><TD>
|
|
disable status line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>display_clock</TD><TD>dclk</TD><TD>DK</TD><TD>
|
|
display clock
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>down_half_line</TD><TD>hd</TD><TD>hd</TD><TD>
|
|
half a line down
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>ena_acs</TD><TD>enacs</TD><TD>eA</TD><TD>
|
|
enable alternate char set
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_alt_charset_mode</TD><TD>smacs</TD><TD>as</TD><TD>
|
|
start alternate character set (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_am_mode</TD><TD>smam</TD><TD>SA</TD><TD>
|
|
turn on automatic margins
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_blink_mode</TD><TD>blink</TD><TD>mb</TD><TD>
|
|
turn on blinking
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_bold_mode</TD><TD>bold</TD><TD>md</TD><TD>
|
|
turn on bold (extra bright) mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_ca_mode</TD><TD>smcup</TD><TD>ti</TD><TD>
|
|
string to start programs using cup
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_delete_mode</TD><TD>smdc</TD><TD>dm</TD><TD>
|
|
enter delete mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_dim_mode</TD><TD>dim</TD><TD>mh</TD><TD>
|
|
turn on half-bright mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_doublewide_mode</TD><TD>swidm</TD><TD>ZF</TD><TD>
|
|
Enter double-wide mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_draft_quality</TD><TD>sdrfq</TD><TD>ZG</TD><TD>
|
|
Enter draft-quality mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_insert_mode</TD><TD>smir</TD><TD>im</TD><TD>
|
|
enter insert mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_italics_mode</TD><TD>sitm</TD><TD>ZH</TD><TD>
|
|
Enter italic mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_leftward_mode</TD><TD>slm</TD><TD>ZI</TD><TD>
|
|
Start leftward carriage motion
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_micro_mode</TD><TD>smicm</TD><TD>ZJ</TD><TD>
|
|
Start micro-motion mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_near_letter_quality</TD><TD>snlq</TD><TD>ZK</TD><TD>
|
|
Enter NLQ mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_normal_quality</TD><TD>snrmq</TD><TD>ZL</TD><TD>
|
|
Enter normal-quality mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_protected_mode</TD><TD>prot</TD><TD>mp</TD><TD>
|
|
turn on protected mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_reverse_mode</TD><TD>rev</TD><TD>mr</TD><TD>
|
|
turn on reverse video mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_secure_mode</TD><TD>invis</TD><TD>mk</TD><TD>
|
|
turn on blank mode (characters invisible)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_shadow_mode</TD><TD>sshm</TD><TD>ZM</TD><TD>
|
|
Enter shadow-print mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_standout_mode</TD><TD>smso</TD><TD>so</TD><TD>
|
|
begin standout mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_subscript_mode</TD><TD>ssubm</TD><TD>ZN</TD><TD>
|
|
Enter subscript mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_superscript_mode</TD><TD>ssupm</TD><TD>ZO</TD><TD>
|
|
Enter superscript mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_underline_mode</TD><TD>smul</TD><TD>us</TD><TD>
|
|
begin underline mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_upward_mode</TD><TD>sum</TD><TD>ZP</TD><TD>
|
|
Start upward carriage motion
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_xon_mode</TD><TD>smxon</TD><TD>SX</TD><TD>
|
|
turn on xon/xoff handshaking
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>erase_chars</TD><TD>ech</TD><TD>ec</TD><TD>
|
|
erase #1 characters (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_alt_charset_mode</TD><TD>rmacs</TD><TD>ae</TD><TD>
|
|
end alternate character set (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_am_mode</TD><TD>rmam</TD><TD>RA</TD><TD>
|
|
turn off automatic margins
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_attribute_mode</TD><TD>sgr0</TD><TD>me</TD><TD>
|
|
turn off all attributes
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_ca_mode</TD><TD>rmcup</TD><TD>te</TD><TD>
|
|
strings to end programs using cup
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_delete_mode</TD><TD>rmdc</TD><TD>ed</TD><TD>
|
|
end delete mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_doublewide_mode</TD><TD>rwidm</TD><TD>ZQ</TD><TD>
|
|
End double-wide mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_insert_mode</TD><TD>rmir</TD><TD>ei</TD><TD>
|
|
exit insert mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_italics_mode</TD><TD>ritm</TD><TD>ZR</TD><TD>
|
|
End italic mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_leftward_mode</TD><TD>rlm</TD><TD>ZS</TD><TD>
|
|
End left-motion mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_micro_mode</TD><TD>rmicm</TD><TD>ZT</TD><TD>
|
|
End micro-motion mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_shadow_mode</TD><TD>rshm</TD><TD>ZU</TD><TD>
|
|
End shadow-print mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_standout_mode</TD><TD>rmso</TD><TD>se</TD><TD>
|
|
exit standout mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_subscript_mode</TD><TD>rsubm</TD><TD>ZV</TD><TD>
|
|
End subscript mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_superscript_mode</TD><TD>rsupm</TD><TD>ZW</TD><TD>
|
|
End superscript mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_underline_mode</TD><TD>rmul</TD><TD>ue</TD><TD>
|
|
exit underline mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_upward_mode</TD><TD>rum</TD><TD>ZX</TD><TD>
|
|
End reverse character motion
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_xon_mode</TD><TD>rmxon</TD><TD>RX</TD><TD>
|
|
turn off xon/xoff handshaking
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>fixed_pause</TD><TD>pause</TD><TD>PA</TD><TD>
|
|
pause for 2-3 seconds
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>flash_hook</TD><TD>hook</TD><TD>fh</TD><TD>
|
|
flash switch hook
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>flash_screen</TD><TD>flash</TD><TD>vb</TD><TD>
|
|
visible bell (may not move cursor)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>form_feed</TD><TD>ff</TD><TD>ff</TD><TD>
|
|
hardcopy terminal page eject (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>from_status_line</TD><TD>fsl</TD><TD>fs</TD><TD>
|
|
return from status line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>goto_window</TD><TD>wingo</TD><TD>WG</TD><TD>
|
|
go to window #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>hangup</TD><TD>hup</TD><TD>HU</TD><TD>
|
|
hang-up phone
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>init_1string</TD><TD>is1</TD><TD>i1</TD><TD>
|
|
initialization string
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>init_2string</TD><TD>is2</TD><TD>is</TD><TD>
|
|
initialization string
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>init_3string</TD><TD>is3</TD><TD>i3</TD><TD>
|
|
initialization string
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>init_file</TD><TD>if</TD><TD>if</TD><TD>
|
|
name of initialization file
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>init_prog</TD><TD>iprog</TD><TD>iP</TD><TD>
|
|
path name of program for initialization
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>initialize_color</TD><TD>initc</TD><TD>Ic</TD><TD>
|
|
initialize color #1 to (#2,#3,#4)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>initialize_pair</TD><TD>initp</TD><TD>Ip</TD><TD>
|
|
Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>insert_character</TD><TD>ich1</TD><TD>ic</TD><TD>
|
|
insert character (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>insert_line</TD><TD>il1</TD><TD>al</TD><TD>
|
|
insert line (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>insert_padding</TD><TD>ip</TD><TD>ip</TD><TD>
|
|
insert padding after inserted character
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_a1</TD><TD>ka1</TD><TD>K1</TD><TD>
|
|
upper left of keypad
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_a3</TD><TD>ka3</TD><TD>K3</TD><TD>
|
|
upper right of keypad
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_b2</TD><TD>kb2</TD><TD>K2</TD><TD>
|
|
center of keypad
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_backspace</TD><TD>kbs</TD><TD>kb</TD><TD>
|
|
backspace key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_beg</TD><TD>kbeg</TD><TD>@1</TD><TD>
|
|
begin key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_btab</TD><TD>kcbt</TD><TD>kB</TD><TD>
|
|
back-tab key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_c1</TD><TD>kc1</TD><TD>K4</TD><TD>
|
|
lower left of keypad
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_c3</TD><TD>kc3</TD><TD>K5</TD><TD>
|
|
lower right of keypad
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_cancel</TD><TD>kcan</TD><TD>@2</TD><TD>
|
|
cancel key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_catab</TD><TD>ktbc</TD><TD>ka</TD><TD>
|
|
clear-all-tabs key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_clear</TD><TD>kclr</TD><TD>kC</TD><TD>
|
|
clear-screen or erase key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_close</TD><TD>kclo</TD><TD>@3</TD><TD>
|
|
close key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_command</TD><TD>kcmd</TD><TD>@4</TD><TD>
|
|
command key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_copy</TD><TD>kcpy</TD><TD>@5</TD><TD>
|
|
copy key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_create</TD><TD>kcrt</TD><TD>@6</TD><TD>
|
|
create key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_ctab</TD><TD>kctab</TD><TD>kt</TD><TD>
|
|
clear-tab key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_dc</TD><TD>kdch1</TD><TD>kD</TD><TD>
|
|
delete-character key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_dl</TD><TD>kdl1</TD><TD>kL</TD><TD>
|
|
delete-line key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_down</TD><TD>kcud1</TD><TD>kd</TD><TD>
|
|
down-arrow key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_eic</TD><TD>krmir</TD><TD>kM</TD><TD>
|
|
sent by rmir or smir in insert mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_end</TD><TD>kend</TD><TD>@7</TD><TD>
|
|
end key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_enter</TD><TD>kent</TD><TD>@8</TD><TD>
|
|
enter/send key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_eol</TD><TD>kel</TD><TD>kE</TD><TD>
|
|
clear-to-end-of-line key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_eos</TD><TD>ked</TD><TD>kS</TD><TD>
|
|
clear-to-end-of-screen key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_exit</TD><TD>kext</TD><TD>@9</TD><TD>
|
|
exit key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f0</TD><TD>kf0</TD><TD>k0</TD><TD>
|
|
F0 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f1</TD><TD>kf1</TD><TD>k1</TD><TD>
|
|
F1 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f10</TD><TD>kf10</TD><TD>k;</TD><TD>
|
|
F10 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f11</TD><TD>kf11</TD><TD>F1</TD><TD>
|
|
F11 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f12</TD><TD>kf12</TD><TD>F2</TD><TD>
|
|
F12 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f13</TD><TD>kf13</TD><TD>F3</TD><TD>
|
|
F13 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f14</TD><TD>kf14</TD><TD>F4</TD><TD>
|
|
F14 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f15</TD><TD>kf15</TD><TD>F5</TD><TD>
|
|
F15 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f16</TD><TD>kf16</TD><TD>F6</TD><TD>
|
|
F16 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f17</TD><TD>kf17</TD><TD>F7</TD><TD>
|
|
F17 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f18</TD><TD>kf18</TD><TD>F8</TD><TD>
|
|
F18 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f19</TD><TD>kf19</TD><TD>F9</TD><TD>
|
|
F19 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f2</TD><TD>kf2</TD><TD>k2</TD><TD>
|
|
F2 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f20</TD><TD>kf20</TD><TD>FA</TD><TD>
|
|
F20 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f21</TD><TD>kf21</TD><TD>FB</TD><TD>
|
|
F21 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f22</TD><TD>kf22</TD><TD>FC</TD><TD>
|
|
F22 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f23</TD><TD>kf23</TD><TD>FD</TD><TD>
|
|
F23 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f24</TD><TD>kf24</TD><TD>FE</TD><TD>
|
|
F24 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f25</TD><TD>kf25</TD><TD>FF</TD><TD>
|
|
F25 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f26</TD><TD>kf26</TD><TD>FG</TD><TD>
|
|
F26 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f27</TD><TD>kf27</TD><TD>FH</TD><TD>
|
|
F27 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f28</TD><TD>kf28</TD><TD>FI</TD><TD>
|
|
F28 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f29</TD><TD>kf29</TD><TD>FJ</TD><TD>
|
|
F29 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f3</TD><TD>kf3</TD><TD>k3</TD><TD>
|
|
F3 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f30</TD><TD>kf30</TD><TD>FK</TD><TD>
|
|
F30 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f31</TD><TD>kf31</TD><TD>FL</TD><TD>
|
|
F31 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f32</TD><TD>kf32</TD><TD>FM</TD><TD>
|
|
F32 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f33</TD><TD>kf33</TD><TD>FN</TD><TD>
|
|
F33 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f34</TD><TD>kf34</TD><TD>FO</TD><TD>
|
|
F34 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f35</TD><TD>kf35</TD><TD>FP</TD><TD>
|
|
F35 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f36</TD><TD>kf36</TD><TD>FQ</TD><TD>
|
|
F36 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f37</TD><TD>kf37</TD><TD>FR</TD><TD>
|
|
F37 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f38</TD><TD>kf38</TD><TD>FS</TD><TD>
|
|
F38 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f39</TD><TD>kf39</TD><TD>FT</TD><TD>
|
|
F39 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f4</TD><TD>kf4</TD><TD>k4</TD><TD>
|
|
F4 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f40</TD><TD>kf40</TD><TD>FU</TD><TD>
|
|
F40 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f41</TD><TD>kf41</TD><TD>FV</TD><TD>
|
|
F41 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f42</TD><TD>kf42</TD><TD>FW</TD><TD>
|
|
F42 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f43</TD><TD>kf43</TD><TD>FX</TD><TD>
|
|
F43 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f44</TD><TD>kf44</TD><TD>FY</TD><TD>
|
|
F44 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f45</TD><TD>kf45</TD><TD>FZ</TD><TD>
|
|
F45 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f46</TD><TD>kf46</TD><TD>Fa</TD><TD>
|
|
F46 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f47</TD><TD>kf47</TD><TD>Fb</TD><TD>
|
|
F47 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f48</TD><TD>kf48</TD><TD>Fc</TD><TD>
|
|
F48 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f49</TD><TD>kf49</TD><TD>Fd</TD><TD>
|
|
F49 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f5</TD><TD>kf5</TD><TD>k5</TD><TD>
|
|
F5 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f50</TD><TD>kf50</TD><TD>Fe</TD><TD>
|
|
F50 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f51</TD><TD>kf51</TD><TD>Ff</TD><TD>
|
|
F51 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f52</TD><TD>kf52</TD><TD>Fg</TD><TD>
|
|
F52 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f53</TD><TD>kf53</TD><TD>Fh</TD><TD>
|
|
F53 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f54</TD><TD>kf54</TD><TD>Fi</TD><TD>
|
|
F54 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f55</TD><TD>kf55</TD><TD>Fj</TD><TD>
|
|
F55 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f56</TD><TD>kf56</TD><TD>Fk</TD><TD>
|
|
F56 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f57</TD><TD>kf57</TD><TD>Fl</TD><TD>
|
|
F57 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f58</TD><TD>kf58</TD><TD>Fm</TD><TD>
|
|
F58 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f59</TD><TD>kf59</TD><TD>Fn</TD><TD>
|
|
F59 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f6</TD><TD>kf6</TD><TD>k6</TD><TD>
|
|
F6 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f60</TD><TD>kf60</TD><TD>Fo</TD><TD>
|
|
F60 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f61</TD><TD>kf61</TD><TD>Fp</TD><TD>
|
|
F61 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f62</TD><TD>kf62</TD><TD>Fq</TD><TD>
|
|
F62 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f63</TD><TD>kf63</TD><TD>Fr</TD><TD>
|
|
F63 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f7</TD><TD>kf7</TD><TD>k7</TD><TD>
|
|
F7 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f8</TD><TD>kf8</TD><TD>k8</TD><TD>
|
|
F8 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_f9</TD><TD>kf9</TD><TD>k9</TD><TD>
|
|
F9 function key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_find</TD><TD>kfnd</TD><TD>@0</TD><TD>
|
|
find key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_help</TD><TD>khlp</TD><TD>%1</TD><TD>
|
|
help key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_home</TD><TD>khome</TD><TD>kh</TD><TD>
|
|
home key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_ic</TD><TD>kich1</TD><TD>kI</TD><TD>
|
|
insert-character key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_il</TD><TD>kil1</TD><TD>kA</TD><TD>
|
|
insert-line key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_left</TD><TD>kcub1</TD><TD>kl</TD><TD>
|
|
left-arrow key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_ll</TD><TD>kll</TD><TD>kH</TD><TD>
|
|
lower-left key (home down)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_mark</TD><TD>kmrk</TD><TD>%2</TD><TD>
|
|
mark key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_message</TD><TD>kmsg</TD><TD>%3</TD><TD>
|
|
message key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_move</TD><TD>kmov</TD><TD>%4</TD><TD>
|
|
move key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_next</TD><TD>knxt</TD><TD>%5</TD><TD>
|
|
next key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_npage</TD><TD>knp</TD><TD>kN</TD><TD>
|
|
next-page key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_open</TD><TD>kopn</TD><TD>%6</TD><TD>
|
|
open key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_options</TD><TD>kopt</TD><TD>%7</TD><TD>
|
|
options key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_ppage</TD><TD>kpp</TD><TD>kP</TD><TD>
|
|
previous-page key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_previous</TD><TD>kprv</TD><TD>%8</TD><TD>
|
|
previous key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_print</TD><TD>kprt</TD><TD>%9</TD><TD>
|
|
print key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_redo</TD><TD>krdo</TD><TD>%0</TD><TD>
|
|
redo key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_reference</TD><TD>kref</TD><TD>&1</TD><TD>
|
|
reference key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_refresh</TD><TD>krfr</TD><TD>&2</TD><TD>
|
|
refresh key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_replace</TD><TD>krpl</TD><TD>&3</TD><TD>
|
|
replace key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_restart</TD><TD>krst</TD><TD>&4</TD><TD>
|
|
restart key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_resume</TD><TD>kres</TD><TD>&5</TD><TD>
|
|
resume key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_right</TD><TD>kcuf1</TD><TD>kr</TD><TD>
|
|
right-arrow key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_save</TD><TD>ksav</TD><TD>&6</TD><TD>
|
|
save key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sbeg</TD><TD>kBEG</TD><TD>&9</TD><TD>
|
|
shifted begin key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_scancel</TD><TD>kCAN</TD><TD>&0</TD><TD>
|
|
shifted cancel key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_scommand</TD><TD>kCMD</TD><TD>*1</TD><TD>
|
|
shifted command key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_scopy</TD><TD>kCPY</TD><TD>*2</TD><TD>
|
|
shifted copy key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_screate</TD><TD>kCRT</TD><TD>*3</TD><TD>
|
|
shifted create key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sdc</TD><TD>kDC</TD><TD>*4</TD><TD>
|
|
shifted delete-character key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sdl</TD><TD>kDL</TD><TD>*5</TD><TD>
|
|
shifted delete-line key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_select</TD><TD>kslt</TD><TD>*6</TD><TD>
|
|
select key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_send</TD><TD>kEND</TD><TD>*7</TD><TD>
|
|
shifted end key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_seol</TD><TD>kEOL</TD><TD>*8</TD><TD>
|
|
shifted clear-to-end-of-line key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sexit</TD><TD>kEXT</TD><TD>*9</TD><TD>
|
|
shifted exit key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sf</TD><TD>kind</TD><TD>kF</TD><TD>
|
|
scroll-forward key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sfind</TD><TD>kFND</TD><TD>*0</TD><TD>
|
|
shifted find key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_shelp</TD><TD>kHLP</TD><TD>#1</TD><TD>
|
|
shifted help key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_shome</TD><TD>kHOM</TD><TD>#2</TD><TD>
|
|
shifted home key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sic</TD><TD>kIC</TD><TD>#3</TD><TD>
|
|
shifted insert-character key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sleft</TD><TD>kLFT</TD><TD>#4</TD><TD>
|
|
shifted left-arrow key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_smessage</TD><TD>kMSG</TD><TD>%a</TD><TD>
|
|
shifted message key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_smove</TD><TD>kMOV</TD><TD>%b</TD><TD>
|
|
shifted move key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_snext</TD><TD>kNXT</TD><TD>%c</TD><TD>
|
|
shifted next key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_soptions</TD><TD>kOPT</TD><TD>%d</TD><TD>
|
|
shifted options key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sprevious</TD><TD>kPRV</TD><TD>%e</TD><TD>
|
|
shifted previous key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sprint</TD><TD>kPRT</TD><TD>%f</TD><TD>
|
|
shifted print key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sr</TD><TD>kri</TD><TD>kR</TD><TD>
|
|
scroll-backward key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sredo</TD><TD>kRDO</TD><TD>%g</TD><TD>
|
|
shifted redo key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sreplace</TD><TD>kRPL</TD><TD>%h</TD><TD>
|
|
shifted replace key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sright</TD><TD>kRIT</TD><TD>%i</TD><TD>
|
|
shifted right-arrow key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_srsume</TD><TD>kRES</TD><TD>%j</TD><TD>
|
|
shifted resume key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_ssave</TD><TD>kSAV</TD><TD>!1</TD><TD>
|
|
shifted save key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_ssuspend</TD><TD>kSPD</TD><TD>!2</TD><TD>
|
|
shifted suspend key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_stab</TD><TD>khts</TD><TD>kT</TD><TD>
|
|
set-tab key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_sundo</TD><TD>kUND</TD><TD>!3</TD><TD>
|
|
shifted undo key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_suspend</TD><TD>kspd</TD><TD>&7</TD><TD>
|
|
suspend key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_undo</TD><TD>kund</TD><TD>&8</TD><TD>
|
|
undo key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_up</TD><TD>kcuu1</TD><TD>ku</TD><TD>
|
|
up-arrow key
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>keypad_local</TD><TD>rmkx</TD><TD>ke</TD><TD>
|
|
leave 'keyboard_transmit' mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>keypad_xmit</TD><TD>smkx</TD><TD>ks</TD><TD>
|
|
enter 'keyboard_transmit' mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f0</TD><TD>lf0</TD><TD>l0</TD><TD>
|
|
label on function key f0 if not f0
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f1</TD><TD>lf1</TD><TD>l1</TD><TD>
|
|
label on function key f1 if not f1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f10</TD><TD>lf10</TD><TD>la</TD><TD>
|
|
label on function key f10 if not f10
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f2</TD><TD>lf2</TD><TD>l2</TD><TD>
|
|
label on function key f2 if not f2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f3</TD><TD>lf3</TD><TD>l3</TD><TD>
|
|
label on function key f3 if not f3
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f4</TD><TD>lf4</TD><TD>l4</TD><TD>
|
|
label on function key f4 if not f4
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f5</TD><TD>lf5</TD><TD>l5</TD><TD>
|
|
label on function key f5 if not f5
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f6</TD><TD>lf6</TD><TD>l6</TD><TD>
|
|
label on function key f6 if not f6
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f7</TD><TD>lf7</TD><TD>l7</TD><TD>
|
|
label on function key f7 if not f7
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f8</TD><TD>lf8</TD><TD>l8</TD><TD>
|
|
label on function key f8 if not f8
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lab_f9</TD><TD>lf9</TD><TD>l9</TD><TD>
|
|
label on function key f9 if not f9
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>label_format</TD><TD>fln</TD><TD>Lf</TD><TD>
|
|
label format
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>label_off</TD><TD>rmln</TD><TD>LF</TD><TD>
|
|
turn off soft labels
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>label_on</TD><TD>smln</TD><TD>LO</TD><TD>
|
|
turn on soft labels
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>meta_off</TD><TD>rmm</TD><TD>mo</TD><TD>
|
|
turn off meta mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>meta_on</TD><TD>smm</TD><TD>mm</TD><TD>
|
|
turn on meta mode (8th-bit on)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_column_address</TD><TD>mhpa</TD><TD>ZY</TD><TD>
|
|
Like column_address in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_down</TD><TD>mcud1</TD><TD>ZZ</TD><TD>
|
|
Like cursor_down in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_left</TD><TD>mcub1</TD><TD>Za</TD><TD>
|
|
Like cursor_left in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_right</TD><TD>mcuf1</TD><TD>Zb</TD><TD>
|
|
Like cursor_right in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_row_address</TD><TD>mvpa</TD><TD>Zc</TD><TD>
|
|
Like row_address #1 in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>micro_up</TD><TD>mcuu1</TD><TD>Zd</TD><TD>
|
|
Like cursor_up in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>newline</TD><TD>nel</TD><TD>nw</TD><TD>
|
|
newline (behave like cr followed by lf)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>order_of_pins</TD><TD>porder</TD><TD>Ze</TD><TD>
|
|
Match software bits to print-head pins
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>orig_colors</TD><TD>oc</TD><TD>oc</TD><TD>
|
|
Set all color pairs to the original ones
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>orig_pair</TD><TD>op</TD><TD>op</TD><TD>
|
|
Set default pair to its original value
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>pad_char</TD><TD>pad</TD><TD>pc</TD><TD>
|
|
padding char (instead of null)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_dch</TD><TD>dch</TD><TD>DC</TD><TD>
|
|
delete #1 characters (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_delete_line</TD><TD>dl</TD><TD>DL</TD><TD>
|
|
delete #1 lines (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_down_cursor</TD><TD>cud</TD><TD>DO</TD><TD>
|
|
down #1 lines (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_down_micro</TD><TD>mcud</TD><TD>Zf</TD><TD>
|
|
Like parm_down_cursor in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_ich</TD><TD>ich</TD><TD>IC</TD><TD>
|
|
insert #1 characters (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_index</TD><TD>indn</TD><TD>SF</TD><TD>
|
|
scroll forward #1 lines (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_insert_line</TD><TD>il</TD><TD>AL</TD><TD>
|
|
insert #1 lines (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_left_cursor</TD><TD>cub</TD><TD>LE</TD><TD>
|
|
move #1 characters to the left (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_left_micro</TD><TD>mcub</TD><TD>Zg</TD><TD>
|
|
Like parm_left_cursor in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_right_cursor</TD><TD>cuf</TD><TD>RI</TD><TD>
|
|
move #1 characters to the right (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_right_micro</TD><TD>mcuf</TD><TD>Zh</TD><TD>
|
|
Like parm_right_cursor in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_rindex</TD><TD>rin</TD><TD>SR</TD><TD>
|
|
scroll back #1 lines (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_up_cursor</TD><TD>cuu</TD><TD>UP</TD><TD>
|
|
up #1 lines (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>parm_up_micro</TD><TD>mcuu</TD><TD>Zi</TD><TD>
|
|
Like parm_up_cursor in micro mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>pkey_key</TD><TD>pfkey</TD><TD>pk</TD><TD>
|
|
program function key #1 to type string #2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>pkey_local</TD><TD>pfloc</TD><TD>pl</TD><TD>
|
|
program function key #1 to execute string #2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>pkey_xmit</TD><TD>pfx</TD><TD>px</TD><TD>
|
|
program function key #1 to transmit string #2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>plab_norm</TD><TD>pln</TD><TD>pn</TD><TD>
|
|
program label #1 to show string #2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>print_screen</TD><TD>mc0</TD><TD>ps</TD><TD>
|
|
print contents of screen
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>prtr_non</TD><TD>mc5p</TD><TD>pO</TD><TD>
|
|
turn on printer for #1 bytes
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>prtr_off</TD><TD>mc4</TD><TD>pf</TD><TD>
|
|
turn off printer
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>prtr_on</TD><TD>mc5</TD><TD>po</TD><TD>
|
|
turn on printer
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>pulse</TD><TD>pulse</TD><TD>PU</TD><TD>
|
|
select pulse dialing
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>quick_dial</TD><TD>qdial</TD><TD>QD</TD><TD>
|
|
dial number #1 without checking
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>remove_clock</TD><TD>rmclk</TD><TD>RC</TD><TD>
|
|
remove clock
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>repeat_char</TD><TD>rep</TD><TD>rp</TD><TD>
|
|
repeat char #1 #2 times (P*)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>req_for_input</TD><TD>rfi</TD><TD>RF</TD><TD>
|
|
send next input char (for ptys)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>reset_1string</TD><TD>rs1</TD><TD>r1</TD><TD>
|
|
reset string
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>reset_2string</TD><TD>rs2</TD><TD>r2</TD><TD>
|
|
reset string
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>reset_3string</TD><TD>rs3</TD><TD>r3</TD><TD>
|
|
reset string
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>reset_file</TD><TD>rf</TD><TD>rf</TD><TD>
|
|
name of reset file
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>restore_cursor</TD><TD>rc</TD><TD>rc</TD><TD>
|
|
restore cursor to position of last save_cursor
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>row_address</TD><TD>vpa</TD><TD>cv</TD><TD>
|
|
vertical position #1 absolute (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>save_cursor</TD><TD>sc</TD><TD>sc</TD><TD>
|
|
save current cursor position (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>scroll_forward</TD><TD>ind</TD><TD>sf</TD><TD>
|
|
scroll text up (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>scroll_reverse</TD><TD>ri</TD><TD>sr</TD><TD>
|
|
scroll text down (P)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>select_char_set</TD><TD>scs</TD><TD>Zj</TD><TD>
|
|
Select character set, #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_attributes</TD><TD>sgr</TD><TD>sa</TD><TD>
|
|
define video attributes #1-#9 (PG9)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_background</TD><TD>setb</TD><TD>Sb</TD><TD>
|
|
Set background color #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_bottom_margin</TD><TD>smgb</TD><TD>Zk</TD><TD>
|
|
Set bottom margin at current line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_bottom_margin_parm</TD><TD>smgbp</TD><TD>Zl</TD><TD>
|
|
Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_clock</TD><TD>sclk</TD><TD>SC</TD><TD>
|
|
set clock, #1 hrs #2 mins #3 secs
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_color_pair</TD><TD>scp</TD><TD>sp</TD><TD>
|
|
Set current color pair to #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_foreground</TD><TD>setf</TD><TD>Sf</TD><TD>
|
|
Set foreground color #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_left_margin</TD><TD>smgl</TD><TD>ML</TD><TD>
|
|
set left soft margin at current column.<TT> </TT> See smgl. (ML is not in BSD termcap).<BR>
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_left_margin_parm</TD><TD>smglp</TD><TD>Zm</TD><TD>
|
|
Set left (right) margin at column #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_right_margin</TD><TD>smgr</TD><TD>MR</TD><TD>
|
|
set right soft margin at current column
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_right_margin_parm</TD><TD>smgrp</TD><TD>Zn</TD><TD>
|
|
Set right margin at column #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_tab</TD><TD>hts</TD><TD>st</TD><TD>
|
|
set a tab in every row, current columns
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_top_margin</TD><TD>smgt</TD><TD>Zo</TD><TD>
|
|
Set top margin at current line
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_top_margin_parm</TD><TD>smgtp</TD><TD>Zp</TD><TD>
|
|
Set top (bottom) margin at row #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_window</TD><TD>wind</TD><TD>wi</TD><TD>
|
|
current window is lines #1-#2 cols #3-#4
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>start_bit_image</TD><TD>sbim</TD><TD>Zq</TD><TD>
|
|
Start printing bit image graphics
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>start_char_set_def</TD><TD>scsd</TD><TD>Zr</TD><TD>
|
|
Start character set definition #1, with #2 characters in the set
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>stop_bit_image</TD><TD>rbim</TD><TD>Zs</TD><TD>
|
|
Stop printing bit image graphics
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>stop_char_set_def</TD><TD>rcsd</TD><TD>Zt</TD><TD>
|
|
End definition of character set #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>subscript_characters</TD><TD>subcs</TD><TD>Zu</TD><TD>
|
|
List of subscriptable characters
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>superscript_characters</TD><TD>supcs</TD><TD>Zv</TD><TD>
|
|
List of superscriptable characters
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>tab</TD><TD>ht</TD><TD>ta</TD><TD>
|
|
tab to next 8-space hardware tab stop
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>these_cause_cr</TD><TD>docr</TD><TD>Zw</TD><TD>
|
|
Printing any of these characters causes CR
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>to_status_line</TD><TD>tsl</TD><TD>ts</TD><TD>
|
|
move to status line, column #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>tone</TD><TD>tone</TD><TD>TO</TD><TD>
|
|
select touch tone dialing
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>underline_char</TD><TD>uc</TD><TD>uc</TD><TD>
|
|
underline char and move past it
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>up_half_line</TD><TD>hu</TD><TD>hu</TD><TD>
|
|
half a line up
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user0</TD><TD>u0</TD><TD>u0</TD><TD>
|
|
User string #0
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user1</TD><TD>u1</TD><TD>u1</TD><TD>
|
|
User string #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user2</TD><TD>u2</TD><TD>u2</TD><TD>
|
|
User string #2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user3</TD><TD>u3</TD><TD>u3</TD><TD>
|
|
User string #3
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user4</TD><TD>u4</TD><TD>u4</TD><TD>
|
|
User string #4
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user5</TD><TD>u5</TD><TD>u5</TD><TD>
|
|
User string #5
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user6</TD><TD>u6</TD><TD>u6</TD><TD>
|
|
User string #6
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user7</TD><TD>u7</TD><TD>u7</TD><TD>
|
|
User string #7
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user8</TD><TD>u8</TD><TD>u8</TD><TD>
|
|
User string #8
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>user9</TD><TD>u9</TD><TD>u9</TD><TD>
|
|
User string #9
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>wait_tone</TD><TD>wait</TD><TD>WA</TD><TD>
|
|
wait for dial-tone
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>xoff_character</TD><TD>xoffc</TD><TD>XF</TD><TD>
|
|
XOFF character
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>xon_character</TD><TD>xonc</TD><TD>XN</TD><TD>
|
|
XON character
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>zero_motion</TD><TD>zerom</TD><TD>Zx</TD><TD>
|
|
No motion for subsequent character
|
|
<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
<FONT SIZE="-1">
|
|
|
|
<P>
|
|
The following string capabilities are present in the SVr4.0 term structure,
|
|
but were originally not documented in the man page.
|
|
<P>
|
|
|
|
</FONT><CENTER><TABLE>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Variable</B></TD><TD>Cap-</TD><TD>TCap</TD><TD ALIGN=center>Description<BR></TD></TR>
|
|
<TR VALIGN=top><TD ALIGN=center><B>String</B></TD><TD>name</TD><TD>Code</TD><TD ALIGN=center><BR></TD></TR>
|
|
<TR VALIGN=top><TD>alt_scancode_esc</TD><TD>scesa</TD><TD>S8</TD><TD>
|
|
Alternate escape for scancode emulation
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>bit_image_carriage_return</TD><TD>bicr</TD><TD>Yv</TD><TD>
|
|
Move to beginning of same row
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>bit_image_newline</TD><TD>binel</TD><TD>Zz</TD><TD>
|
|
Move to next row of the bit image
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>bit_image_repeat</TD><TD>birep</TD><TD>Xy</TD><TD>
|
|
Repeat bit image cell #1 #2 times
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>char_set_names</TD><TD>csnm</TD><TD>Zy</TD><TD>
|
|
Produce #1'th item from list of character set names
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>code_set_init</TD><TD>csin</TD><TD>ci</TD><TD>
|
|
Init sequence for multiple codesets
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>color_names</TD><TD>colornm</TD><TD>Yw</TD><TD>
|
|
Give name for color #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>define_bit_image_region</TD><TD>defbi</TD><TD>Yx</TD><TD>
|
|
Define rectangular bit image region
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>device_type</TD><TD>devt</TD><TD>dv</TD><TD>
|
|
Indicate language/codeset support
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>display_pc_char</TD><TD>dispc</TD><TD>S1</TD><TD>
|
|
Display PC character #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>end_bit_image_region</TD><TD>endbi</TD><TD>Yy</TD><TD>
|
|
End a bit-image region
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_pc_charset_mode</TD><TD>smpch</TD><TD>S2</TD><TD>
|
|
Enter PC character display mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_scancode_mode</TD><TD>smsc</TD><TD>S4</TD><TD>
|
|
Enter PC scancode mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_pc_charset_mode</TD><TD>rmpch</TD><TD>S3</TD><TD>
|
|
Exit PC character display mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>exit_scancode_mode</TD><TD>rmsc</TD><TD>S5</TD><TD>
|
|
Exit PC scancode mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>get_mouse</TD><TD>getm</TD><TD>Gm</TD><TD>
|
|
Curses should get button events, parameter #1 not documented.
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>key_mouse</TD><TD>kmous</TD><TD>Km</TD><TD>
|
|
Mouse event has occurred
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>mouse_info</TD><TD>minfo</TD><TD>Mi</TD><TD>
|
|
Mouse status information
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>pc_term_options</TD><TD>pctrm</TD><TD>S6</TD><TD>
|
|
PC terminal options
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>pkey_plab</TD><TD>pfxl</TD><TD>xl</TD><TD>
|
|
Program function key #1 to type string #2 and show string #3
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>req_mouse_pos</TD><TD>reqmp</TD><TD>RQ</TD><TD>
|
|
Request mouse position
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>scancode_escape</TD><TD>scesc</TD><TD>S7</TD><TD>
|
|
Escape for scancode emulation
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set0_des_seq</TD><TD>s0ds</TD><TD>s0</TD><TD>
|
|
Shift to codeset 0 (EUC set 0, ASCII)
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set1_des_seq</TD><TD>s1ds</TD><TD>s1</TD><TD>
|
|
Shift to codeset 1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set2_des_seq</TD><TD>s2ds</TD><TD>s2</TD><TD>
|
|
Shift to codeset 2
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set3_des_seq</TD><TD>s3ds</TD><TD>s3</TD><TD>
|
|
Shift to codeset 3
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_a_background</TD><TD>setab</TD><TD>AB</TD><TD>
|
|
Set background color to #1, using ANSI escape
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_a_foreground</TD><TD>setaf</TD><TD>AF</TD><TD>
|
|
Set foreground color to #1, using ANSI escape
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_color_band</TD><TD>setcolor</TD><TD>Yz</TD><TD>
|
|
Change to ribbon color #1
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_lr_margin</TD><TD>smglr</TD><TD>ML</TD><TD>
|
|
Set both left and right margins to #1, #2. (ML is not in BSD termcap).
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_page_length</TD><TD>slines</TD><TD>YZ</TD><TD>
|
|
Set page length to #1 lines
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_tb_margin</TD><TD>smgtb</TD><TD>MT</TD><TD>
|
|
Sets both top and bottom margins to #1, #2
|
|
<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
<FONT SIZE="-1">
|
|
|
|
<P>
|
|
|
|
The XSI Curses standard added these hardcopy capabilities.
|
|
They were used in some post-4.1 versions of System V curses,
|
|
e.g., Solaris 2.5 and IRIX 6.x.
|
|
Except for <B>YI</B>, the <B>ncurses</B> termcap names for them are invented.
|
|
According to the XSI Curses standard, they have no termcap names.
|
|
If your compiled terminfo entries use these,
|
|
they may not be binary-compatible with System V terminfo
|
|
entries after SVr4.1; beware!
|
|
<P>
|
|
|
|
</FONT><CENTER><TABLE>
|
|
<TR VALIGN=top><TD ALIGN=center><B>Variable</B></TD><TD>Cap-</TD><TD>TCap</TD><TD ALIGN=center>Description<BR></TD></TR>
|
|
<TR VALIGN=top><TD ALIGN=center><B>String</B></TD><TD>name</TD><TD>Code</TD><TD ALIGN=center><BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_horizontal_hl_mode</TD><TD>ehhlm</TD><TD>Xh</TD><TD>
|
|
Enter horizontal highlight mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_left_hl_mode</TD><TD>elhlm</TD><TD>Xl</TD><TD>
|
|
Enter left highlight mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_low_hl_mode</TD><TD>elohlm</TD><TD>Xo</TD><TD>
|
|
Enter low highlight mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_right_hl_mode</TD><TD>erhlm</TD><TD>Xr</TD><TD>
|
|
Enter right highlight mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_top_hl_mode</TD><TD>ethlm</TD><TD>Xt</TD><TD>
|
|
Enter top highlight mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>enter_vertical_hl_mode</TD><TD>evhlm</TD><TD>Xv</TD><TD>
|
|
Enter vertical highlight mode
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_a_attributes</TD><TD>sgr1</TD><TD>sA</TD><TD>
|
|
Define second set of video attributes #1-#6
|
|
<BR></TD></TR>
|
|
<TR VALIGN=top><TD>set_pglen_inch</TD><TD>slength</TD><TD>YI</TD><TD>
|
|
Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
|
|
<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
<FONT SIZE="-1">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</FONT>
|
|
<A NAME="lbAI"> </A>
|
|
<H3>User-Defined Capabilities</H3>
|
|
|
|
The preceding section listed the <I>predefined</I> capabilities.
|
|
They deal with some special features for terminals no longer
|
|
(or possibly never) produced.
|
|
Occasionally there are special features of newer terminals which
|
|
are awkward or impossible to represent by reusing the predefined
|
|
capabilities.
|
|
<P>
|
|
|
|
<B>ncurses</B> addresses this limitation by allowing user-defined capabilities.
|
|
The <B>tic</B> and <B>infocmp</B> programs provide
|
|
the <B>-x</B> option for this purpose.
|
|
When <B>-x</B> is set,
|
|
<B>tic</B> treats unknown capabilities as user-defined.
|
|
That is, if <B>tic</B> encounters a capability name
|
|
which it does not recognize,
|
|
it infers its type (boolean, number or string) from the syntax
|
|
and makes an extended table entry for that capability.
|
|
The <B><A HREF="/cgi-bin/man/man2html?3X+use_extended_names">use_extended_names</A></B>(3X) function makes this information
|
|
conditionally available to applications.
|
|
The ncurses library provides the data leaving most of the behavior
|
|
to applications:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
User-defined capability strings whose name begins
|
|
with ``k'' are treated as function keys.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
The types (boolean, number, string) determined by <B>tic</B>
|
|
can be inferred by successful calls on <B>tigetflag</B>, etc.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
If the capability name happens to be two characters,
|
|
the capability is also available through the termcap interface.
|
|
<P>
|
|
|
|
While termcap is said to be extensible because it does not use a predefined set
|
|
of capabilities,
|
|
in practice it has been limited to the capabilities defined by
|
|
terminfo implementations.
|
|
As a rule,
|
|
user-defined capabilities intended for use by termcap applications should
|
|
be limited to booleans and numbers to avoid running past the 1023 byte
|
|
limit assumed by termcap implementations and their applications.
|
|
In particular, providing extended sets of function keys (past the 60
|
|
numbered keys and the handful of special named keys) is best done using
|
|
the longer names available using terminfo.
|
|
<A NAME="lbAJ"> </A>
|
|
<H3>A Sample Entry</H3>
|
|
|
|
The following entry, describing an ANSI-standard terminal, is representative
|
|
of what a <B>terminfo</B> entry for a modern terminal typically looks like.
|
|
<P>
|
|
|
|
<PRE>
|
|
<FONT SIZE="-2">ansi|ansi/pc-term compatible with color,
|
|
am, mc5i, mir, msgr,
|
|
colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
|
|
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260
|
|
j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303
|
|
u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
|
|
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
|
|
cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
|
|
cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
|
|
cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
|
|
dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
|
|
el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH,
|
|
ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
|
|
indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
|
|
kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
|
|
mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, op=\E[39;49m,
|
|
rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT,
|
|
rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m,
|
|
s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B,
|
|
setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
|
|
sgr=\E[0;10%?%p1%t;7%;
|
|
%?%p2%t;4%;
|
|
%?%p3%t;7%;
|
|
%?%p4%t;5%;
|
|
%?%p6%t;1%;
|
|
%?%p7%t;8%;
|
|
%?%p9%t;11%;m,
|
|
sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m,
|
|
smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
|
|
u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
|
|
</FONT></PRE>
|
|
|
|
|
|
<P>
|
|
|
|
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</I>
|
|
|
|
are of three types:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Boolean capabilities which indicate that the terminal has
|
|
some particular feature,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
numeric capabilities giving the size of the terminal
|
|
or the size of particular delays, and
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
string
|
|
capabilities, which give a sequence which can be used to perform particular
|
|
terminal operations.
|
|
<P>
|
|
|
|
<A NAME="lbAK"> </A>
|
|
<H3>Types of Capabilities</H3>
|
|
|
|
<P>
|
|
|
|
All capabilities have names.
|
|
For instance, the fact that
|
|
ANSI-standard terminals have
|
|
<I>automatic margins</I>
|
|
|
|
(i.e., an automatic return and line-feed
|
|
when the end of a line is reached) is indicated by the capability <B>am</B>.
|
|
Hence the description of ansi includes <B>am</B>.
|
|
Numeric capabilities are followed by the character ``#'' and then a positive value.
|
|
Thus <B>cols</B>, which indicates the number of columns the terminal has,
|
|
gives the value ``80'' for ansi.
|
|
Values for numeric capabilities may be specified in decimal, octal or hexadecimal,
|
|
using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF).
|
|
<P>
|
|
|
|
Finally, string valued capabilities, such as <B>el</B> (clear to end of line
|
|
sequence) are given by the two-character code, an ``='', and then a string
|
|
ending at the next following ``,''.
|
|
<P>
|
|
|
|
A number of escape sequences are provided in the string valued capabilities
|
|
for easy encoding of characters there:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Both <B>\E</B> and <B>\e</B>
|
|
map to an <FONT SIZE="-1">ESCAPE</FONT> character,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>^x</B> maps to a control-x for any appropriate <I>x</I>, and
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
the sequences
|
|
<DL COMPACT><DT id="12"><DD>
|
|
<P>
|
|
|
|
<B>\n</B>, <B>\l</B>, <B>\r</B>, <B>\t</B>, <B>\b</B>, <B>\f</B>, and <B>\s</B>
|
|
</DL>
|
|
|
|
<DL COMPACT>
|
|
<DT id="13"><DD>
|
|
produce
|
|
<DL COMPACT><DT id="14"><DD>
|
|
<P>
|
|
|
|
<I>newline</I>, <I>line-feed</I>, <I>return</I>, <I>tab</I>, <I>backspace</I>, <I>form-feed</I>, and <I>space</I>,
|
|
</DL>
|
|
|
|
<DT id="15"><DD>
|
|
respectively.
|
|
</DL>
|
|
<P>
|
|
|
|
X/Open Curses does not say what ``appropriate <I>x</I>'' might be.
|
|
In practice, that is a printable ASCII graphic character.
|
|
The special case ``^?'' is interpreted as DEL (127).
|
|
In all other cases, the character value is AND'd with 0x1f,
|
|
mapping to ASCII control codes in the range 0 through 31.
|
|
<P>
|
|
|
|
Other escapes include
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>\^</B> for <B>^</B>,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>\\</B> for <B>\</B>,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>\</B>, for comma,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>\:</B> for <B>:</B>,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
and <B>\0</B> for null.
|
|
<DL COMPACT>
|
|
<DT id="16"><DD>
|
|
<B>\0</B> will produce \200, which does not terminate a string but behaves
|
|
as a null character on most terminals, providing CS7 is specified.
|
|
See <B><A HREF="/cgi-bin/man/man2html?1+stty">stty</A></B>(1).
|
|
<DT id="17"><DD>
|
|
The reason for this quirk is to maintain binary compatibility of the
|
|
compiled terminfo files with other implementations,
|
|
e.g., the SVr4 systems, which document this.
|
|
Compiled terminfo files use null-terminated strings, with no lengths.
|
|
Modifying this would require a new binary format,
|
|
which would not work with other implementations.
|
|
</DL>
|
|
<P>
|
|
|
|
Finally, characters may be given as three octal digits after a <B>\</B>.
|
|
<P>
|
|
|
|
A delay in milliseconds may appear anywhere in a string capability, enclosed in
|
|
$<..> brackets, as in <B>el</B>=\EK$<5>,
|
|
and padding characters are supplied by <B><A HREF="/cgi-bin/man/man2html?3X+tputs">tputs</A></B>(3X)
|
|
to provide this delay.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
The delay must be a number with at most one decimal
|
|
place of precision; it may be followed by suffixes ``*'' or ``/'' or both.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
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 <I>lines</I> affected.)
|
|
<DL COMPACT>
|
|
<DT id="18"><DD>
|
|
Normally, padding is advisory if the device has the <B>xon</B>
|
|
capability; it is used for cost computation but does not trigger delays.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
A ``/''
|
|
suffix indicates that the padding is mandatory and forces a delay of the given
|
|
number of milliseconds even on devices for which <B>xon</B> is present to
|
|
indicate flow control.
|
|
</DL>
|
|
<P>
|
|
|
|
Sometimes individual capabilities must be commented out.
|
|
To do this, put a period before the capability name.
|
|
For example, see the second
|
|
<B>ind</B>
|
|
|
|
in the example above.
|
|
<BR>
|
|
|
|
|
|
<P>
|
|
|
|
<A NAME="lbAL"> </A>
|
|
<H3>Fetching Compiled Descriptions</H3>
|
|
|
|
<P>
|
|
|
|
The <B>ncurses</B> library searches for terminal descriptions in several places.
|
|
It uses only the first description found.
|
|
The library has a compiled-in list of places to search
|
|
which can be overridden by environment variables.
|
|
Before starting to search,
|
|
<B>ncurses</B> eliminates duplicates in its search list.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
If the environment variable TERMINFO is set, it is interpreted as the pathname
|
|
of a directory containing the compiled description you are working on.
|
|
Only that directory is searched.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
If TERMINFO is not set,
|
|
<B>ncurses</B> will instead look in the directory <B>$HOME/.terminfo</B>
|
|
for a compiled description.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Next, if the environment variable TERMINFO_DIRS is set,
|
|
<B>ncurses</B> will interpret the contents of that variable
|
|
as a list of colon-separated directories (or database files) to be searched.
|
|
<DL COMPACT>
|
|
<DT id="19"><DD>
|
|
An empty directory name (i.e., if the variable begins or ends
|
|
with a colon, or contains adjacent colons)
|
|
is interpreted as the system location <I>/etc/terminfo</I>.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Finally, <B>ncurses</B> searches these compiled-in locations:
|
|
<DL COMPACT><DT id="20"><DD>
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
a list of directories (no default value), and
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
the system terminfo directory, <I>/etc/terminfo</I> (the compiled-in default).
|
|
</DL>
|
|
|
|
</DL>
|
|
<A NAME="lbAM"> </A>
|
|
<H3>Preparing Descriptions</H3>
|
|
|
|
<P>
|
|
|
|
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</I>
|
|
|
|
and to build up a description gradually, using partial descriptions
|
|
with
|
|
<I>vi</I>
|
|
|
|
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</I>
|
|
|
|
file to describe it
|
|
or bugs in the screen-handling code of the test program.
|
|
<P>
|
|
|
|
To get the padding for insert line right (if the terminal manufacturer
|
|
did not document it) a severe test is to edit 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 usually needed.
|
|
A similar test can be used for insert character.
|
|
<P>
|
|
|
|
<A NAME="lbAN"> </A>
|
|
<H3>Basic Capabilities</H3>
|
|
|
|
<P>
|
|
|
|
The number of columns on each line for the terminal is given by the
|
|
<B>cols</B> numeric capability.
|
|
If the terminal is a <FONT SIZE="-1">CRT</FONT>, then the
|
|
number of lines on the screen is given by the <B>lines</B> capability.
|
|
If the terminal wraps around to the beginning of the next line when
|
|
it reaches the right margin, then it should have the <B>am</B> capability.
|
|
If the terminal can clear its screen, leaving the cursor in the home
|
|
position, then this is given by the <B>clear</B> string capability.
|
|
If the terminal overstrikes
|
|
(rather than clearing a position when a character is struck over)
|
|
then it should have the <B>os</B> capability.
|
|
If the terminal is a printing terminal, with no soft copy unit,
|
|
give it both
|
|
<B>hc</B>
|
|
|
|
and
|
|
<B>os</B>.
|
|
|
|
(<B>os</B>
|
|
|
|
applies to storage scope terminals, such as <FONT SIZE="-1">TEKTRONIX</FONT> 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
|
|
<B>cr</B>.
|
|
|
|
(Normally this will be carriage return, control/M.)
|
|
If there is a code to produce an audible signal (bell, beep, etc)
|
|
give this as
|
|
<B>bel</B>.
|
|
|
|
<P>
|
|
|
|
If there is a code to move the cursor one position to the left
|
|
(such as backspace) that capability should be given as
|
|
<B>cub1</B>.
|
|
|
|
Similarly, codes to move to the right, up, and down should be
|
|
given as
|
|
<B>cuf1</B>,
|
|
|
|
<B>cuu1</B>,
|
|
|
|
and
|
|
<B>cud1</B>.
|
|
|
|
These local cursor motions should not alter the text they pass over,
|
|
for example, you would not normally use ``<B>cuf1</B>= '' because the
|
|
space would erase the character moved over.
|
|
<P>
|
|
|
|
A very important point here is that the local cursor motions encoded
|
|
in
|
|
<I>terminfo</I>
|
|
|
|
are undefined at the left and top edges of a <FONT SIZE="-1">CRT</FONT> terminal.
|
|
Programs should never attempt to backspace around the left edge,
|
|
unless
|
|
<B>bw</B>
|
|
|
|
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</B>
|
|
|
|
(index) string.
|
|
<P>
|
|
|
|
To scroll text down, a program goes to the top left corner
|
|
of the screen and sends the
|
|
<B>ri</B>
|
|
|
|
(reverse index) string.
|
|
The strings
|
|
<B>ind</B>
|
|
|
|
and
|
|
<B>ri</B>
|
|
|
|
are undefined when not on their respective corners of the screen.
|
|
<P>
|
|
|
|
Parameterized versions of the scrolling sequences are
|
|
<B>indn</B>
|
|
|
|
and
|
|
<B>rin</B>
|
|
|
|
which have the same semantics as
|
|
<B>ind</B>
|
|
|
|
and
|
|
<B>ri</B>
|
|
|
|
except that they take one parameter, and scroll that many lines.
|
|
They are also undefined except at the appropriate edge of the screen.
|
|
<P>
|
|
|
|
The <B>am</B> 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</B>
|
|
|
|
from the last column.
|
|
The only local motion which is defined from the left edge is if
|
|
<B>bw</B>
|
|
|
|
is given, then a
|
|
<B>cub1</B>
|
|
|
|
from the left edge will move to the right edge of the previous row.
|
|
If
|
|
<B>bw</B>
|
|
|
|
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</I>
|
|
|
|
file usually assumes that this is on; i.e., <B>am</B>.
|
|
If the terminal has a command which moves to the first column of the next
|
|
line, that command can be given as
|
|
<B>nel</B>
|
|
|
|
(newline).
|
|
It does not matter if the command clears the remainder of the current line,
|
|
so if the terminal has no
|
|
<B>cr</B>
|
|
|
|
and
|
|
<B>lf</B>
|
|
|
|
it may still be possible to craft a working
|
|
<B>nel</B>
|
|
|
|
out of one or both of them.
|
|
<P>
|
|
|
|
These capabilities suffice to describe hard-copy and ``glass-tty'' terminals.
|
|
Thus the model 33 teletype is described as
|
|
<P>
|
|
|
|
|
|
<PRE>
|
|
<FONT SIZE="-1">33|tty33|tty|model 33 teletype,
|
|
bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,</FONT>
|
|
</PRE>
|
|
|
|
<P>
|
|
|
|
while the Lear Siegler <FONT SIZE="-1">ADM-3</FONT> is described as
|
|
<P>
|
|
|
|
|
|
<PRE>
|
|
<FONT SIZE="-1">adm3|3|lsi adm3,
|
|
am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
|
|
ind=^J, lines#24,</FONT>
|
|
</PRE>
|
|
|
|
<P>
|
|
|
|
<A NAME="lbAO"> </A>
|
|
<H3>Parameterized Strings</H3>
|
|
|
|
<P>
|
|
|
|
Cursor addressing and other strings requiring parameters
|
|
in the terminal are described by a
|
|
parameterized string capability,
|
|
with <I>printf</I>-like escapes such as <I>%x</I> in it.
|
|
For example, to address the cursor, the
|
|
<B>cup</B>
|
|
|
|
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
|
|
<B>mrcup</B>.
|
|
|
|
<P>
|
|
|
|
The parameter mechanism uses a stack and special <B>%</B> codes
|
|
to manipulate it.
|
|
Typically a sequence will push one of the
|
|
parameters onto the stack and then print it in some format.
|
|
Print (e.g., "%d") is a special case.
|
|
Other operations, including "%t" pop their operand from the stack.
|
|
It is noted that more complex operations are often necessary,
|
|
e.g., in the <B>sgr</B> string.
|
|
<P>
|
|
|
|
The <B>%</B> encodings have the following meanings:
|
|
<P>
|
|
|
|
<DL COMPACT>
|
|
<DT id="21"><B>%%</B><DD>
|
|
outputs ``%''
|
|
<DT id="22"><B>%</B><I>[[</I>:<I>]flags][width[.precision]][</I><B>doxXs</B><I>]</I><DD>
|
|
as in <B><A HREF="/cgi-bin/man/man2html?3+printf">printf</A></B>(3), flags are <I>[-+#]</I> and <I>space</I>.
|
|
Use a ``:'' to allow the next character to be a ``-'' flag,
|
|
avoiding interpreting ``%-'' as an operator.
|
|
<DT id="23"><TT>%c</TT><DD>
|
|
print <I>pop()</I> like %c in <B>printf</B>
|
|
<DT id="24"><B>%s</B><DD>
|
|
print <I>pop()</I> like %s in <B>printf</B>
|
|
<DT id="25"><B>%p</B><I>[1-9]</I><DD>
|
|
push <I>i</I>'th parameter
|
|
<DT id="26"><B>%P</B><I>[a-z]</I><DD>
|
|
set dynamic variable <I>[a-z]</I> to <I>pop()</I>
|
|
<DT id="27"><B>%g</B><I>[a-z]/</I><DD>
|
|
get dynamic variable <I>[a-z]</I> and push it
|
|
<DT id="28"><B>%P</B><I>[A-Z]</I><DD>
|
|
set static variable <I>[a-z]</I> to <I>pop()</I>
|
|
<DT id="29"><B>%g</B><I>[A-Z]</I><DD>
|
|
get static variable <I>[a-z]</I> and push it
|
|
<DT id="30"><DD>
|
|
The terms ``static'' and ``dynamic'' are misleading.
|
|
Historically, these are simply two different sets of variables,
|
|
whose values are not reset between calls to <B><A HREF="/cgi-bin/man/man2html?3X+tparm">tparm</A></B>(3X).
|
|
However, that fact is not documented in other implementations.
|
|
Relying on it will adversely impact portability to other implementations.
|
|
<DT id="31"><B>%'</B><I>c</I><B>'</B><DD>
|
|
char constant <I>c</I>
|
|
<DT id="32"><B>%{</B><I>nn</I><B>}</B><DD>
|
|
integer constant <I>nn</I>
|
|
<DT id="33"><B>%l</B><DD>
|
|
push strlen(pop)
|
|
<DT id="34"><B>%+</B>, <B>%-</B>, <B>%*</B>, <B>%/</B>, <B>%m</B><DD>
|
|
arithmetic (%m is <I>mod</I>): <I>push(pop() op pop())</I>
|
|
<DT id="35"><B>%&</B>, <B>%|</B>, <B>%^</B><DD>
|
|
bit operations (AND, OR and exclusive-OR): <I>push(pop() op pop())</I>
|
|
<DT id="36"><B>%=</B>, <B>%></B>, <B>%<</B><DD>
|
|
logical operations: <I>push(pop() op pop())</I>
|
|
<DT id="37"><B>%A</B>, <B>%O</B><DD>
|
|
logical AND and OR operations (for conditionals)
|
|
<DT id="38"><B>%!</B>, <B>%~</B><DD>
|
|
unary operations (logical and bit complement): <I>push(op pop())</I>
|
|
<DT id="39"><B>%i</B><DD>
|
|
add 1 to first two parameters (for ANSI terminals)
|
|
<DT id="40"><B>%?</B> <I>expr</I> <B>%t</B> <I>thenpart</I> <B>%e</B> <I>elsepart</I> <B>%;</B><DD>
|
|
This forms an if-then-else.
|
|
The <B>%e</B> <I>elsepart</I> is optional.
|
|
Usually the <B>%?</B> <I>expr</I> part pushes a value onto the stack,
|
|
and <B>%t</B> pops it from the stack, testing if it is nonzero (true).
|
|
If it is zero (false), control passes to the <B>%e</B> (else) part.
|
|
<DT id="41"><DD>
|
|
It is possible to form else-if's a la Algol 68:
|
|
<DL COMPACT><DT id="42"><DD>
|
|
<B>%?</B> c1 <B>%t</B> b1 <B>%e</B> c2 <B>%t</B> b2 <B>%e</B> c3 <B>%t</B> b3 <B>%e</B> c4 <B>%t</B> b4 <B>%e</B> <B>%;</B>
|
|
</DL>
|
|
|
|
<DT id="43"><DD>
|
|
where ci are conditions, bi are bodies.
|
|
<DT id="44"><DD>
|
|
Use the <B>-f</B> option of <B>tic</B> or <B>infocmp</B> to see
|
|
the structure of if-then-else's.
|
|
Some strings, e.g., <B>sgr</B> can be very complicated when written
|
|
on one line.
|
|
The <B>-f</B> option splits the string into lines with the parts indented.
|
|
</DL>
|
|
<P>
|
|
|
|
Binary operations are in postfix form with the operands in the usual order.
|
|
That is, to get x-5 one would use "%gx%{5}%-".
|
|
<B>%P</B> and <B>%g</B> variables are
|
|
persistent across escape-string evaluations.
|
|
<P>
|
|
|
|
Consider the HP2645, which, to get to row 3 and column 12, needs
|
|
to be sent \E&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 <B>cup</B> capability is ``cup=6\E&%p2%2dc%p1%2dY''.
|
|
<P>
|
|
|
|
The Microterm <FONT SIZE="-1">ACT-IV</FONT> needs the current row and column sent
|
|
preceded by a <B>^T</B>, with the row and column simply encoded in binary,
|
|
``cup=^T%p1%c%p2%c''.
|
|
Terminals which use ``%c'' need to be able to
|
|
backspace the cursor (<B>cub1</B>),
|
|
and to move the cursor up one line on the screen (<B>cuu1</B>).
|
|
This is necessary because it is not always safe to transmit <B>\n</B>
|
|
<B>^D</B> and <B>\r</B>, as the system may change or discard them.
|
|
(The library routines dealing with terminfo set tty modes so that
|
|
tabs are never expanded, so \t is safe to send.
|
|
This turns out to be essential for the Ann Arbor 4080.)
|
|
<P>
|
|
|
|
A final example is the <FONT SIZE="-1">LSI ADM</FONT>-3a, which uses row and column
|
|
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 character.
|
|
Then the same is done for the second parameter.
|
|
More complex arithmetic is possible using the stack.
|
|
<P>
|
|
|
|
<A NAME="lbAP"> </A>
|
|
<H3>Cursor Motions</H3>
|
|
|
|
<P>
|
|
|
|
If the terminal has a fast way to home the cursor
|
|
(to very upper left corner of screen) then this can be given as
|
|
<B>home</B>; similarly a fast way of getting to the lower left-hand corner
|
|
can be given as <B>ll</B>; this may involve going up with <B>cuu1</B>
|
|
from the home position,
|
|
but a program should never do this itself (unless <B>ll</B> 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 \EH sequence on HP terminals cannot be used for
|
|
<B>home</B>.)
|
|
|
|
<P>
|
|
|
|
If the terminal has row or column absolute cursor addressing,
|
|
these can be given as single parameter capabilities
|
|
<B>hpa</B>
|
|
|
|
(horizontal position absolute)
|
|
and
|
|
<B>vpa</B>
|
|
|
|
(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</B>.
|
|
|
|
If there are parameterized local motions (e.g., move
|
|
<I>n</I>
|
|
|
|
spaces to the right) these can be given as
|
|
<B>cud</B>,
|
|
|
|
<B>cub</B>,
|
|
|
|
<B>cuf</B>,
|
|
|
|
and
|
|
<B>cuu</B>
|
|
|
|
with a single parameter indicating how many spaces to move.
|
|
These are primarily useful if the terminal does not have
|
|
<B>cup</B>,
|
|
|
|
such as the <FONT SIZE="-1">TEKTRONIX</FONT> 4025.
|
|
<P>
|
|
|
|
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 <B>smcup</B> and <B>rmcup</B>.
|
|
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 <FONT SIZE="-1">TEKTRONIX</FONT> 4025,
|
|
where
|
|
<B>smcup</B>
|
|
|
|
sets the command character to be the one used by terminfo.
|
|
If the <B>smcup</B> sequence will not restore the screen after an
|
|
<B>rmcup</B> sequence is output (to the state prior to outputting
|
|
<B>rmcup</B>), specify <B>nrrmc</B>.
|
|
<P>
|
|
|
|
<A NAME="lbAQ"> </A>
|
|
<H3>Area Clears</H3>
|
|
|
|
<P>
|
|
|
|
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 <B>el</B>.
|
|
If the terminal can clear from the beginning of the line to the current
|
|
position inclusive, leaving
|
|
the cursor where it is, this should be given as <B>el1</B>.
|
|
If the terminal can clear from the current position to the end of the
|
|
display, then this should be given as <B>ed</B>.
|
|
<B>Ed</B> 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</B>
|
|
|
|
is not available.)
|
|
<P>
|
|
|
|
<A NAME="lbAR"> </A>
|
|
<H3>Insert/delete line and vertical motions</H3>
|
|
|
|
<P>
|
|
|
|
If the terminal can open a new blank line before the line where the cursor
|
|
is, this should be given as <B>il1</B>; 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 <B>dl1</B>; this is done only from the first position on
|
|
the line to be deleted.
|
|
Versions of
|
|
<B>il1</B>
|
|
|
|
and
|
|
<B>dl1</B>
|
|
|
|
which take a single parameter and insert or delete that many lines can
|
|
be given as
|
|
<B>il</B>
|
|
|
|
and
|
|
<B>dl</B>.
|
|
|
|
<P>
|
|
|
|
If the terminal has a settable scrolling region (like the vt100)
|
|
the command to set this can be described with the
|
|
<B>csr</B>
|
|
|
|
capability, which takes two parameters:
|
|
the top and bottom lines of the scrolling region.
|
|
The cursor position is, alas, undefined after using this command.
|
|
<P>
|
|
|
|
It is possible to get the effect of insert or delete line using
|
|
<B>csr</B>
|
|
|
|
on a properly chosen region; the
|
|
<B>sc</B>
|
|
|
|
and
|
|
<B>rc</B>
|
|
|
|
(save and restore cursor) commands may be useful for ensuring that
|
|
your synthesized insert/delete string does not move the cursor.
|
|
(Note that the <B>ncurses</B>(3NCURSES) library does this synthesis
|
|
automatically, so you need not compose insert/delete strings for
|
|
an entry with <B>csr</B>).
|
|
<P>
|
|
|
|
Yet another way to construct insert and delete might be to use a combination of
|
|
index with the memory-lock feature found on some terminals (like the HP-700/90
|
|
series, which however also has insert/delete).
|
|
<P>
|
|
|
|
Inserting lines at the top or bottom of the screen can also be
|
|
done using
|
|
<B>ri</B>
|
|
|
|
or
|
|
<B>ind</B>
|
|
|
|
on many terminals without a true insert/delete line,
|
|
and is often faster even on terminals with those features.
|
|
<P>
|
|
|
|
The boolean <B>non_dest_scroll_region</B> 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 something to the bottom line, move the cursor to the top of the region,
|
|
and do <B>ri</B> followed by <B>dl1</B> or <B>ind</B>.
|
|
If the data scrolled
|
|
off the bottom of the region by the <B>ri</B> re-appears, then scrolling
|
|
is non-destructive.
|
|
System V and XSI Curses expect that <B>ind</B>, <B>ri</B>,
|
|
<B>indn</B>, and <B>rin</B> will simulate destructive scrolling; their
|
|
documentation cautions you not to define <B>csr</B> unless this is true.
|
|
This <B>curses</B> implementation is more liberal and will do explicit erases
|
|
after scrolling if <B>ndsrc</B> is defined.
|
|
<P>
|
|
|
|
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
|
|
<B>wind</B>.
|
|
|
|
The four parameters are the starting and ending lines in memory
|
|
and the starting and ending columns in memory, in that order.
|
|
<P>
|
|
|
|
If the terminal can retain display memory above, then the
|
|
<B>da</B> capability should be given; if display memory can be retained
|
|
below, then <B>db</B> should be given.
|
|
These indicate
|
|
that deleting a line or scrolling may bring non-blank lines up from below
|
|
or that scrolling back with <B>ri</B> may bring down non-blank lines.
|
|
<P>
|
|
|
|
<A NAME="lbAS"> </A>
|
|
<H3>Insert/Delete Character</H3>
|
|
|
|
<P>
|
|
|
|
There are two basic kinds of intelligent terminals with respect to
|
|
insert/delete character which can be described using
|
|
<I>terminfo.</I>
|
|
|
|
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.
|
|
<P>
|
|
|
|
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) between the ``abc'' and the ``def''.
|
|
Then position the cursor before the ``abc'' 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 ``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 <B>in</B>, which stands for
|
|
``insert null''.
|
|
<P>
|
|
|
|
While these are two logically separate attributes (one line versus multi-line
|
|
insert mode, and special treatment of untyped spaces) we have seen no
|
|
terminals whose insert mode cannot be described with the single attribute.
|
|
<P>
|
|
|
|
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 <B>smir</B> the sequence to get into insert mode.
|
|
Give as <B>rmir</B> the sequence to leave insert mode.
|
|
Now give as <B>ich1</B> any sequence needed to be sent just before sending
|
|
the character to be inserted.
|
|
Most terminals with a true insert mode
|
|
will not give <B>ich1</B>; terminals which send a sequence to open a screen
|
|
position should give it here.
|
|
<P>
|
|
|
|
If your terminal has both, insert mode is usually preferable to <B>ich1</B>.
|
|
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 characters in an update
|
|
using insert.
|
|
This requirement is now rare; most <B>ich</B> sequences do not
|
|
require previous smir, and most smir insert modes do not require <B>ich1</B>
|
|
before each character.
|
|
Therefore, the new <B>curses</B> actually assumes this
|
|
is the case and uses either <B>rmir</B>/<B>smir</B> or <B>ich</B>/<B>ich1</B> as
|
|
appropriate (but not both).
|
|
If you have to write an entry to be used under
|
|
new curses for a terminal old enough to need both, include the
|
|
<B>rmir</B>/<B>smir</B> sequences in <B>ich1</B>.
|
|
<P>
|
|
|
|
If post insert padding is needed, give this as a number of milliseconds
|
|
in <B>ip</B> (a string option).
|
|
Any other sequence which may need to be
|
|
sent after an insert of a single character may also be given in <B>ip</B>.
|
|
If your terminal needs both to be placed into an ``insert mode'' and
|
|
a special code to precede each inserted character, then both
|
|
<B>smir</B>/<B>rmir</B>
|
|
|
|
and
|
|
<B>ich1</B>
|
|
|
|
can be given, and both will be used.
|
|
The
|
|
<B>ich</B>
|
|
|
|
capability, with one parameter,
|
|
<I>n</I>,
|
|
|
|
will repeat the effects of
|
|
<B>ich1</B>
|
|
|
|
<I>n</I>
|
|
|
|
times.
|
|
<P>
|
|
|
|
If padding is necessary between characters typed while not
|
|
in insert mode, give this as a number of milliseconds padding in <B>rmp</B>.
|
|
<P>
|
|
|
|
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 <B>mir</B> to speed up inserting
|
|
in this case.
|
|
Omitting <B>mir</B> will affect only speed.
|
|
Some terminals
|
|
(notably Datamedia's) must not have <B>mir</B> because of the way their
|
|
insert mode works.
|
|
<P>
|
|
|
|
Finally, you can specify
|
|
<B>dch1</B>
|
|
|
|
to delete a single character,
|
|
<B>dch</B>
|
|
|
|
with one parameter,
|
|
<I>n</I>,
|
|
|
|
to delete
|
|
<I>n characters,</I>
|
|
|
|
and delete mode by giving <B>smdc</B> and <B>rmdc</B>
|
|
to enter and exit delete mode (any mode the terminal needs to be placed
|
|
in for
|
|
<B>dch1</B>
|
|
|
|
to work).
|
|
<P>
|
|
|
|
A command to erase
|
|
<I>n</I>
|
|
|
|
characters (equivalent to outputting
|
|
<I>n</I>
|
|
|
|
blanks without moving the cursor)
|
|
can be given as
|
|
<B>ech</B>
|
|
|
|
with one parameter.
|
|
<P>
|
|
|
|
<A NAME="lbAT"> </A>
|
|
<H3>Highlighting, Underlining, and Visible Bells</H3>
|
|
|
|
<P>
|
|
|
|
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
|
|
<I>standout mode</I>,
|
|
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 <B>smso</B> and <B>rmso</B>, 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 <B>xmc</B> should be given to tell how many spaces are left.
|
|
<P>
|
|
|
|
Codes to begin underlining and end underlining can be given as <B>smul</B>
|
|
and <B>rmul</B> 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 <B>uc</B>.
|
|
<P>
|
|
|
|
Other capabilities to enter various highlighting modes include
|
|
<B>blink</B>
|
|
|
|
(blinking)
|
|
<B>bold</B>
|
|
|
|
(bold or extra bright)
|
|
<B>dim</B>
|
|
|
|
(dim or half-bright)
|
|
<B>invis</B>
|
|
|
|
(blanking or invisible text)
|
|
<B>prot</B>
|
|
|
|
(protected)
|
|
<B>rev</B>
|
|
|
|
(reverse video)
|
|
<B>sgr0</B>
|
|
|
|
(turn off
|
|
<I>all</I>
|
|
|
|
attribute modes)
|
|
<B>smacs</B>
|
|
|
|
(enter alternate character set mode)
|
|
and
|
|
<B>rmacs</B>
|
|
|
|
(exit alternate character set mode).
|
|
Turning on any of these modes singly may or may not turn off other modes.
|
|
<P>
|
|
|
|
If there is a sequence to set arbitrary combinations of modes,
|
|
this should be given as
|
|
<B>sgr</B>
|
|
|
|
(set attributes),
|
|
taking 9 parameters.
|
|
Each parameter is either 0 or nonzero, 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
|
|
<B>sgr</B>,
|
|
|
|
only those for which corresponding separate attribute commands exist.
|
|
<P>
|
|
|
|
For example, the DEC vt220 supports most of the modes:
|
|
<P>
|
|
|
|
<CENTER><TABLE>
|
|
<TR VALIGN=top><TD><B>tparm parameter</B></TD><TD>attribute</TD><TD>escape sequence<BR></TD></TR>
|
|
<TR VALIGN=top><TD></TD><TD></TD><TD><BR></TD></TR>
|
|
<TR VALIGN=top><TD>none</TD><TD>none</TD><TD>\E[0m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p1</TD><TD>standout</TD><TD>\E[0;1;7m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p2</TD><TD>underline</TD><TD>\E[0;4m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p3</TD><TD>reverse</TD><TD>\E[0;7m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p4</TD><TD>blink</TD><TD>\E[0;5m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p5</TD><TD>dim</TD><TD>not available<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p6</TD><TD>bold</TD><TD>\E[0;1m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p7</TD><TD>invis</TD><TD>\E[0;8m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p8</TD><TD>protect</TD><TD>not used<BR></TD></TR>
|
|
<TR VALIGN=top><TD>p9</TD><TD>altcharset</TD><TD>^O (off) ^N (on)<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
|
|
<P>
|
|
|
|
We begin each escape sequence by turning off any existing modes, since
|
|
there is no quick way to determine whether they are active.
|
|
Standout is set up to be the combination of reverse and bold.
|
|
The vt220 terminal has a protect mode,
|
|
though it is not commonly used in sgr
|
|
because it protects characters on the screen from the host's erasures.
|
|
The altcharset mode also is different in that it is either ^O or ^N,
|
|
depending on whether it is off or on.
|
|
If all modes are turned on, the resulting sequence is \E[0;1;4;5;7;8m^N.
|
|
<P>
|
|
|
|
Some sequences are common to different modes.
|
|
For example, ;7 is output when either p1 or p3 is true, that is, if
|
|
either standout or reverse modes are turned on.
|
|
<P>
|
|
|
|
Writing out the above sequences, along with their dependencies yields
|
|
<P>
|
|
|
|
|
|
<CENTER><TABLE>
|
|
<TR VALIGN=top><TD><B>sequence</B></TD><TD>when to output</TD><TD>terminfo translation<BR></TD></TR>
|
|
<TR VALIGN=top><TD></TD><TD></TD><TD><BR></TD></TR>
|
|
<TR VALIGN=top><TD>\E[0</TD><TD>always</TD><TD>\E[0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>;1</TD><TD>if p1 or p6</TD><TD>%?%p1%p6%|%t;1%;<BR></TD></TR>
|
|
<TR VALIGN=top><TD>;4</TD><TD>if p2</TD><TD>%?%p2%|%t;4%;<BR></TD></TR>
|
|
<TR VALIGN=top><TD>;5</TD><TD>if p4</TD><TD>%?%p4%|%t;5%;<BR></TD></TR>
|
|
<TR VALIGN=top><TD>;7</TD><TD>if p1 or p3</TD><TD>%?%p1%p3%|%t;7%;<BR></TD></TR>
|
|
<TR VALIGN=top><TD>;8</TD><TD>if p7</TD><TD>%?%p7%|%t;8%;<BR></TD></TR>
|
|
<TR VALIGN=top><TD>m</TD><TD>always</TD><TD>m<BR></TD></TR>
|
|
<TR VALIGN=top><TD>^N or ^O</TD><TD>if p9 ^N, else ^O</TD><TD>%?%p9%t^N%e^O%;<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
|
|
<P>
|
|
|
|
Putting this all together into the sgr sequence gives:
|
|
<P>
|
|
|
|
|
|
<PRE>
|
|
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
|
|
%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
|
|
</PRE>
|
|
|
|
|
|
<P>
|
|
|
|
Remember that if you specify sgr, you must also specify sgr0.
|
|
Also, some implementations rely on sgr being given if sgr0 is,
|
|
Not all terminfo entries necessarily have an sgr string, however.
|
|
Many terminfo entries are derived from termcap entries
|
|
which have no sgr string.
|
|
The only drawback to adding an sgr string is that termcap also
|
|
assumes that sgr0 does not exit alternate character set mode.
|
|
<P>
|
|
|
|
Terminals with the ``magic cookie'' glitch
|
|
(<B>xmc</B>)
|
|
|
|
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</B>
|
|
|
|
capability, asserting that it is safe to move in standout mode, is present.
|
|
<P>
|
|
|
|
If the terminal has
|
|
a way of flashing the screen to indicate an error quietly (a bell replacement)
|
|
then this can be given as <B>flash</B>; it must not move the cursor.
|
|
<P>
|
|
|
|
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
|
|
<B>cvvis</B>.
|
|
|
|
If there is a way to make the cursor completely invisible, give that as
|
|
<B>civis</B>.
|
|
|
|
The capability
|
|
<B>cnorm</B>
|
|
|
|
should be given which undoes the effects of both of these modes.
|
|
<P>
|
|
|
|
If your terminal correctly generates underlined characters
|
|
(with no special codes needed)
|
|
even though it does not overstrike,
|
|
then you should give the capability <B>ul</B>.
|
|
If a character overstriking another leaves both characters on the screen,
|
|
specify the capability <B>os</B>.
|
|
If overstrikes are erasable with a blank,
|
|
then this should be indicated by giving <B>eo</B>.
|
|
<P>
|
|
|
|
<A NAME="lbAU"> </A>
|
|
<H3>Keypad and Function Keys</H3>
|
|
|
|
<P>
|
|
|
|
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 <B>smkx</B> and <B>rmkx</B>.
|
|
Otherwise the keypad is assumed to always transmit.
|
|
<P>
|
|
|
|
The codes sent by the left arrow, right arrow, up arrow, down arrow,
|
|
and home keys can be given as
|
|
<B>kcub1, kcuf1, kcuu1, kcud1, </B>and<B> khome</B> respectively.
|
|
If there are function keys such as f0, f1, ..., f10, the codes they send
|
|
can be given as <B>kf0, kf1, ..., kf10</B>.
|
|
If these keys have labels other than the default f0 through f10, the labels
|
|
can be given as <B>lf0, lf1, ..., lf10</B>.
|
|
<P>
|
|
|
|
The codes transmitted by certain other special keys can be given:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kll</B>
|
|
|
|
(home down),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kbs</B>
|
|
|
|
(backspace),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>ktbc</B>
|
|
|
|
(clear all tabs),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kctab</B>
|
|
|
|
(clear the tab stop in this column),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kclr</B>
|
|
|
|
(clear screen or erase key),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kdch1</B>
|
|
|
|
(delete character),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kdl1</B>
|
|
|
|
(delete line),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>krmir</B>
|
|
|
|
(exit insert mode),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kel</B>
|
|
|
|
(clear to end of line),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>ked</B>
|
|
|
|
(clear to end of screen),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kich1</B>
|
|
|
|
(insert character or enter insert mode),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kil1</B>
|
|
|
|
(insert line),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>knp</B>
|
|
|
|
(next page),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kpp</B>
|
|
|
|
(previous page),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kind</B>
|
|
|
|
(scroll forward/down),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>kri</B>
|
|
|
|
(scroll backward/up),
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>khts</B>
|
|
|
|
(set a tab stop in this column).
|
|
<P>
|
|
|
|
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
|
|
<B>ka1</B>,
|
|
|
|
<B>ka3</B>,
|
|
|
|
<B>kb2</B>,
|
|
|
|
<B>kc1</B>,
|
|
|
|
and
|
|
<B>kc3</B>.
|
|
|
|
These keys are useful when the effects of a 3 by 3 directional pad are needed.
|
|
<P>
|
|
|
|
Strings to program function keys can be given as
|
|
<B>pfkey</B>,
|
|
|
|
<B>pfloc</B>,
|
|
|
|
and
|
|
<B>pfx</B>.
|
|
|
|
A string to program screen labels should be specified as <B>pln</B>.
|
|
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</B>
|
|
|
|
causes pressing the given key to be the same as the user typing the
|
|
given string;
|
|
<B>pfloc</B>
|
|
|
|
causes the string to be executed by the terminal in local; and
|
|
<B>pfx</B>
|
|
|
|
causes the string to be transmitted to the computer.
|
|
<P>
|
|
|
|
The capabilities <B>nlab</B>, <B>lw</B> and <B>lh</B>
|
|
define the number of programmable
|
|
screen labels and their width and height.
|
|
If there are commands to turn the labels on and off,
|
|
give them in <B>smln</B> and <B>rmln</B>.
|
|
<B>smln</B> is normally output after one or more pln
|
|
sequences to make sure that the change becomes visible.
|
|
<P>
|
|
|
|
<A NAME="lbAV"> </A>
|
|
<H3>Tabs and Initialization</H3>
|
|
|
|
<P>
|
|
|
|
A few capabilities are used only for tabs:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
If the terminal has hardware tabs, the command to advance to the next
|
|
tab stop can be given as
|
|
<B>ht</B>
|
|
|
|
(usually control/I).
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
A ``back-tab'' command which moves leftward to the preceding tab stop can
|
|
be given as
|
|
<B>cbt</B>.
|
|
|
|
<DL COMPACT>
|
|
<DT id="45"><DD>
|
|
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</B>
|
|
|
|
or
|
|
<B>cbt</B>
|
|
|
|
even if they are present, since the user may not have the tab stops
|
|
properly set.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
If the terminal has hardware tabs which are initially set every
|
|
<I>n</I>
|
|
|
|
spaces when the terminal is powered up,
|
|
the numeric parameter
|
|
<B>it</B>
|
|
|
|
is given, showing the number of spaces the tabs are set to.
|
|
<DT id="46"><DD>
|
|
The <B>it</B> capability is normally used by the <B>tset</B>
|
|
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 non-volatile memory,
|
|
the terminfo description can assume that they are properly set.
|
|
</DL>
|
|
<P>
|
|
|
|
Other capabilities
|
|
include
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>is1</B>,
|
|
|
|
<B>is2</B>,
|
|
|
|
and
|
|
<B>is3</B>,
|
|
|
|
initialization strings for the terminal,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>iprog</B>,
|
|
|
|
the path name of a program to be run to initialize the terminal,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
and <B>if</B>, the name of a file containing long initialization strings.
|
|
<P>
|
|
|
|
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
|
|
<I>init</I>
|
|
|
|
option of the <B>tput</B> program, each time the user logs in.
|
|
They will be printed in the following order:
|
|
<DL COMPACT><DT id="47"><DD>
|
|
<DL COMPACT>
|
|
<DT id="48">run the program<DD>
|
|
<B>iprog</B>
|
|
|
|
<DT id="49">output<DD>
|
|
<BR>
|
|
|
|
<B>is1</B> and
|
|
<BR>
|
|
|
|
<B>is2</B>
|
|
<DT id="50">set the margins using<DD>
|
|
<B>mgc</B> or
|
|
<BR>
|
|
|
|
<B>smglp</B> and <B>smgrp</B> or
|
|
<BR>
|
|
|
|
<B>smgl</B> and <B>smgr</B>
|
|
<DT id="51">set tabs using<DD>
|
|
<B>tbc</B>
|
|
|
|
and
|
|
<B>hts</B>
|
|
|
|
<DT id="52">print the file<DD>
|
|
<B>if</B>
|
|
<DT id="53">and finally output<DD>
|
|
<B>is3</B>.
|
|
</DL>
|
|
</DL>
|
|
|
|
<P>
|
|
|
|
Most initialization is done with
|
|
<B>is2</B>.
|
|
|
|
Special terminal modes can be set up without duplicating strings
|
|
by putting the common sequences in
|
|
<B>is2</B>
|
|
|
|
and special cases in
|
|
<B>is1</B>
|
|
|
|
and
|
|
<B>is3</B>.
|
|
|
|
<P>
|
|
|
|
A set of sequences that does a harder reset from a totally unknown state
|
|
can be given as
|
|
<B>rs1</B>,
|
|
|
|
<B>rs2</B>,
|
|
|
|
<B>rf</B>
|
|
|
|
and
|
|
<B>rs3</B>,
|
|
|
|
analogous to
|
|
<B>is1 ,</B>
|
|
|
|
<B>is2 ,</B>
|
|
|
|
<B>if</B>
|
|
|
|
and
|
|
<B>is3</B>
|
|
|
|
respectively.
|
|
These strings are output
|
|
by <I>reset</I> option of <B>tput</B>,
|
|
or by the <B>reset</B> program
|
|
(an alias of <B>tset</B>),
|
|
which is used when the terminal gets into a wedged state.
|
|
Commands are normally placed in
|
|
<B>rs1</B>,
|
|
|
|
<B>rs2</B>
|
|
|
|
<B>rs3</B>
|
|
|
|
and
|
|
<B>rf</B>
|
|
|
|
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
|
|
<B>is2</B>,
|
|
|
|
but it causes an annoying glitch of the screen and is not normally
|
|
needed since the terminal is usually already in 80-column mode.
|
|
<P>
|
|
|
|
The <B>reset</B> program writes strings including
|
|
<B>iprog</B>,
|
|
|
|
etc., in the same order as the
|
|
<I>init</I>
|
|
|
|
program, using
|
|
<B>rs1</B>,
|
|
|
|
etc., instead of
|
|
<B>is1</B>,
|
|
|
|
etc.
|
|
If any of
|
|
<B>rs1</B>,
|
|
|
|
<B>rs2</B>,
|
|
|
|
<B>rs3</B>,
|
|
|
|
or
|
|
<B>rf</B>
|
|
|
|
reset capability strings are missing,
|
|
the <B>reset</B> program
|
|
falls back upon the corresponding initialization capability string.
|
|
<P>
|
|
|
|
If there are commands to set and clear tab stops, they can be given as
|
|
<B>tbc</B>
|
|
|
|
(clear all tab stops)
|
|
and
|
|
<B>hts</B>
|
|
|
|
(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</B>
|
|
|
|
or
|
|
<B>if</B>.
|
|
|
|
<P>
|
|
|
|
The <B>tput reset</B> command uses the same capability strings
|
|
as the <B>reset</B> command,
|
|
although the two programs (<B>tput</B> and <B>reset</B>)
|
|
provide different command-line options.
|
|
<P>
|
|
|
|
In practice, these terminfo capabilities are not often used in
|
|
initialization of tabs
|
|
(though they are required for the <B>tabs</B> program):
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Almost all hardware terminals (at least those which supported tabs)
|
|
initialized those to every <I>eight</I> columns:
|
|
<DL COMPACT>
|
|
<DT id="54"><DD>
|
|
The only exception was the AT&T 2300 series,
|
|
which set tabs to every <I>five</I> columns.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
In particular, developers of the hardware terminals which are commonly used
|
|
as models for modern terminal emulators provided documentation demonstrating
|
|
that <I>eight</I> columns were the standard.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Because of this, the terminal initialization programs
|
|
<B>tput</B> and <B>tset</B>
|
|
use the
|
|
<B>tbc</B> (<B>clear_all_tabs</B>) and
|
|
<B>hts</B> (<B>set_tab</B>) capabilities directly
|
|
only when the <B>it</B> (<B>init_tabs</B>) capability
|
|
is set to a value other than <I>eight</I>.
|
|
</DL>
|
|
<A NAME="lbAW"> </A>
|
|
<H3>Delays and Padding</H3>
|
|
|
|
<P>
|
|
|
|
Many older and slower terminals do not support either XON/XOFF or DTR
|
|
handshaking, including hard copy terminals and some very archaic CRTs
|
|
(including, for example, DEC VT100s).
|
|
These may require padding characters
|
|
after certain cursor motions and screen changes.
|
|
<P>
|
|
|
|
If the terminal uses xon/xoff handshaking for flow control (that is,
|
|
it automatically emits ^S back to the host when its input buffers are
|
|
close to full), set
|
|
<B>xon</B>.
|
|
|
|
This capability suppresses the emission of padding.
|
|
You can also set it
|
|
for memory-mapped console devices effectively that do not have a speed limit.
|
|
Padding information should still be included so that routines can
|
|
make better decisions about relative costs, but actual pad characters will
|
|
not be transmitted.
|
|
<P>
|
|
|
|
If <B>pb</B> (padding baud rate) is given, padding is suppressed at baud rates
|
|
below the value of <B>pb</B>.
|
|
If the entry has no padding baud rate, then
|
|
whether padding is emitted or not is completely controlled by <B>xon</B>.
|
|
<P>
|
|
|
|
If the terminal requires other than a null (zero) character as a pad,
|
|
then this can be given as <B>pad</B>.
|
|
Only the first character of the
|
|
<B>pad</B>
|
|
|
|
string is used.
|
|
<P>
|
|
|
|
<A NAME="lbAX"> </A>
|
|
<H3>Status Lines</H3>
|
|
|
|
Some terminals have an extra ``status line'' which is not normally used by
|
|
software (and thus not counted in the terminal's <B>lines</B> capability).
|
|
<P>
|
|
|
|
The simplest case is a status line which is cursor-addressable but not
|
|
part of the main scrolling region on the screen; the Heathkit H19 has
|
|
a status line of this kind, as would a 24-line VT100 with a 23-line
|
|
scrolling region set up on initialization.
|
|
This situation is indicated
|
|
by the <B>hs</B> capability.
|
|
<P>
|
|
|
|
Some terminals with status lines need special sequences to access the
|
|
status line.
|
|
These may be expressed as a string with single parameter
|
|
<B>tsl</B> which takes the cursor to a given zero-origin column on the
|
|
status line.
|
|
The capability <B>fsl</B> must return to the main-screen
|
|
cursor positions before the last <B>tsl</B>.
|
|
You may need to embed the
|
|
string values of <B>sc</B> (save cursor) and <B>rc</B> (restore cursor)
|
|
in <B>tsl</B> and <B>fsl</B> to accomplish this.
|
|
<P>
|
|
|
|
The status line is normally assumed to be the same width as the width
|
|
of the terminal.
|
|
If this is untrue, you can specify it with the numeric
|
|
capability <B>wsl</B>.
|
|
<P>
|
|
|
|
A command to erase or blank the status line may be specified as <B>dsl</B>.
|
|
<P>
|
|
|
|
The boolean capability <B>eslok</B> specifies that escape sequences, tabs,
|
|
etc., work ordinarily in the status line.
|
|
<P>
|
|
|
|
The <B>ncurses</B> implementation does not yet use any of these capabilities.
|
|
They are documented here in case they ever become important.
|
|
<P>
|
|
|
|
<A NAME="lbAY"> </A>
|
|
<H3>Line Graphics</H3>
|
|
|
|
<P>
|
|
|
|
Many terminals have alternate character sets useful for forms-drawing.
|
|
Terminfo and <B>curses</B> have built-in support
|
|
for most of the drawing characters
|
|
supported by the VT100, with some characters from the AT&T 4410v1 added.
|
|
This alternate character set may be specified by the <B>acsc</B> capability.
|
|
<P>
|
|
|
|
<CENTER><TABLE>
|
|
<TR VALIGN=top><TD><B>Glyph</B></TD><TD>ACS</TD><TD>Ascii</TD><TD>acsc</TD><TD>acsc<BR></TD></TR>
|
|
<TR VALIGN=top><TD><B>Name</B></TD><TD>Name</TD><TD>Default</TD><TD>Char</TD><TD>Value<BR></TD></TR>
|
|
<TR VALIGN=top><TD><HR></TD><TD><HR></TD><TD><HR></TD><TD><HR></TD><TD><HR></TD></TR>
|
|
<TR VALIGN=top><TD>arrow pointing left</TD><TD>ACS_LARROW</TD><TD><</TD><TD>,</TD><TD>0x2c<BR></TD></TR>
|
|
<TR VALIGN=top><TD>arrow pointing up</TD><TD>ACS_UARROW</TD><TD>^</TD><TD>-</TD><TD>0x2d<BR></TD></TR>
|
|
<TR VALIGN=top><TD>arrow pointing down</TD><TD>ACS_DARROW</TD><TD>v</TD><TD>.</TD><TD>0x2e<BR></TD></TR>
|
|
<TR VALIGN=top><TD>solid square block</TD><TD>ACS_BLOCK</TD><TD>#</TD><TD>0</TD><TD>0x30<BR></TD></TR>
|
|
<TR VALIGN=top><TD>diamond </TD><TD>ACS_DIAMOND</TD><TD>+</TD><TD>`</TD><TD>0x60<BR></TD></TR>
|
|
<TR VALIGN=top><TD>checker board (stipple)</TD><TD>ACS_CKBOARD</TD><TD>:</TD><TD>a</TD><TD>0x61<BR></TD></TR>
|
|
<TR VALIGN=top><TD>degree symbol </TD><TD>ACS_DEGREE</TD><TD>\</TD><TD>f</TD><TD>0x66<BR></TD></TR>
|
|
<TR VALIGN=top><TD>plus/minus </TD><TD>ACS_PLMINUS</TD><TD>#</TD><TD>g</TD><TD>0x67<BR></TD></TR>
|
|
<TR VALIGN=top><TD>board of squares</TD><TD>ACS_BOARD</TD><TD>#</TD><TD>h</TD><TD>0x68<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lantern symbol </TD><TD>ACS_LANTERN</TD><TD>#</TD><TD>i</TD><TD>0x69<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lower right corner</TD><TD>ACS_LRCORNER</TD><TD>+</TD><TD>j</TD><TD>0x6a<BR></TD></TR>
|
|
<TR VALIGN=top><TD>upper right corner</TD><TD>ACS_URCORNER</TD><TD>+</TD><TD>k</TD><TD>0x6b<BR></TD></TR>
|
|
<TR VALIGN=top><TD>upper left corner</TD><TD>ACS_ULCORNER</TD><TD>+</TD><TD>l</TD><TD>0x6c<BR></TD></TR>
|
|
<TR VALIGN=top><TD>lower left corner</TD><TD>ACS_LLCORNER</TD><TD>+</TD><TD>m</TD><TD>0x6d<BR></TD></TR>
|
|
<TR VALIGN=top><TD>large plus or crossover</TD><TD>ACS_PLUS</TD><TD>+</TD><TD>n</TD><TD>0x6e<BR></TD></TR>
|
|
<TR VALIGN=top><TD>scan line 1 </TD><TD>ACS_S1 </TD><TD>~</TD><TD>o</TD><TD>0x6f<BR></TD></TR>
|
|
<TR VALIGN=top><TD>scan line 3 </TD><TD>ACS_S3 </TD><TD>-</TD><TD>p</TD><TD>0x70<BR></TD></TR>
|
|
<TR VALIGN=top><TD>horizontal line </TD><TD>ACS_HLINE</TD><TD>-</TD><TD>q</TD><TD>0x71<BR></TD></TR>
|
|
<TR VALIGN=top><TD>scan line 7 </TD><TD>ACS_S7 </TD><TD>-</TD><TD>r</TD><TD>0x72<BR></TD></TR>
|
|
<TR VALIGN=top><TD>scan line 9 </TD><TD>ACS_S9 </TD><TD>_</TD><TD>s</TD><TD>0x73<BR></TD></TR>
|
|
<TR VALIGN=top><TD>tee pointing right</TD><TD>ACS_LTEE</TD><TD>+</TD><TD>t</TD><TD>0x74<BR></TD></TR>
|
|
<TR VALIGN=top><TD>tee pointing left</TD><TD>ACS_RTEE</TD><TD>+</TD><TD>u</TD><TD>0x75<BR></TD></TR>
|
|
<TR VALIGN=top><TD>tee pointing up </TD><TD>ACS_BTEE</TD><TD>+</TD><TD>v</TD><TD>0x76<BR></TD></TR>
|
|
<TR VALIGN=top><TD>tee pointing down</TD><TD>ACS_TTEE</TD><TD>+</TD><TD>w</TD><TD>0x77<BR></TD></TR>
|
|
<TR VALIGN=top><TD>vertical line </TD><TD>ACS_VLINE</TD><TD>|</TD><TD>x</TD><TD>0x78<BR></TD></TR>
|
|
<TR VALIGN=top><TD>less-than-or-equal-to</TD><TD>ACS_LEQUAL</TD><TD><</TD><TD>y</TD><TD>0x79<BR></TD></TR>
|
|
<TR VALIGN=top><TD>greater-than-or-equal-to</TD><TD>ACS_GEQUAL</TD><TD>></TD><TD>z</TD><TD>0x7a<BR></TD></TR>
|
|
<TR VALIGN=top><TD>greek pi </TD><TD>ACS_PI</TD><TD>*</TD><TD>{</TD><TD>0x7b<BR></TD></TR>
|
|
<TR VALIGN=top><TD>not-equal </TD><TD>ACS_NEQUAL</TD><TD>!</TD><TD>|</TD><TD>0x7c<BR></TD></TR>
|
|
<TR VALIGN=top><TD>UK pound sign </TD><TD>ACS_STERLING</TD><TD>f</TD><TD>}</TD><TD>0x7d<BR></TD></TR>
|
|
<TR VALIGN=top><TD>bullet </TD><TD>ACS_BULLET</TD><TD>o</TD><TD>~</TD><TD>0x7e<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
|
|
<P>
|
|
|
|
A few notes apply to the table itself:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
X/Open Curses incorrectly states that the mapping for <I>lantern</I> is
|
|
uppercase ``I'' although Unix implementations use the
|
|
lowercase ``i'' mapping.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
The DEC VT100 implemented graphics using the alternate character set
|
|
feature, temporarily switching <I>modes</I> and sending characters
|
|
in the range 0x60 (96) to 0x7e (126)
|
|
(the <B>acsc Value</B> column in the table).
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
The AT&T terminal added graphics characters outside that range.
|
|
<DL COMPACT>
|
|
<DT id="55"><DD>
|
|
Some of the characters within the range do not match the VT100;
|
|
presumably they were used in the AT&T terminal:
|
|
<I>board of squares</I> replaces the VT100 <I>newline</I> symbol, while
|
|
<I>lantern symbol</I> replaces the VT100 <I>vertical tab</I> symbol.
|
|
The other VT100 symbols for control characters (<I>horizontal tab</I>,
|
|
<I>carriage return</I> and <I>line-feed</I>) are not (re)used in curses.
|
|
</DL>
|
|
<P>
|
|
|
|
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 <B>smacs</B>/<B>rmacs</B> switches) will be rendered
|
|
as the corresponding graphic.
|
|
Then read off the VT100/your terminal
|
|
character pairs right to left in sequence; these become the ACSC string.
|
|
<P>
|
|
|
|
<A NAME="lbAZ"> </A>
|
|
<H3>Color Handling</H3>
|
|
|
|
<P>
|
|
|
|
The curses library functions <B>init_pair</B> and <B>init_color</B>
|
|
manipulate the <I>color pairs</I> and <I>color values</I> discussed in this
|
|
section
|
|
(see <B><A HREF="/cgi-bin/man/man2html?3X+curs_color">curs_color</A></B>(3X) for details on these and related functions).
|
|
<P>
|
|
|
|
Most color terminals are either ``Tektronix-like'' or ``HP-like'':
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
Tektronix-like
|
|
terminals have a predefined set of <I>N</I> colors
|
|
(where <I>N</I> is usually 8),
|
|
and can set
|
|
character-cell foreground and background characters independently, mixing them
|
|
into <I>N</I> * <I>N</I> color-pairs.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
On HP-like terminals, the user must set each color
|
|
pair up separately (foreground and background are not independently settable).
|
|
Up to <I>M</I> color-pairs may be set up from 2*<I>M</I> different colors.
|
|
ANSI-compatible terminals are Tektronix-like.
|
|
<P>
|
|
|
|
Some basic color capabilities are independent of the color method.
|
|
The numeric
|
|
capabilities <B>colors</B> and <B>pairs</B> specify the maximum numbers of colors
|
|
and color-pairs that can be displayed simultaneously.
|
|
The <B>op</B> (original
|
|
pair) string resets foreground and background colors to their default values
|
|
for the terminal.
|
|
The <B>oc</B> 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 have the boolean capability
|
|
<B>bce</B>.
|
|
<P>
|
|
|
|
While the curses library works with <I>color pairs</I>
|
|
(reflecting the inability of some devices to set foreground
|
|
and background colors independently),
|
|
there are separate capabilities for setting these features:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
To change the current foreground or background color on a Tektronix-type
|
|
terminal, use <B>setaf</B> (set ANSI foreground) and <B>setab</B> (set ANSI
|
|
background) or <B>setf</B> (set foreground) and <B>setb</B> (set background).
|
|
These take one parameter, the color number.
|
|
The SVr4 documentation describes
|
|
only <B>setaf</B>/<B>setab</B>; the XPG4 draft says that "If the terminal
|
|
supports ANSI escape sequences to set background and foreground, they should
|
|
be coded as <B>setaf</B> and <B>setab</B>, respectively.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
If the terminal
|
|
supports other escape sequences to set background and foreground, they should
|
|
be coded as <B>setf</B> and <B>setb</B>, respectively.
|
|
The <B>vidputs</B> and the <B><A HREF="/cgi-bin/man/man2html?3X+refresh">refresh</A></B>(3X) functions
|
|
use the <B>setaf</B> and <B>setab</B> capabilities if they are defined.
|
|
<P>
|
|
|
|
The <B>setaf</B>/<B>setab</B> and <B>setf</B>/<B>setb</B> capabilities take a
|
|
single numeric argument each.
|
|
Argument values 0-7 of <B>setaf</B>/<B>setab</B> are portably defined as
|
|
follows (the middle column is the symbolic #define available in the header for
|
|
the <B>curses</B> or <B>ncurses</B> libraries).
|
|
The terminal hardware is free to
|
|
map these as it likes, but the RGB values indicate normal locations in color
|
|
space.
|
|
<P>
|
|
|
|
<CENTER><TABLE>
|
|
<TR VALIGN=top><TD><B>Color</B></TD><TD ALIGN=center>#define </TD><TD ALIGN=center>Value</TD><TD ALIGN=center>RGB<BR></TD></TR>
|
|
<TR VALIGN=top><TD>black</TD><TD><B>COLOR_BLACK</B></TD><TD ALIGN=right>0 </TD><TD>0, 0, 0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>red</TD><TD><B>COLOR_RED </B></TD><TD ALIGN=right>1 </TD><TD>max,0,0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>green</TD><TD><B>COLOR_GREEN</B></TD><TD ALIGN=right>2 </TD><TD>0,max,0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>yellow</TD><TD><B>COLOR_YELLOW</B></TD><TD ALIGN=right>3 </TD><TD>max,max,0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>blue</TD><TD><B>COLOR_BLUE</B></TD><TD ALIGN=right>4 </TD><TD>0,0,max<BR></TD></TR>
|
|
<TR VALIGN=top><TD>magenta</TD><TD><B>COLOR_MAGENTA</B></TD><TD ALIGN=right>5 </TD><TD>max,0,max<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cyan</TD><TD><B>COLOR_CYAN</B></TD><TD ALIGN=right>6 </TD><TD>0,max,max<BR></TD></TR>
|
|
<TR VALIGN=top><TD>white</TD><TD><B>COLOR_WHITE</B></TD><TD ALIGN=right>7 </TD><TD>max,max,max<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
|
|
<P>
|
|
|
|
The argument values of <B>setf</B>/<B>setb</B> historically correspond to
|
|
a different mapping, i.e.,
|
|
<CENTER><TABLE>
|
|
<TR VALIGN=top><TD><B>Color</B></TD><TD ALIGN=center>#define </TD><TD ALIGN=center>Value</TD><TD ALIGN=center>RGB<BR></TD></TR>
|
|
<TR VALIGN=top><TD>black</TD><TD><B>COLOR_BLACK</B></TD><TD ALIGN=right>0 </TD><TD>0, 0, 0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>blue</TD><TD><B>COLOR_BLUE</B></TD><TD ALIGN=right>1 </TD><TD>0,0,max<BR></TD></TR>
|
|
<TR VALIGN=top><TD>green</TD><TD><B>COLOR_GREEN</B></TD><TD ALIGN=right>2 </TD><TD>0,max,0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>cyan</TD><TD><B>COLOR_CYAN</B></TD><TD ALIGN=right>3 </TD><TD>0,max,max<BR></TD></TR>
|
|
<TR VALIGN=top><TD>red</TD><TD><B>COLOR_RED </B></TD><TD ALIGN=right>4 </TD><TD>max,0,0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>magenta</TD><TD><B>COLOR_MAGENTA</B></TD><TD ALIGN=right>5 </TD><TD>max,0,max<BR></TD></TR>
|
|
<TR VALIGN=top><TD>yellow</TD><TD><B>COLOR_YELLOW</B></TD><TD ALIGN=right>6 </TD><TD>max,max,0<BR></TD></TR>
|
|
<TR VALIGN=top><TD>white</TD><TD><B>COLOR_WHITE</B></TD><TD ALIGN=right>7 </TD><TD>max,max,max<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
|
|
<P>
|
|
|
|
It is important to not confuse the two sets of color capabilities;
|
|
otherwise red/blue will be interchanged on the display.
|
|
<P>
|
|
|
|
On an HP-like terminal, use <B>scp</B> with a color-pair number parameter to set
|
|
which color pair is current.
|
|
<P>
|
|
|
|
Some terminals allow the <I>color values</I> to be modified:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
On a Tektronix-like terminal, the capability <B>ccc</B> may be present to
|
|
indicate that colors can be modified.
|
|
If so, the <B>initc</B> capability will
|
|
take a color number (0 to <B>colors</B> - 1)and three more parameters which
|
|
describe the color.
|
|
These three parameters default to being interpreted as RGB
|
|
(Red, Green, Blue) values.
|
|
If the boolean capability <B>hls</B> is present,
|
|
they are instead as HLS (Hue, Lightness, Saturation) indices.
|
|
The ranges are
|
|
terminal-dependent.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
On an HP-like terminal, <B>initp</B> may give a capability for changing a
|
|
color-pair value.
|
|
It will take seven parameters; a color-pair number (0 to
|
|
<B>max_pairs</B> - 1), and two triples describing first background and then
|
|
foreground colors.
|
|
These parameters must be (Red, Green, Blue) or
|
|
(Hue, Lightness, Saturation) depending on <B>hls</B>.
|
|
<P>
|
|
|
|
On some color terminals, colors collide with highlights.
|
|
You can register
|
|
these collisions with the <B>ncv</B> capability.
|
|
This is a bit-mask of
|
|
attributes not to be used when colors are enabled.
|
|
The correspondence with the
|
|
attributes understood by <B>curses</B> is as follows:
|
|
<P>
|
|
|
|
<CENTER><TABLE>
|
|
<TR VALIGN=top><TD><B>Attribute</B></TD><TD>Bit</TD><TD>Decimal</TD><TD>Set by<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_STANDOUT</TD><TD>0</TD><TD>1</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_UNDERLINE</TD><TD>1</TD><TD>2</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_REVERSE</TD><TD>2</TD><TD>4</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_BLINK </TD><TD>3</TD><TD>8</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_DIM </TD><TD>4</TD><TD>16</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_BOLD </TD><TD>5</TD><TD>32</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_INVIS </TD><TD>6</TD><TD>64</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_PROTECT</TD><TD>7</TD><TD>128</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_ALTCHARSET</TD><TD>8</TD><TD>256</TD><TD>sgr<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_HORIZONTAL</TD><TD>9</TD><TD>512</TD><TD>sgr1<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_LEFT</TD><TD>10</TD><TD>1024</TD><TD>sgr1<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_LOW</TD><TD>11</TD><TD>2048</TD><TD>sgr1<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_RIGHT</TD><TD>12</TD><TD>4096</TD><TD>sgr1<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_TOP</TD><TD>13</TD><TD>8192</TD><TD>sgr1<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_VERTICAL</TD><TD>14</TD><TD>16384</TD><TD>sgr1<BR></TD></TR>
|
|
<TR VALIGN=top><TD>A_ITALIC</TD><TD>15</TD><TD>32768</TD><TD>sitm<BR></TD></TR>
|
|
</TABLE></CENTER>
|
|
|
|
<P>
|
|
|
|
For example, on many IBM PC consoles, the underline attribute collides with the
|
|
foreground color blue and is not available in color mode.
|
|
These should have
|
|
an <B>ncv</B> capability of 2.
|
|
<P>
|
|
|
|
SVr4 curses does nothing with <B>ncv</B>, ncurses recognizes it and optimizes
|
|
the output in favor of colors.
|
|
<P>
|
|
|
|
<A NAME="lbBA"> </A>
|
|
<H3>Miscellaneous</H3>
|
|
|
|
If the terminal requires other than a null (zero) character as a pad, then this
|
|
can be given as pad.
|
|
Only the first character of the pad string is used.
|
|
If the terminal does not have a pad character, specify npc.
|
|
Note that ncurses implements the termcap-compatible <B>PC</B> variable;
|
|
though the application may set this value to something other than
|
|
a null, ncurses will test <B>npc</B> first and use napms if the terminal
|
|
has no pad character.
|
|
<P>
|
|
|
|
If the terminal can move up or down half a line,
|
|
this can be indicated with
|
|
<B>hu</B>
|
|
|
|
(half-line up)
|
|
and
|
|
<B>hd</B>
|
|
|
|
(half-line down).
|
|
This is primarily useful for superscripts and subscripts on hard-copy terminals.
|
|
If a hard-copy terminal can eject to the next page (form feed), give this as
|
|
<B>ff</B>
|
|
|
|
(usually control/L).
|
|
<P>
|
|
|
|
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
|
|
<B>rep</B>.
|
|
|
|
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''.
|
|
<P>
|
|
|
|
If the terminal has a settable command character, such as the <FONT SIZE="-1">TEKTRONIX</FONT> 4025,
|
|
this can be indicated with
|
|
<B>cmdch</B>.
|
|
|
|
A prototype command character is chosen which is used in all capabilities.
|
|
This character is given in the
|
|
<B>cmdch</B>
|
|
|
|
capability to identify it.
|
|
The following convention is supported on some UNIX systems:
|
|
The environment is to be searched for a
|
|
<B>CC</B>
|
|
|
|
variable, and if found, all
|
|
occurrences of the prototype character are replaced with the character
|
|
in the environment variable.
|
|
<P>
|
|
|
|
Terminal descriptions that do not represent a specific kind of known
|
|
terminal, such as
|
|
<I>switch</I>,
|
|
|
|
<I>dialup</I>,
|
|
|
|
<I>patch</I>,
|
|
|
|
and
|
|
<I>network</I>,
|
|
|
|
should include the
|
|
<B>gn</B>
|
|
|
|
(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</I>
|
|
|
|
terminal descriptions for which the escape sequences are known.)
|
|
<P>
|
|
|
|
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
|
|
<B>km</B>.
|
|
|
|
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</B>
|
|
|
|
and
|
|
<B>rmm</B>.
|
|
|
|
<P>
|
|
|
|
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
|
|
<B>lm</B>.
|
|
|
|
A value of
|
|
<B>lm</B>#0
|
|
|
|
indicates that the number of lines is not fixed,
|
|
but that there is still more memory than fits on the screen.
|
|
<P>
|
|
|
|
If the terminal is one of those supported by the <FONT SIZE="-1">UNIX</FONT> virtual
|
|
terminal protocol, the terminal number can be given as
|
|
<B>vt</B>.
|
|
|
|
<P>
|
|
|
|
Media copy
|
|
strings which control an auxiliary printer connected to the terminal
|
|
can be given as
|
|
<B>mc0</B>:
|
|
|
|
print the contents of the screen,
|
|
<B>mc4</B>:
|
|
|
|
turn off the printer, and
|
|
<B>mc5</B>:
|
|
|
|
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</B>
|
|
|
|
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
|
|
<B>mc4</B>,
|
|
|
|
is transparently passed to the printer while an
|
|
<B>mc5p</B>
|
|
|
|
is in effect.
|
|
<P>
|
|
|
|
<A NAME="lbBB"> </A>
|
|
<H3>Glitches and Braindamage</H3>
|
|
|
|
<P>
|
|
|
|
Hazeltine terminals, which do not allow ``~'' characters to be displayed should
|
|
indicate <B>hz</B>.
|
|
<P>
|
|
|
|
Terminals which ignore a line-feed immediately after an <B>am</B> wrap,
|
|
such as the Concept and vt100,
|
|
should indicate <B>xenl</B>.
|
|
<P>
|
|
|
|
If
|
|
<B>el</B>
|
|
|
|
is required to get rid of standout
|
|
(instead of merely writing normal text on top of it),
|
|
<B>xhp</B> should be given.
|
|
<P>
|
|
|
|
Teleray terminals, where tabs turn all characters moved over to blanks,
|
|
should indicate <B>xt</B> (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.
|
|
The ncurses implementation ignores this glitch.
|
|
<P>
|
|
|
|
The Beehive Superbee, which is unable to correctly transmit the escape
|
|
or control/C characters, has
|
|
<B>xsb</B>,
|
|
|
|
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''.
|
|
<P>
|
|
|
|
Other specific terminal problems may be corrected by adding more
|
|
capabilities of the form <B>x</B><I>x</I>.
|
|
<P>
|
|
|
|
<A NAME="lbBC"> </A>
|
|
<H3>Pitfalls of Long Entries</H3>
|
|
|
|
<P>
|
|
|
|
Long terminfo entries are unlikely to be a problem; to date, no entry has even
|
|
approached terminfo's 4096-byte string-table maximum.
|
|
Unfortunately, the termcap
|
|
translations are much more strictly limited (to 1023 bytes), thus termcap translations
|
|
of long terminfo entries can cause problems.
|
|
<P>
|
|
|
|
The man pages for 4.3BSD and older versions of <B>tgetent</B> 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 <B>tgetent</B>
|
|
is searching for is, several bad things can happen.
|
|
<P>
|
|
|
|
Some termcap libraries print a warning message or exit if they find an
|
|
entry that's longer than 1023 bytes; others do not; others truncate the
|
|
entries to 1023 bytes.
|
|
Some application programs allocate more than
|
|
the recommended 1K for the termcap entry; others do not.
|
|
<P>
|
|
|
|
Each termcap entry has two important sizes associated with it: before
|
|
``tc'' expansion, and after ``tc'' expansion.
|
|
``tc'' is the capability that
|
|
tacks on another termcap entry to the end of the current one, to add
|
|
on its capabilities.
|
|
If a termcap entry does not use the ``tc''
|
|
capability, then of course the two lengths are the same.
|
|
<P>
|
|
|
|
The ``before tc expansion'' length is the most important one, because it
|
|
affects more than just users of that particular terminal.
|
|
This is the
|
|
length of the entry as it exists in /etc/termcap, minus the
|
|
backslash-newline pairs, which <B>tgetent</B> strips out while reading it.
|
|
Some termcap libraries strip off the final newline, too (GNU termcap does not).
|
|
Now suppose:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
a termcap entry before expansion is more than 1023 bytes long,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
and the application has only allocated a 1k buffer,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
|
|
the whole entry into the buffer, no matter what its length, to see
|
|
if it is the entry it wants,
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
and <B>tgetent</B> is searching for a terminal type that either is the
|
|
long entry, appears in the termcap file after the long entry, or
|
|
does not appear in the file at all (so that <B>tgetent</B> has to search
|
|
the whole termcap file).
|
|
<P>
|
|
|
|
Then <B>tgetent</B> will overwrite memory, perhaps its stack, and probably core dump
|
|
the program.
|
|
Programs like telnet are particularly vulnerable; modern telnets
|
|
pass along values like the terminal type automatically.
|
|
The results are almost
|
|
as undesirable with a termcap library, like SunOS 4.1.3 and Ultrix 4.4, that
|
|
prints warning messages when it reads an overly long termcap entry.
|
|
If a
|
|
termcap library truncates long entries, like OSF/1 3.0, it is immune to dying
|
|
here but will return incorrect data for the terminal.
|
|
<P>
|
|
|
|
The ``after tc expansion'' length will have a similar effect to the
|
|
above, but only for people who actually set TERM to that terminal
|
|
type, since <B>tgetent</B> only does ``tc'' expansion once it is found the
|
|
terminal type it was looking for, not while searching.
|
|
<P>
|
|
|
|
In summary, a termcap entry that is longer than 1023 bytes can cause,
|
|
on various combinations of termcap libraries and applications, a core
|
|
dump, warnings, or incorrect operation.
|
|
If it is too long even before
|
|
``tc'' expansion, it will have this effect even for users of some other
|
|
terminal types and users whose TERM variable does not have a termcap
|
|
entry.
|
|
<P>
|
|
|
|
When in -C (translate to termcap) mode, the <B>ncurses</B> implementation of
|
|
<B><A HREF="/cgi-bin/man/man2html?1+tic">tic</A></B>(1) issues warning messages when the pre-tc length of a termcap
|
|
translation is too long.
|
|
The -c (check) option also checks resolved (after tc
|
|
expansion) lengths.
|
|
<A NAME="lbBD"> </A>
|
|
<H3>Binary Compatibility</H3>
|
|
|
|
It is not wise to count on portability of binary terminfo entries between
|
|
commercial UNIX versions.
|
|
The problem is that there are at least two versions
|
|
of terminfo (under HP-UX and AIX) which diverged from System V terminfo after
|
|
SVr1, and have added extension capabilities to the string table that (in the
|
|
binary format) collide with System V and XSI Curses extensions.
|
|
<A NAME="lbBE"> </A>
|
|
<H2>EXTENSIONS</H2>
|
|
|
|
<P>
|
|
|
|
Searching for terminal descriptions in
|
|
<B>$HOME/.terminfo</B> and TERMINFO_DIRS
|
|
is not supported by older implementations.
|
|
<P>
|
|
|
|
Some SVr4 <B>curses</B> implementations, and all previous to SVr4, do not
|
|
interpret the %A and %O operators in parameter strings.
|
|
<P>
|
|
|
|
SVr4/XPG4 do not specify whether <B>msgr</B> licenses movement while in
|
|
an alternate-character-set mode (such modes may, among other things, map
|
|
CR and NL to characters that do not trigger local motions).
|
|
The <B>ncurses</B> implementation ignores <B>msgr</B> in <B>ALTCHARSET</B>
|
|
mode.
|
|
This raises the possibility that an XPG4
|
|
implementation making the opposite interpretation may need terminfo
|
|
entries made for <B>ncurses</B> to have <B>msgr</B> turned off.
|
|
<P>
|
|
|
|
The <B>ncurses</B> library handles insert-character and insert-character modes
|
|
in a slightly non-standard way to get better update efficiency.
|
|
See
|
|
the <B>Insert/Delete Character</B> subsection above.
|
|
<P>
|
|
|
|
The parameter substitutions for <B>set_clock</B> and <B>display_clock</B> are
|
|
not documented in SVr4 or the XSI Curses standard.
|
|
They are deduced from the
|
|
documentation for the AT&T 505 terminal.
|
|
<P>
|
|
|
|
Be careful assigning the <B>kmous</B> capability.
|
|
The <B>ncurses</B> library wants to interpret it as <B>KEY_MOUSE</B>,
|
|
for use by terminals and emulators like xterm
|
|
that can return mouse-tracking information in the keyboard-input stream.
|
|
<P>
|
|
|
|
X/Open Curses does not mention italics.
|
|
Portable applications must assume that numeric capabilities are
|
|
signed 16-bit values.
|
|
This includes the <I>no_color_video</I> (ncv) capability.
|
|
The 32768 mask value used for italics with ncv can be confused with
|
|
an absent or cancelled ncv.
|
|
If italics should work with colors,
|
|
then the ncv value must be specified, even if it is zero.
|
|
<P>
|
|
|
|
Different commercial ports of terminfo and curses support different subsets of
|
|
the XSI Curses standard and (in some cases) different extension sets.
|
|
Here
|
|
is a summary, accurate as of October 1995:
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>SVR4, Solaris, ncurses</B> --
|
|
These support all SVr4 capabilities.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>SGI</B> --
|
|
Supports the SVr4 set, adds one undocumented extended string
|
|
capability (<B>set_pglen</B>).
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>SVr1, Ultrix</B> --
|
|
These support a restricted subset of terminfo capabilities.
|
|
The booleans end with <B>xon_xoff</B>;
|
|
the numerics with <B>width_status_line</B>;
|
|
and the strings with <B>prtr_non</B>.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>HP/UX</B> --
|
|
Supports the SVr1 subset, plus the SVr[234] numerics <B>num_labels</B>,
|
|
<B>label_height</B>, <B>label_width</B>, plus function keys 11 through 63, plus
|
|
<B>plab_norm</B>, <B>label_on</B>, and <B>label_off</B>, plus some incompatible
|
|
extensions in the string table.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>AIX</B> --
|
|
Supports the SVr1 subset, plus function keys 11 through 63, plus a number
|
|
of incompatible string table extensions.
|
|
|
|
<BR> .IP • 4
|
|
|
|
|
|
<B>OSF</B> --
|
|
Supports both the SVr4 set and the AIX extensions.
|
|
<A NAME="lbBF"> </A>
|
|
<H2>FILES</H2>
|
|
|
|
<DL COMPACT>
|
|
<DT id="56">/etc/terminfo/?/*<DD>
|
|
files containing terminal descriptions
|
|
</DL>
|
|
<A NAME="lbBG"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+tabs">tabs</A></B>(1),
|
|
<B><A HREF="/cgi-bin/man/man2html?1+tic">tic</A></B>(1),
|
|
<B><A HREF="/cgi-bin/man/man2html?1+infocmp">infocmp</A></B>(1),
|
|
<B>ncurses</B>(3NCURSES),
|
|
<B>color</B>(3NCURSES),
|
|
<B>curses_variables</B>(3NCURSES),
|
|
<B><A HREF="/cgi-bin/man/man2html?3+printf">printf</A></B>(3),
|
|
<B><A HREF="/cgi-bin/man/man2html?5+term">term</A></B>(5).
|
|
<B>terminfo_variables</B>(3NCURSES).
|
|
<B><A HREF="/cgi-bin/man/man2html?5+user_caps">user_caps</A></B>(5).
|
|
<A NAME="lbBH"> </A>
|
|
<H2>AUTHORS</H2>
|
|
|
|
Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
|
|
Based on pcurses by Pavel Curtis.
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="57"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="58"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="59"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DL>
|
|
<DT id="60"><A HREF="#lbAE">Terminfo Entry Syntax</A><DD>
|
|
<DT id="61"><A HREF="#lbAF">Terminfo Capabilities Syntax</A><DD>
|
|
<DT id="62"><A HREF="#lbAG">Similar Terminals</A><DD>
|
|
<DT id="63"><A HREF="#lbAH">Predefined Capabilities</A><DD>
|
|
<DT id="64"><A HREF="#lbAI">User-Defined Capabilities</A><DD>
|
|
<DT id="65"><A HREF="#lbAJ">A Sample Entry</A><DD>
|
|
<DT id="66"><A HREF="#lbAK">Types of Capabilities</A><DD>
|
|
<DT id="67"><A HREF="#lbAL">Fetching Compiled Descriptions</A><DD>
|
|
<DT id="68"><A HREF="#lbAM">Preparing Descriptions</A><DD>
|
|
<DT id="69"><A HREF="#lbAN">Basic Capabilities</A><DD>
|
|
<DT id="70"><A HREF="#lbAO">Parameterized Strings</A><DD>
|
|
<DT id="71"><A HREF="#lbAP">Cursor Motions</A><DD>
|
|
<DT id="72"><A HREF="#lbAQ">Area Clears</A><DD>
|
|
<DT id="73"><A HREF="#lbAR">Insert/delete line and vertical motions</A><DD>
|
|
<DT id="74"><A HREF="#lbAS">Insert/Delete Character</A><DD>
|
|
<DT id="75"><A HREF="#lbAT">Highlighting, Underlining, and Visible Bells</A><DD>
|
|
<DT id="76"><A HREF="#lbAU">Keypad and Function Keys</A><DD>
|
|
<DT id="77"><A HREF="#lbAV">Tabs and Initialization</A><DD>
|
|
<DT id="78"><A HREF="#lbAW">Delays and Padding</A><DD>
|
|
<DT id="79"><A HREF="#lbAX">Status Lines</A><DD>
|
|
<DT id="80"><A HREF="#lbAY">Line Graphics</A><DD>
|
|
<DT id="81"><A HREF="#lbAZ">Color Handling</A><DD>
|
|
<DT id="82"><A HREF="#lbBA">Miscellaneous</A><DD>
|
|
<DT id="83"><A HREF="#lbBB">Glitches and Braindamage</A><DD>
|
|
<DT id="84"><A HREF="#lbBC">Pitfalls of Long Entries</A><DD>
|
|
<DT id="85"><A HREF="#lbBD">Binary Compatibility</A><DD>
|
|
</DL>
|
|
<DT id="86"><A HREF="#lbBE">EXTENSIONS</A><DD>
|
|
<DT id="87"><A HREF="#lbBF">FILES</A><DD>
|
|
<DT id="88"><A HREF="#lbBG">SEE ALSO</A><DD>
|
|
<DT id="89"><A HREF="#lbBH">AUTHORS</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:06:06 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|