Annotation of 43BSDTahoe/man/man1/window.1, revision 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.