Annotation of 43BSDTahoe/man/man1/window.1, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.