4.1cBSD/usr/doc/curses/appen.A

.ie t .he ''\fBAppendix A\fR''
.el .he ''\fIAppendix A\fR''
.bp
.(x
.sp 2
.in 0
.bi Appendixes
.sp
.b "Appendix A"
.)x
.nr * 1
.sh 1 "Capabilities from termcap" 1
.sh 2 Disclaimer
.pp
The description of terminals is a difficult business,
and we only attempt to summarize the capabilities here:
for a full description see the paper describing termcap.
.sh 2 Overview
.pp
Capabilities from termcap are of three kinds:
string valued options,
numeric valued options,
and boolean options.
The string valued options are the most complicated,
since they may include padding information,
which we describe now.
.pp
Intelligent terminals often require padding on intelligent operations
at high (and sometimes even low) speed.
This is specified by a number before the string in the capability,
and has meaning for the capabilities which have a
.b P
at the front of their comment.
This normally is a number of milliseconds to pad the operation.
In the current system which has no true programmable delays,
we do this by sending a sequence of pad characters
(normally nulls, but can be changed
(specified by
.i PC )).
In some cases, the pad is better computed as some number of milliseconds
times the number of affected lines
(to the bottom of the screen usually,
except when terminals have insert modes which will shift several lines.)
This is specified as, e.g.,
.b 12* .
before the capability,
to say 12 milliseconds per affected whatever
(currently always line).
Capabilities where this makes sense say
.b P* .
.sp
.sh 2 "Variables Set By setterm()"
.TS H
c s s s
l l l l.
variables set by \fIsetterm()\fR

Type	Name	Pad	Description
_
.TH
char *	AL	P*	Add new blank Line
bool	AM		Automatic Margins
char *	BC		Back Cursor movement
bool	BS		BackSpace works
char *	BT	P	Back Tab
bool	CA		Cursor Addressable
char *	CD	P*	Clear to end of Display
char *	CE	P	Clear to End of line
char *	CL	P*	CLear screen
char *	CM	P	Cursor Motion
char *	DC	P*	Delete Character
char *	DL	P*	Delete Line sequence
char *	DM		Delete Mode (enter)
char *	DO		DOwn line sequence
char *	ED		End Delete mode
bool	EO		can Erase Overstrikes with \' \'
char *	EI		End Insert mode
char *	HO		HOme cursor
bool	HZ		HaZeltine ~ braindamage
char *	IC	P	Insert Character
bool	IN		Insert-Null blessing
char *	IM		enter Insert Mode (IC usually set, too)
char *	IP	P*	Pad after char Inserted using IM+IE
char *	LL		quick to Last Line, column 0
char *	MA		ctrl character MAp for cmd mode
bool	MI		can Move in Insert mode
bool	NC		No Cr: \er sends \er\en then eats \en
char *	ND		Non-Destructive space
bool	OS		OverStrike works
char	PC		Pad Character
char *	SE		Standout End (may leave space)
char *	SF	P	Scroll Forwards
char *	SO		Stand Out begin (may leave space)
char *	SR	P	Scroll in Reverse
char *	TA	P	TAb (not ^I or with padding)
char *	TE		Terminal address enable Ending sequence
char *	TI		Terminal address enable Initialization
char *	UC		Underline a single Character
char *	UE		Underline Ending sequence
bool	UL		UnderLining works even though !OS
char *	UP		UPline
char *	US		Underline Starting sequence\**
char *	VB		Visible Bell
char *	VE		Visual End sequence
char *	VS		Visual Start sequence
bool	XN		a Newline gets eaten after wrap
.TE
.(f
\**
US and UE,
if they do not exist in the termcap entry,
are copied from SO and SE
in
.Fn setterm
.)f
Names starting with
.bi X
are reserved for severely nauseous glitches
.sh 2 "Variables Set By gettmode()"
.TS H
c s s
l l l.
variables set by \fIgettmode()\fR

type	name	description
_
.TH
bool	NONL	Term can't hack linefeeds doing a CR
bool	GT	Gtty indicates Tabs
bool	UPPERCASE	Terminal generates only uppercase letters
.TE