.ds f. 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 .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 83 .nr 80 0 .nr 38 \wType .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 \wbool .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 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .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 \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 \wbool .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .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 \wbool .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 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .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 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wchar * .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 .80 .rm 80 .nr 81 0 .nr 38 \wName .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wAL .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wAM .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wBC .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wBS .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wBT .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wCA .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wCD .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wCE .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wCL .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wCM .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wDC .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wDL .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wDM .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wDO .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wED .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wEO .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wEI .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wHO .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wHZ .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wIC .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wIN .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wIM .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wIP .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wLL .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wMA .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wMI .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wNC .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wND .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wOS .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wPC .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wSE .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wSF .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wSO .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wSR .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wTA .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wTE .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wTI .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wUC .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wUE .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wUL .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wUP .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wUS .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wVB .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wVE .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wVS .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wXN .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 .nr 82 0 .nr 38 \wPad .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP* .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP* .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP* .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP* .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP* .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP* .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wP .if \n(82<\n(38 .nr 82 \n(38 .82 .rm 82 .nr 83 0 .nr 38 \wDescription .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wAdd new blank Line .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wAutomatic Margins .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wBack Cursor movement .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wBackSpace works .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wBack Tab .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wCursor Addressable .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wClear to end of Display .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wClear to End of line .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wCLear screen .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wCursor Motion .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wDelete Character .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wDelete Line sequence .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wDelete Mode (enter) .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wDOwn line sequence .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wEnd Delete mode .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wcan Erase Overstrikes with \' \' .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wEnd Insert mode .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wHOme cursor .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wHaZeltine ~ braindamage .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wInsert Character .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wInsert-Null blessing .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wenter Insert Mode (IC usually set, too) .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wPad after char Inserted using IM+IE .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wquick to Last Line, column 0 .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wctrl character MAp for cmd mode .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wcan Move in Insert mode .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wNo Cr: \er sends \er\en then eats \en .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wNon-Destructive space .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wOverStrike works .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wPad Character .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wStandout End (may leave space) .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wScroll Forwards .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wStand Out begin (may leave space) .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wScroll in Reverse .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wTAb (not ^I or with padding) .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wTerminal address enable Ending sequence .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wTerminal address enable Initialization .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wUnderline a single Character .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wUnderline Ending sequence .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wUnderLining works even though !OS .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wUPline .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wUnderline Starting sequence\** .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wVisible Bell .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wVisual End sequence .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wVisual Start sequence .if \n(83<\n(38 .nr 83 \n(38 .nr 38 \wa Newline gets eaten after wrap .if \n(83<\n(38 .nr 83 \n(38 .83 .rm 83 .nr 38 \wvariables set by \fIsetterm()\fR-\n(80-3n-\n(81-3n-\n(82-3n-\n(83 .if \n(38>0 .nr 38 \n(38/3 .if \n(38<0 .nr 38 0 .nr 81 +\n(38 .nr 82 +\n(38 .nr 83 +\n(38 .nr 38 1n .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 43 \n(82+(3*\n(38) .nr 83 +\n(43 .nr TW \n(83 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 107 file appen.A 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(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'variables set by \fIsetterm()\fR .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'\h'|\n(43u' .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'Type\h'|\n(41u'Name\h'|\n(42u'Pad\h'|\n(43u'Description .nr 36 \n(.v .vs \n(.vu-\n(.sp \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 .vs \n(36u .TH .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'AL\h'|\n(42u'P*\h'|\n(43u'Add new blank Line .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'AM\h'|\n(42u'\h'|\n(43u'Automatic Margins .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'BC\h'|\n(42u'\h'|\n(43u'Back Cursor movement .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'BS\h'|\n(42u'\h'|\n(43u'BackSpace works .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'BT\h'|\n(42u'P\h'|\n(43u'Back Tab .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'CA\h'|\n(42u'\h'|\n(43u'Cursor Addressable .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'CD\h'|\n(42u'P*\h'|\n(43u'Clear to end of Display .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'CE\h'|\n(42u'P\h'|\n(43u'Clear to End of line .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'CL\h'|\n(42u'P*\h'|\n(43u'CLear screen .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'CM\h'|\n(42u'P\h'|\n(43u'Cursor Motion .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'DC\h'|\n(42u'P*\h'|\n(43u'Delete Character .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'DL\h'|\n(42u'P*\h'|\n(43u'Delete Line sequence .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'DM\h'|\n(42u'\h'|\n(43u'Delete Mode (enter) .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'DO\h'|\n(42u'\h'|\n(43u'DOwn line sequence .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'ED\h'|\n(42u'\h'|\n(43u'End Delete mode .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'EO\h'|\n(42u'\h'|\n(43u'can Erase Overstrikes with \' \' .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'EI\h'|\n(42u'\h'|\n(43u'End Insert mode .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'HO\h'|\n(42u'\h'|\n(43u'HOme cursor .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'HZ\h'|\n(42u'\h'|\n(43u'HaZeltine ~ braindamage .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'IC\h'|\n(42u'P\h'|\n(43u'Insert Character .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'IN\h'|\n(42u'\h'|\n(43u'Insert-Null blessing .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'IM\h'|\n(42u'\h'|\n(43u'enter Insert Mode (IC usually set, too) .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'IP\h'|\n(42u'P*\h'|\n(43u'Pad after char Inserted using IM+IE .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'LL\h'|\n(42u'\h'|\n(43u'quick to Last Line, column 0 .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'MA\h'|\n(42u'\h'|\n(43u'ctrl character MAp for cmd mode .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'MI\h'|\n(42u'\h'|\n(43u'can Move in Insert mode .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'NC\h'|\n(42u'\h'|\n(43u'No Cr: \er sends \er\en then eats \en .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'ND\h'|\n(42u'\h'|\n(43u'Non-Destructive space .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'OS\h'|\n(42u'\h'|\n(43u'OverStrike works .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char\h'|\n(41u'PC\h'|\n(42u'\h'|\n(43u'Pad Character .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'SE\h'|\n(42u'\h'|\n(43u'Standout End (may leave space) .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'SF\h'|\n(42u'P\h'|\n(43u'Scroll Forwards .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'SO\h'|\n(42u'\h'|\n(43u'Stand Out begin (may leave space) .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'SR\h'|\n(42u'P\h'|\n(43u'Scroll in Reverse .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'TA\h'|\n(42u'P\h'|\n(43u'TAb (not ^I or with padding) .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'TE\h'|\n(42u'\h'|\n(43u'Terminal address enable Ending sequence .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'TI\h'|\n(42u'\h'|\n(43u'Terminal address enable Initialization .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'UC\h'|\n(42u'\h'|\n(43u'Underline a single Character .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'UE\h'|\n(42u'\h'|\n(43u'Underline Ending sequence .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'UL\h'|\n(42u'\h'|\n(43u'UnderLining works even though !OS .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'UP\h'|\n(42u'\h'|\n(43u'UPline .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'US\h'|\n(42u'\h'|\n(43u'Underline Starting sequence\** .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'VB\h'|\n(42u'\h'|\n(43u'Visible Bell .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'VE\h'|\n(42u'\h'|\n(43u'Visual End sequence .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'char *\h'|\n(41u'VS\h'|\n(42u'\h'|\n(43u'Visual Start sequence .ta \n(80u \n(81u \n(82u \n(83u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'XN\h'|\n(42u'\h'|\n(43u'a Newline gets eaten after wrap .fc .nr T. 1 .T# 1 .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-54 .(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 .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 80 0 .nr 38 \wtype .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wbool .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wbool .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wbool .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 .nr 81 0 .nr 38 \wname .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wNONL .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wGT .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \wUPPERCASE .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 .nr 82 0 .nr 38 \wdescription .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wTerm can't hack linefeeds doing a CR .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wGtty indicates Tabs .if \n(82<\n(38 .nr 82 \n(38 .nr 38 \wTerminal generates only uppercase letters .if \n(82<\n(38 .nr 82 \n(38 .82 .rm 82 .nr 38 \wvariables set by \fIgettmode()\fR-\n(80-3n-\n(81-3n-\n(82 .if \n(38>0 .nr 38 \n(38/2 .if \n(38<0 .nr 38 0 .nr 81 +\n(38 .nr 82 +\n(38 .nr 38 1n .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 131 file appen.A 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(82u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'variables set by \fIgettmode()\fR .ta \n(80u \n(81u \n(82u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u' .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 .TH .ta \n(80u \n(81u \n(82u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'NONL\h'|\n(42u'Term can't hack linefeeds doing a CR .ta \n(80u \n(81u \n(82u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'GT\h'|\n(42u'Gtty indicates Tabs .ta \n(80u \n(81u \n(82u .nr 31 \n(.f .nr 35 1m \&\h'|\n(40u'bool\h'|\n(41u'UPPERCASE\h'|\n(42u'Terminal generates only uppercase letters .fc .nr T. 1 .T# 1 .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11