4.1cBSD/usr/doc/curses/intro.2.tbl

.ds f. intro.2
.sh 1 Variables
.pp
Many variables which are used to describe the terminal environment
are available to the programmer. They are:
.TS
.if \n+(b.=1 .nr d. \n(.c-\n(c.-1
.de 35
.ps \n(.s
.vs \n(.vu
.in \n(.iu
.if \n(.u .fi
.if \n(.j .ad
.if \n(.j=0 .na
..
.nf
.nr #~ 0
.if n .nr #~ 0.6n
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.fc
.nr 33 \n(.s
.rm 80 81 82
.nr 34 \n(.lu
.eo
.am 82
.br
.di a+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
.fi
current version of the screen (terminal screen).
.br
.di
.nr a| \n(dn
.nr a- \n(dl
..
.ec \
.eo
.am 82
.br
.di b+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
standard screen.  Most updates are usually done here.
.br
.di
.nr b| \n(dn
.nr b- \n(dl
..
.ec \
.eo
.am 82
.br
.di c+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
default terminal type if type cannot be determined
.br
.di
.nr c| \n(dn
.nr c- \n(dl
..
.ec \
.eo
.am 82
.br
.di d+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
use the terminal specification in \fIDef\*_term\fR as terminal,
irrelevant of real terminal type
.br
.di
.nr d| \n(dn
.nr d- \n(dl
..
.ec \
.eo
.am 82
.br
.di e+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
full name of the current terminal.
.br
.di
.nr e| \n(dn
.nr e- \n(dl
..
.ec \
.eo
.am 82
.br
.di f+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
number of lines on the terminal
.br
.di
.nr f| \n(dn
.nr f- \n(dl
..
.ec \
.eo
.am 82
.br
.di g+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
number of columns on the terminal
.br
.di
.nr g| \n(dn
.nr g- \n(dl
..
.ec \
.eo
.am 82
.br
.di h+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
error flag returned by routines on a fail.
.br
.di
.nr h| \n(dn
.nr h- \n(dl
..
.ec \
.eo
.am 82
.br
.di i+
.35
.ft \n(.f
.ll 50nn
.if \n(.l<\n(82 .ll \n(82u
.in 0
error flag returned by routines when things go right.
.br
.di
.nr i| \n(dn
.nr i- \n(dl
..
.ec \
.35
.nf
.ll \n(34u
.nr 80 0
.nr 38 \wtype
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wWINDOW *
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wWINDOW *
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wchar *
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wbool
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wchar *
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wint
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wint
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wint
.if \n(80<\n(38 .nr 80 \n(38
.nr 38 \wint
.if \n(80<\n(38 .nr 80 \n(38
.80
.rm 80
.nr 38 6mn
.if \n(80<\n(38 .nr 80 \n(38
.nr 81 0
.nr 38 \wname
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wcurscr
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wstdscr
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wDef\*_term
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wMy\*_term
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wttytype
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wLINES
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wCOLS
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wERR
.if \n(81<\n(38 .nr 81 \n(38
.nr 38 \wOK
.if \n(81<\n(38 .nr 81 \n(38
.81
.rm 81
.nr 38 8nn
.if \n(81<\n(38 .nr 81 \n(38
.nr 82 0
.nr 38 \wdescription
.if \n(82<\n(38 .nr 82 \n(38
.82
.rm 82
.nr 38 \n(a-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(b-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(c-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(d-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(e-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(f-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(g-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(h-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 \n(i-
.if \n(82<\n(38 .nr 82 \n(38
.nr 38 50nn
.if \n(82<\n(38 .nr 82 \n(38
.35
.nf
.ll \n(34u
.nr 38 0+\n(80+\n(81+\n(82
.nr 38 \n(.l-\n(38
.nr 38 \n(38/6
.if \n(38<0 .nr 38 0
.nr 79 0
.nr 40 \n(79+(0*\n(38)
.nr 80 +\n(40
.nr 41 \n(80+(3*\n(38)
.nr 81 +\n(41
.nr 42 \n(81+(3*\n(38)
.nr 82 +\n(42
.nr TW \n(82
.if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 39 file intro.2 is too wide - \n(TW units
.fc  
.nr #T 0-1
.nr #a 0-1
.eo
.de T#
.ds #d .d
.if \(ts\n(.z\(ts\(ts .ds #d nl
.mk ##
.nr ## -1v
.ls 1
.ls
..
.ec
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'type\h'|\n(41u'name\h'|\n(42u'description
.nr 36 \n(.v
.vs \n(.vu-\n(.sp
\h'|0'\s\n(33\l'|\n(TWu\(ul'\s0
.vs \n(36u
.ne \n(a|u+\n(.Vu
.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'WINDOW *\h'|\n(41u'curscr\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.a+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(b|u+\n(.Vu
.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'WINDOW *\h'|\n(41u'stdscr\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.b+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(c|u+\n(.Vu
.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'char *\h'|\n(41u'Def\*_term\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.c+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(d|u+\n(.Vu
.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'bool\h'|\n(41u'My\*_term\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.d+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(e|u+\n(.Vu
.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'char *\h'|\n(41u'ttytype\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.e+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(f|u+\n(.Vu
.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'int\h'|\n(41u'LINES\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.f+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(g|u+\n(.Vu
.if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'int\h'|\n(41u'COLS\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.g+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(h|u+\n(.Vu
.if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'int\h'|\n(41u'ERR\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.h+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.ne \n(i|u+\n(.Vu
.if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v)
.ta \n(80u \n(81u \n(82u 
.nr 31 \n(.f
.nr 35 1m
\&\h'|\n(40u'int\h'|\n(41u'OK\h'|\n(42u'
.mk ##
.nr 31 \n(##
.sp |\n(##u-1v
.nr 37 \n(42u
.in +\n(37u
.i+
.in -\n(37u
.mk 32
.if \n(32>\n(31 .nr 31 \n(32
.sp |\n(31u
.fc
.nr T. 1
.T# 1
.35
.rm a+
.rm b+
.rm c+
.rm d+
.rm e+
.rm f+
.rm g+
.rm h+
.rm i+
.TE
.if \n-(b.=0 .nr c. \n(.c-\n(d.-34
.pp
There are also several
.q #define
constants and types
which are of general usefulness:
.sp
.ev 1
.ta 11n
.(b L
.nf
reg	storage class ``register'' (e.g., \fIreg int i;\fR\|)
bool	boolean type, actually a ``char'' (e.g., \fIbool doneit;\fR\|)
TRUE	boolean ``true'' flag (1).
FALSE	boolean ``false'' flag (0).
.fi
.ev
.)b
.lp