redo contrib notice
[unix-history] / usr / src / usr.bin / window / window.1
CommitLineData
99e42703
KB
1.\" Copyright (c) 1985 The Regents of the University of California.
2.\" All rights reserved.
6be9699a 3.\"
99e42703
KB
4.\" Redistribution and use in source and binary forms are permitted
5.\" provided that the above copyright notice and this paragraph are
6.\" duplicated in all such forms and that any documentation,
7.\" advertising materials, and other materials related to such
8.\" distribution and use acknowledge that the software was developed
9.\" by the University of California, Berkeley. The name of the
10.\" University may not be used to endorse or promote products derived
11.\" from this software without specific prior written permission.
12.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
13.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
14.\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
15.\"
76bc5026 16.\" @(#)window.1 6.8 (Berkeley) %G%
6be9699a
KM
17.\"
18.TH WINDOW 1 ""
19.UC 6
93d5bf32 20.SH NAME
ac024783 21window \- window environment
93d5bf32 22.SH SYNOPSIS
05631f05
EW
23.B window
24[
25.B \-t
26] [
27.B \-f
28] [
29.B \-d
30] [
ac024783
EW
31.B \-e escape-char
32] [
33.B \-c command
05631f05 34]
93d5bf32 35.SH DESCRIPTION
ab6dd2f7
EW
36\fIWindow\fP implements a window environment on
37ASCII terminals.
93d5bf32 38.PP
ac024783 39A window is a rectangular portion of the physical terminal
ab6dd2f7
EW
40screen associated with a set of processes. Its size and
41position can be changed by the user at any time. Processes
42communicate with their window in the same way they normally
43interact with a terminal--through their standard input, output,
44and diagnostic file descriptors. The window program handles the
ac024783
EW
45details of redirecting input an output to and from the
46windows. At any one time, only one window can receive
47input from the keyboard, but all windows can simultaneously send output
48to the display.
f85ea165 49.PP
ac024783 50Windows can overlap and are framed as necessary. Each window
1709ff68 51is named by one of the digits ``1'' to ``9''. This one-character
ac024783
EW
52identifier, as well as a user definable label string, are displayed
53with the window on the top edge of its frame. A window can be
54designated to be in the \fIforeground\fP, in which case it will always be
55on top of all normal, non-foreground windows, and can be covered
ab6dd2f7
EW
56only by other foreground windows. A window need not be completely
57within the edges of the terminal screen. Thus a large window
58(possibly larger than the screen) may be positioned to show only
59a portion of its full size.
93d5bf32 60.PP
ab6dd2f7
EW
61Each window has a cursor and a set of control functions. Most intelligent
62terminal operations such as line and
ac024783 63character deletion and insertion are supported. Display modes
ab6dd2f7
EW
64such as underlining and reverse video are available if they are
65supported by the terminal. In addition,
66similar to terminals with multiple pages of memory,
951de993 67each window has a text buffer which can have more lines than the window
ab6dd2f7 68itself.
ac024783 69.SH OPTIONS
ab6dd2f7
EW
70When \fIwindow\fP starts up, the commands (see long commands below)
71contained in the file \fI.windowrc\fP in the user's home directory are
72executed. If it does not exist, two equal sized windows spanning
73the terminal screen are created by default.
05631f05 74.PP
ab6dd2f7 75The command line options are
05631f05 76.TP
ac024783 77.B \-t
05631f05
EW
78Turn on terse mode (see \fIterse\fP command below).
79.TP
ac024783 80.B \-f
ab6dd2f7 81Fast. Don't perform any startup action.
05631f05 82.TP
ac024783 83.B \-d
05631f05
EW
84Ignore \fI.windowrc\fP and create the two default
85windows instead.
86.TP
ac024783
EW
87.B \-e escape-char
88Set the escape character to \fIescape-char\fP. \fIEscape-char\fP
89can be a single character, or in the form \fI^X\fP where \fIX\fP
90is any character, meaning control-\fIX\fP.
91.TP
92.B \-c command
93Execute the string \fIcommand\fP as a long command (see below)
94before doing anything else.
95.SH "PROCESS ENVIRONMENT"
96With each newly created window, a shell program is spawned with its
97process environment tailored to that window. Its standard input,
98output, and diagnostic file descriptors are bound to one end of either
99a pseudo-terminal (\fIpty\fP (4)) or a UNIX domain socket
100(\fIsocketpair\fP (4)). If a pseudo-terminal is used, then its special
101characters and modes (see \fIstty\fP (1)) are copied from the physical
102terminal. A \fItermcap\fP (5) entry tailored to this window is created
103and passed as environment (\fIenviron\fP (5)) variable
104\fITERMCAP\fP. The termcap entry contains the window's size and
105characteristics as well as information from the physical terminal,
106such as the existence of underline, reverse video, and other display
107modes, and the codes produced by the terminal's function keys,
ab6dd2f7
EW
108if any. In addition, the window size attributes of the pseudo-terminal
109are set to reflect the size of this window, and updated whenever
110it is changed by the user. In particular, the editor \fIvi\fP (1) uses
ac024783
EW
111this information to redraw its display.
112.SH OPERATION
05631f05 113.PP
ab6dd2f7 114During normal execution, \fIwindow\fP can be in one of two states:
ac024783
EW
115conversation mode and command mode. In conversation mode, the
116terminal's real cursor is placed at the cursor position of a particular
117window--called the current window--and input from the keyboard is sent
118to the process in that window. The current window is always
119on top of all other windows, except those in foreground. In addition,
120it is set apart by highlighting its identifier and label in reverse video.
93d5bf32 121.PP
ac024783
EW
122Typing \fIwindow\fP's escape character (normally ^P) in conversation
123mode switches it into command mode. In command mode, the top line of
124the terminal screen becomes the command prompt window, and \fIwindow\fP
125interprets input from the keyboard as commands to manipulate windows.
e4414eae 126.PP
ac024783
EW
127There are two types of commands: short commands are usually one or two
128key strokes; long commands are strings either typed by the user in the
129command window (see the ``:'' command below), or read from a file (see
130\fIsource\fP below).
131.SH "SHORT COMMANDS"
132Below, \fI#\fP represents one of the digits ``1'' to ``9''
133corresponding to the windows 1 to 9. \fI^X\fP means control-\fIX\fP,
134where \fPX\fP is any character. In particular, \fI^^\fP is
54e5dd62 135control-^. \fIEscape\fP is the escape key, or \fI^[\fP.
ac024783
EW
136.TP
137.B #
138Select window \fI#\fP as the current window
f85ea165 139and return to conversation mode.
93d5bf32 140.TP
ac024783
EW
141.B %#
142Select window \fI#\fP but stay in command mode.
93d5bf32 143.TP
ac024783
EW
144.B ^^
145Select the previous window and return to conversation
146mode. This is useful for toggling between two windows.
f85ea165 147.TP
93d5bf32
EW
148.B escape
149Return to conversation mode.
150.TP
151.B ^P
152Return to conversation mode and write ^P to the
153current window. Thus, typing two ^P's in conversation
154mode sends one to the current window. If the \fIwindow\fP
155escape is changed to some other character, that
f85ea165 156character takes the place of ^P here.
93d5bf32 157.TP
ac024783
EW
158.B ?
159List a short summary of commands.
160.TP
161.B ^L
162Redraw the screen.
9c9f7aa9 163.TP
f85ea165
EW
164.B q
165Exit \fIwindow\fP. Confirmation is requested.
93d5bf32 166.TP
05631f05
EW
167.B ^Z
168Suspend \fIwindow\fP.
169.TP
93d5bf32 170.B w
ac024783 171Create a new window. The user is prompted for the positions
f85ea165 172of the upper left and lower right corners of the window.
e4414eae
EW
173The cursor is placed on the screen and the keys ``h'', ``j'',
174``k'', and ``l''
175move the cursor left, down, up, and right, respectively.
176The keys ``H'', ``J'', ``K'', and ``L'' move the cursor to the respective
05631f05 177limits of the screen. Typing a number before the movement keys
ac024783 178repeats the movement that number of times. Return enters the cursor position
93d5bf32 179as the upper left corner of the window. The lower right corner
f07b3693 180is entered in the same manner. During this process,
ac024783
EW
181the placement of the new window is indicated by a rectangular
182box drawn on the screen, corresponding to where the new window
183will be framed. Typing escape at any point
f07b3693 184cancels this command.
93d5bf32 185.IP
05631f05 186This window becomes the current window,
ac024783 187and is given the first available ID. The default buffer size
76bc5026 188is used (see \fIdefault_nline\fP command below).
9c9f7aa9 189.IP
f07b3693 190Only fully visible windows can be created this way.
93d5bf32 191.TP
ac024783
EW
192.B c#
193Close window \fI#\fP. The process in the window is sent
194the hangup signal (see \fIkill\fP (1)). \fICsh\fP (1) should
93d5bf32
EW
195handle this signal correctly and cause no problems.
196.TP
ac024783
EW
197.B m#
198Move window \fI#\fP to another location. A box in the shape
f07b3693
EW
199of the window is drawn on
200the screen to indicate the new position of the window, and the same keys as
ac024783 201those for the \fIw\fP command are used to position the box. The
9c9f7aa9
EW
202window can be moved partially off-screen.
203.TP
ac024783
EW
204.B M#
205Move window \fI#\fP to its previous position.
9c9f7aa9 206.TP
ac024783
EW
207.B s#
208Change the size of window \fI#\fP. The user is prompted
209to enter the new lower right corner of the window. A box
210is drawn to indicate the new window size. The same
211keys used in \fIw\fP and \fIm\fP are used to enter the position.
93d5bf32 212.TP
ac024783
EW
213.B S#
214Change window \fI#\fP to its previous size.
05631f05
EW
215.TP
216.B ^Y
217Scroll the current window up by one line.
218.TP
219.B ^E
220Scroll the current window down by one line.
221.TP
93d5bf32
EW
222.B ^U
223Scroll the current window up by half the window size.
224.TP
225.B ^D
226Scroll the current window down by half the window size.
227.TP
228.B ^B
229Scroll the current window up by the full window size.
230.TP
231.B ^F
232Scroll the current window down by the full window size.
233.TP
234.B h
235Move the cursor of the current window left by one column.
236.TP
237.B j
238Move the cursor of the current window down by one line.
239.TP
240.B k
241Move the cursor of the current window up by one line.
242.TP
243.B l
244Move the cursor of the current window right by one column.
245.TP
ac024783
EW
246.B ^S
247Stop output in the current window.
248.TP
249.B ^Q
250Start output in the current window.
9c9f7aa9 251.TP
f85ea165 252.B :
f07b3693
EW
253Enter a line to be executed as long commands. Normal line
254editing characters (erase character, erase word, erase line) are
255supported.
ac024783
EW
256.SH "LONG COMMANDS"
257Long commands are a sequence of statements
258parsed much like a programming language, with a syntax
259similar to that of C. Numeric and string expressions and variables
260are supported, as well as conditional statements.
9c9f7aa9 261.PP
ac024783
EW
262There are two data types: string and number. A string is a sequence
263of letters or digits beginning with a letter. ``_'' and ``.'' are
264considered letters. Alternately, non-alphanumeric characters can
265be included in strings by quoting them in ``"'' or escaping them
266with ``\\''. In addition, the ``\\'' sequences of C are supported,
267both inside and outside quotes (e.g., ``\\n'' is a new line,
268``\\r'' a carriage return). For example, these are legal strings:
269abcde01234, "&#$^*&#", ab"$#"cd, ab\\$\\#cd, "/usr/ucb/window".
f85ea165 270.PP
ac024783
EW
271A number is an integer value in one of three forms:
272a decimal number, an octal number preceded by ``0'',
273or a hexadecimal number preceded by ``0x'' or ``0X''. The natural
274machine integer size is used (i.e., the signed integer type
275of the C compiler). As in C, a non-zero number represents
276a boolean true.
277.PP
278The character ``#'' begins a comment which terminates at the
279end of the line.
280.PP
281A statement is either a conditional or an expression. Expression
282statements are terminated with a new line or ``;''. To continue
283an expression on the next line, terminate the first line with ``\\''.
284.SH "CONDITIONAL STATEMENT"
285\fIWindow\fP has a single control structure:
286the fully bracketed if statement in the form
287.nf
288 if <expr> then
289 <statement>
290 . . .
291 elsif <expr> then
292 <statement>
293 . . .
294 else
295 <statement>
296 . . .
297 endif
298.fi
299The \fIelse\fP and \fIelsif\fP parts are optional, and the latter can
300be repeated any number of times. \fI<Expr>\fP must be numeric.
301.SH EXPRESSIONS
302Expressions in \fIwindow\fP are similar to those in the
303C language, with most C operators supported on numeric
304operands. In addition, some are overloaded to operate on strings.
305.PP
306When an expression is used as a statement, its value is discarded
307after evaluation. Therefore, only expressions with side
308effects (assignments and function calls) are useful as statements.
309.PP
310Single valued (no arrays) variables are supported, of both
311numeric and string values. Some variables are predefined. They
312are listed below.
313.PP
314The operators in order of increasing precedence:
315.TP
316.B <expr1> = <expr2>
317Assignment. The variable of name \fI<expr1>\fP, which must be string valued,
318is assigned the result of \fI<expr2>\fP. Returns the value of \fI<expr2>\fP.
319.TP
320.B <expr1> ? <expr2> : <expr3>
321Returns the value of \fI<expr2>\fP if \fI<expr1>\fP evaluates true
322(non-zero numeric value); returns the value of \fI<expr3>\fP otherwise. Only
323one of \fI<expr2>\fP and \fI<expr3>\fP is evaluated. \fI<Expr1>\fP must
324be numeric.
325.TP
326.B <expr1> || <expr2>
327Logical or. Numeric values only. Short circuit evaluation is supported
328(i.e., if \fI<expr1>\fP evaluates true, then \fI<expr2>\fP is not evaluated).
329.TP
330.B <expr1> && <expr2>
331Logical and with short circuit evaluation. Numeric values only.
332.TP
333.B <expr1> | <expr2>
334Bitwise or. Numeric values only.
335.TP
336.B <expr1> ^ <expr2>
337Bitwise exclusive or. Numeric values only.
338.TP
339.B <expr1> & <expr2>
340Bitwise and. Numeric values only.
341.TP
342.B <expr1> == <expr2>, <expr1> != <expr2>
343Comparison (equal and not equal, respectively). The boolean
344result (either 1 or 0) of the comparison is returned. The
345operands can be numeric or string valued. One string operand
346forces the other to be converted to a string in necessary.
347.TP
348.B <expr1> < <expr2>, <expr1> > <expr2>, <expr1> <= <expr2>, <expr1> >= <expr2>
349Less than, greater than, less than or equal to,
350greater than or equal to. Both numeric and string values, with
351automatic conversion as above.
352.TP
353.B <expr1> << <expr2>, <expr1> >> <expr2>
354If both operands are numbers, \fI<expr1>\fP is bit
355shifted left (or right) by \fI<expr2>\fP bits. If \fI<expr1>\fP is
356a string, then its first (or last) \fI<expr2>\fP characters are
357returns (if \fI<expr2>\fP is also a string, then its length is used
358in place of its value).
359.TP
360.B <expr1> + <expr2>, <expr1> - <expr2>
361Addition and subtraction on numbers. For ``+'', if one
362argument is a string, then the other is converted to a string,
363and the result is the concatenation of the two strings.
364.TP
365.B <expr1> * <expr2>, <expr1> / <expr2>, <expr1> % <expr2>
366Multiplication, division, modulo. Numbers only.
367.TP
368.B -<expr>, ~<expr>, !<expr>, $<expr>, $?<expr>
369The first three are unary minus, bitwise complement and logical complement
370on numbers only. The operator, ``$'', takes \fI<expr>\fP and returns
371the value of the variable of that name. If \fI<expr>\fP is numeric
372with value \fIn\fP and it appears within an alias macro (see below),
373then it refers to the nth argument of the alias invocation. ``$?''
374tests for the existence of the variable \fI<expr>\fP, and returns 1
375if it exists or 0 otherwise.
376.TP
377.B <expr>(<arglist>)
378Function call. \fI<Expr>\fP must be a string that is the unique
379prefix of the name of a builtin \fIwindow\fP function
380or the full name of a user defined alias macro. In the case of a builtin
381function, \fI<arglist>\fP can be in one of two forms:
382.br
383 <expr1>, <expr2>, . . .
384.br
385 argname1 = <expr1>, argname2 = <expr2>, . . .
386.br
387The two forms can in fact be intermixed, but the result is
388unpredictable. Most arguments can be omitted; default values will
389be supplied for them. The \fIargnames\fP can be unique prefixes
390of the the argument names. The commas separating
391arguments are used only to disambiguate, and can usually be omitted.
392.IP
393Only the first argument form is valid for user defined aliases. Aliases
394are defined using the \fIalias\fP builtin function (see below). Arguments
395are accessed via a variant of the variable mechanism (see ``$'' operator
396above).
397.IP
398Most functions return value, but some are used for side effect
399only and so must be used as statements. When a function or an alias is used
400as a statement, the parenthesis surrounding
401the argument list may be omitted. Aliases return no value.
402.SH "BUILTIN FUNCTIONS"
403The arguments are listed by name in their natural
404order. Optional arguments are in square brackets (``[ ]''). Arguments
405that have no names are in angle brackets (``<>'').
76bc5026
EW
406An argument meant to be a boolean flag (often named \fIflag\fP)
407can be one of \fIon\fP, \fIoff\fP, \fIyes\fP, \fIno\fP, \fItrue\fP,
408or \fIfalse\fP, with obvious meanings, or it can be a numeric expression,
409in which case a non-zero value is true.
ac024783
EW
410.TP
411.B alias([<string>], [<string-list>])
412If no argument is given, all currently defined alias macros are
413listed. Otherwise, \fI<string>\fP is defined as an alias,
414with expansion \fI<string-list>\fP. The previous definition of
415\fI<string>\fP, if any, is returned. Default for \fI<string-list>\fP
416is no change.
417.TP
418.B close(<window-list>)
419Close the windows specified in \fI<window-list>\fP. If \fI<window-list>\fP
420is the word \fIall\fP, than all windows are closed. No value is returned.
421.TP
422.B cursormodes([modes])
423Set the window cursor to \fImodes\fP. \fIModes\fP is the bitwise
424or of the mode bits defined as the variables \fIm_ul\fP (underline),
425\fIm_rev\fP (reverse video), \fIm_blk\fP (blinking),
426and \fIm_grp\fP (graphics, terminal dependent). Return
427value is the previous modes. Default is no change.
428For example, cursor($m_rev|$m_blk) sets the window cursors to blinking
429reverse video.
430.TP
76bc5026
EW
431.B default_nline([nline])
432Set the default buffer size to \fInline\fP. Initially, it is
43348 lines. Returns the old default buffer size. Default is
434no change. Using a very large buffer can slow the program down
435considerably.
436.TP
437.B default_shell([<string-list>])
438Set the default window shell program to \fI<string-list>\fP. Returns
439the first string in the old shell setting. Default is no change. Initially,
440the default shell is taken from the environment variable \fISHELL\fP.
441.TP
442.B default_smooth([flag])
443Set the default value of the \fIsmooth\fP argument
444to the command \fIwindow\fP (see below). The argument
445is a boolean flag (one of \fIon\fP, \fIoff\fP,
446\fIyes\fP, \fIno\fP, \fItrue\fP, \fIfalse\fP, or a number,
447as described above). Default is no change.
448The old value (as a number) is returned.
449The initial value is 1 (true).
450.TP
ac024783
EW
451.B echo([window], [<string-list>])
452Write the list of strings, \fI<string-list>\fP, to \fIwindow\fP, separated
453by spaces and terminated with a new line. The strings are only
056978a3 454displayed in the window, the processes in the window are not
ac024783
EW
455involved (see \fIwrite\fP below). No value is returned. Default
456is the current window.
457.TP
458.B escape([escapec])
459Set the escape character to \fIescape-char\fP. Returns the old
1709ff68 460escape character as a one-character string. Default is no
ac024783
EW
461change. \fPEscapec\fP can be a string of a single character, or
462in the form \fI^X\fP, meaning control-\fIX\fP.
463.TP
464.B foreground([window], [flag])
465Move \fIwindow\fP in or out of foreground. \fIFlag\fP
76bc5026
EW
466is a boolean value. The old foreground flag
467is returned. Default for \fIwindow\fP is the current window,
ac024783
EW
468default for \fIflag\fP is no change.
469.TP
470.B label([window], [label])
471Set the label of \fIwindow\fP to \fIlabel\fP. Returns the old
472label as a string. Default for \fIwindow\fP is the current
473window, default for \fIlabel\fP is no change. To turn
474off a label, set it to an empty string ("").
475.TP
476.B list()
477No arguments. List the identifiers and labels of all windows. No
478value is returned.
479.TP
ac024783
EW
480.B select([window])
481Make \fIwindow\fP the current window. The previous current window
482is returned. Default is no change.
f85ea165 483.TP
ac024783
EW
484.B source(filename)
485Read and execute the long commands in \fIfilename\fP. Returns
486-1 if the file cannot be read, 0 otherwise.
f85ea165 487.TP
ac024783
EW
488.B terse([flag])
489Set terse mode to \fIflag\fP. In terse mode, the command window
490stays hidden even in command mode, and errors are reported by
491sounding the terminal's bell. \fIFlag\fP can take on the same
492values as in \fIforeground\fP above. Returns the old terse flag.
493Default is no change.
f85ea165 494.TP
ac024783
EW
495.B unalias(alias)
496Undefine \fIalias\fP. Returns -1 if \fIalias\fP does not exist,
4970 otherwise.
f85ea165 498.TP
ac024783
EW
499.B unset(variable)
500Undefine \fIvariable\fP. Returns -1 if \fIvariable\fP does not exist,
5010 otherwise.
05631f05 502.TP
ac024783
EW
503.B variables()
504No arguments. List all variables. No value is returned.
05631f05 505.TP
76bc5026
EW
506.B window([row], [column], [nrow], [ncol], [nline], [label],
507.B [pty], [frame], [mapnl], [keepopen], [smooth], [shell])
ac024783
EW
508.br
509Open a window with upper left corner at \fIrow\fP, \fIcolumn\fP
510and size \fInrow\fP, \fIncol\fP. If \fInline\fP is specified,
511then that many lines are allocated for the text buffer. Otherwise,
512the default buffer size is used. Default values for
513\fIrow\fP, \fIcolumn\fP, \fInrow\fP, and \fIncol\fP are, respectively,
514the upper, left-most, lower, or right-most extremes of the
76bc5026
EW
515screen. \fILabel\fP is the label string.
516\fIFrame\fP, \fIpty\fP, and \fImapnl\fP are flag values
ac024783
EW
517interpreted in the same way as the argument to \fIforeground\fP (see above);
518they mean, respectively, put a frame around this window (default true),
519allocate pseudo-terminal for this window rather than socketpair (default
520true), and map new line characters in this window to carriage return
521and line feed (default true if socketpair is used, false otherwise).
76bc5026
EW
522Normally, a window is automatically closed when its process
523exits. Setting \fIkeepopen\fP to true (default false) prevents this
524action. When \fIsmooth\fP is true, the screen is updated more frequently
525(for this window) to produce a more terminal-like behavior.
526The default value of \fIsmooth\fP is set by the \fIdefault_smooth\fP
527command (see above).
ac024783
EW
528\fIShell\fP is a list of strings that will be used as the shell
529program to place in the window (default is the program specified
76bc5026 530by \fIdefault_shell\fP, see above). The created window's identifier
ac024783
EW
531is returned as a number.
532.TP
533.B write([window], [<string-list>])
534Send the list of strings, \fI<string-list>\fP, to \fIwindow\fP, separated
535by spaces but not terminated with a new line. The strings are actually
536given to the window as input. No value is returned. Default
537is the current window.
538.SH "PREDEFINED VARIABLES"
539These variables are for information only. Redefining them does
540not affect the internal operation of \fIwindow\fP.
541.TP
542.B baud
543The baud rate as a number between 50 and 38400.
544.TP
545.B modes
546The display modes (reverse video, underline, blinking, graphics)
547supported by the physical terminal. The value of \fImodes\fP is
548the bitwise or of some of the one bit values, \fIm_blk\fP, \fIm_grp\fP,
549\fIm_rev\fP, and \fIm_ul\fP (see below). These values are useful
550in setting the window cursors' modes (see \fIcursormodes\fP above).
551.TP
552.B m_blk
553The blinking mode bit.
554.TP
555.B m_grp
556The graphics mode bit (not very useful).
557.TP
558.B m_rev
559The reverse video mode bit.
560.TP
561.B m_ul
562The underline mode bit.
563.TP
564.B ncol
565The number of columns on the physical screen.
566.TP
567.B nrow
568The number of rows on the physical screen.
569.TP
570.B term
571The terminal type. The standard name, found in the second name
572field of the terminal's \fITERMCAP\fP entry, is used.
93d5bf32
EW
573.SH FILES
574.ta 15
f85ea165
EW
575~/.windowrc startup command file.
576.br
76bc5026 577/dev/[pt]ty[p-t]? pseudo-terminal devices.
93d5bf32
EW
578.SH DIAGNOSTICS
579Should be self explanatory.
580.SH BUGS