document distributed with 4.3BSD
[unix-history] / usr / src / lib / libcurses / PSD.doc / appen.A
CommitLineData
1cb79f9c
KM
1.\" Copyright (c) 1980 Regents of the University of California.
2.\" All rights reserved. The Berkeley software License Agreement
3.\" specifies the terms and conditions for redistribution.
4.\"
4e6acb2c 5.\" @(#)appen.A 6.1 (Berkeley) %G%
1cb79f9c 6.\"
4e6acb2c
KM
7.ie t .oh '\*(Ln Appendix A''PS1:18-%'
8.eh 'PS1:18-%''\*(Ln Appendix A'
1cb79f9c
KM
9.el .he ''\fIAppendix A\fR''
10.bp
11.(x
12.sp 2
13.in 0
14.bi Appendixes
15.sp
16.b "Appendix A"
17.)x
18.nr * 1
19.sh 1 "Capabilities from termcap" 1
20.sh 2 Disclaimer
21.pp
22The description of terminals is a difficult business,
23and we only attempt to summarize the capabilities here:
4e6acb2c
KM
24for a full description see
25.b termcap (5).
1cb79f9c
KM
26.sh 2 Overview
27.pp
4e6acb2c
KM
28Capabilities from
29.b termcap
30are of three kinds:
1cb79f9c
KM
31string valued options,
32numeric valued options,
33and boolean options.
34The string valued options are the most complicated,
35since they may include padding information,
36which we describe now.
37.pp
38Intelligent terminals often require padding on intelligent operations
39at high (and sometimes even low) speed.
40This is specified by a number before the string in the capability,
41and has meaning for the capabilities which have a
42.b P
43at the front of their comment.
44This normally is a number of milliseconds to pad the operation.
45In the current system which has no true programmable delays,
46we do this by sending a sequence of pad characters
47(normally nulls, but can be changed
48(specified by
49.i PC )).
50In some cases, the pad is better computed as some number of milliseconds
51times the number of affected lines
52(to the bottom of the screen usually,
53except when terminals have insert modes which will shift several lines.)
4e6acb2c
KM
54This is specified as,
55i e.g. ,
1cb79f9c
KM
56.b 12* .
57before the capability,
58to say 12 milliseconds per affected whatever
59(currently always line).
60Capabilities where this makes sense say
61.b P* .
62.sp
63.sh 2 "Variables Set By setterm()"
64.TS H
65c s s s
66l l l l.
67variables set by \fIsetterm()\fR
68
69Type Name Pad Description
70_
71.TH
72char * AL P* Add new blank Line
73bool AM Automatic Margins
74char * BC Back Cursor movement
75bool BS BackSpace works
76char * BT P Back Tab
77bool CA Cursor Addressable
78char * CD P* Clear to end of Display
79char * CE P Clear to End of line
80char * CL P* CLear screen
81char * CM P Cursor Motion
82char * DC P* Delete Character
83char * DL P* Delete Line sequence
84char * DM Delete Mode (enter)
85char * DO DOwn line sequence
86char * ED End Delete mode
87bool EO can Erase Overstrikes with \' \'
88char * EI End Insert mode
89char * HO HOme cursor
90bool HZ HaZeltine ~ braindamage
91char * IC P Insert Character
92bool IN Insert-Null blessing
93char * IM enter Insert Mode (IC usually set, too)
94char * IP P* Pad after char Inserted using IM+IE
95char * LL quick to Last Line, column 0
96char * MA ctrl character MAp for cmd mode
97bool MI can Move in Insert mode
98bool NC No Cr: \er sends \er\en then eats \en
99char * ND Non-Destructive space
100bool OS OverStrike works
101char PC Pad Character
102char * SE Standout End (may leave space)
103char * SF P Scroll Forwards
104char * SO Stand Out begin (may leave space)
105char * SR P Scroll in Reverse
106char * TA P TAb (not ^I or with padding)
107char * TE Terminal address enable Ending sequence
108char * TI Terminal address enable Initialization
109char * UC Underline a single Character
110char * UE Underline Ending sequence
111bool UL UnderLining works even though !OS
112char * UP UPline
4e6acb2c 113char * US Underline Starting sequence
1cb79f9c
KM
114char * VB Visible Bell
115char * VE Visual End sequence
116char * VS Visual Start sequence
117bool XN a Newline gets eaten after wrap
118.TE
1cb79f9c
KM
119Names starting with
120.bi X
121are reserved for severely nauseous glitches
4e6acb2c
KM
122.pp
123For purposes of
124.Fn standout ,
125if
126.Fn SG
127is not 0,
128.Fn SO
129is set to
130.Fn NULL ,
131and if
132.Fn UG
133is not
134.Fn 0 ,
135.Fn US
136is set to
137.Fn NULL .
138If, after this,
139.Fn SO
140is
141.Fn NULL ,
142and
143.Fn US
144is not,
145.Fn SO
146is set to be
147.Fn US ,
148and
149.Fn SE
150is set to be
151.Fn UE .
1cb79f9c
KM
152.sh 2 "Variables Set By gettmode()"
153.TS H
154c s s
155l l l.
156variables set by \fIgettmode()\fR
157
158type name description
159_
160.TH
161bool NONL Term can't hack linefeeds doing a CR
162bool GT Gtty indicates Tabs
163bool UPPERCASE Terminal generates only uppercase letters
164.TE