[comp.sources.unix] v17i041: MGR, Bellcore window manager, Part40/61

rsalz@uunet.uu.net (Rich Salz) (01/27/89)

Submitted-by: Stephen A. Uhler <sau@bellcore.com>
Posting-number: Volume 17, Issue 41
Archive-name: mgr/part40




#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 40 (of 61)."
# Contents:  doc/usrman/doc.2 font-32/Ushadow38x40b
# Wrapped by rsalz@papaya.bbn.com on Thu Nov 17 21:05:49 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'doc/usrman/doc.2' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'doc/usrman/doc.2'\"
else
echo shar: Extracting \"'doc/usrman/doc.2'\" \(19130 characters\)
sed "s/^X//" >'doc/usrman/doc.2' <<'END_OF_FILE'
X'\"                        Copyright (c) 1988 Bellcore
X'\"                            All Rights Reserved
X'\"       Permission is granted to copy or use this program, EXCEPT that it
X'\"       may not be sold for profit, the copyright notice must be reproduced
X'\"       on copies, and credit should be given to Bellcore where it is due.
X'\"       BELLCORE MAKES NO WARRANTY AND ACCEPTS NO LIABILITY FOR THIS PROGRAM.
X'\"
X'\"	$Header: doc.2,v 4.1 88/06/29 17:04:51 bianchi Exp $
X'\"	$Source: /tmp/mgrsrc/doc/usrman/RCS/doc.2,v $
X.Sh page Macros
XAll of the C library interface macros expand into
X.I printf
Xexpressions that convert their command specification 
Xinto the \*M stream protocol.
XCompile time and run time options are available that globally alter
Xthe behavior of these macros to the specific needs of the client program.
XThe options are detailed in the
X.I "Using the Library"
Xsection of this document. 
XThe returned value of the macro expressions are not meaningful.
XThe macros described here attempt to reflect the actual state of the system,
Xand may include some inconsistencies that should be cleaned up in
Xfuture releases of the software.
XEvery \*M command
X(a command identifier - argument count combination) that is accepted by \*M has
Xa macro describing its function.
X.LP
X.Fh m_addchar
X.Fs m_addchar 3 "Insert a space character"
XInserts a space character at the current character cursor position.
XThe remaining characters on the line, if any, are shifted to the right.
X.Fe
X.Fh m_addchars n
X.Fs m_addchars 3 "Insert some space characters"
XInserts
X.Fi n
Xspace characters at the current character cursor position.
XThe remaining characters on the line, if any, are shifted to the right.
X.Fe
X.Fh m_addline
X.Fs m_addline 3 "Insert a blank line"
XInserts a
Xblank line at current row. The current row, and any below it,
Xare shifted down one line.
XThe bottom line of text is scrolled off the window.
X.Fe
X.Fh m_addlines n 
X.Fs m_addlines 3 "Insert some blank lines"
XInserts
X.Fi n
Xblank lines at current row. The current row, and any below it
Xare shifted down.
XThe bottom 
X.Fi n
Xlines of text are scrolled off the window.
XIt is much more efficient to call
X.Fr m_addlines n 
X once, than it is to call
X.Fr m_addline
X.Fi n
Xtimes.
X.Fe
X.Fh m_aligntext
X.Fs m_aligntext 13 "Align character cursor with the graphics point"
XMoves the current character cursor coincident
Xwith the current graphics point.
XThe current graphics point is set with 
X.Fr m_go x  y  
X\&.
XThis permits client programs to position characters at arbitrary pixel
Xlocations on the window.
X.Fe
X.Fh m_arc x  y  x1  y1  x2  y2 
X.Fs m_arc 4 "Draw an arc"
XAn arc centered at
X.Fr "" x y
Xis drawn counter clockwise from 
X.Fr "" x1 y1
Xto
X.Fr "" x2 y2
Xusing the current drawing function (see
X.Fr m_func
X).
X.Fe
X.Fh m_bell
X.Fs m_bell 1 "Flash the window and ring the bell"
XThe window flashes and the bell, if there is one, rings.
XEven if the window is totally obscured, its flashing is made visible
Xto the user.
X.Fe
X.Fh m_bcolor color
X.Fs m_bcolor 14 "Set the text background color"
XThe background color for text operations is set to
X.Fi color ,
Xwhich is an index into the color lookup table.
XThis command is ignored on a monochrome display.
XSee also 
X.Fr m_fcolor
Xand
X.Fr m_linecolor
X\&.
X.Fe
X.Fh m_bitcopy x_dst  y_dst  wide  high  x_src  y_src 
X.Fs m_bitcopy 5 "Bit-blt a rectangle within the window"
XCopy a rectangle from one place on the window to another
Xwith the copy function set by
X.Fr  m_func n
X\&. 
XThe rectangular area at
X.Fi  x_src , y_src
Xof size
X.Fi wide
Xby
X.Fi high
Xis combined with
Xthe rectangle at
X.Fi x_dst , y_dst
Xaccording to the last function set by
X.Fr m_func
X\&.
XThe resultant rectangle is placed at
X.Fi x_dst , y_dst .
X.Fe
X.Fh m_bitcopyto x_dst  y_dst wide  high  x_src  y_src  to  from 
X.Fs m_bitcopyto 5 "Bit-blt a rectangle between two bitmaps"
XCombine the rectangle at position
X.Fi x_src , y_src
Xof size
X.Fi wide
Xby
X.Fi high
Xof bitmap
X.Fi from
Xwith the rectangle of the same size at
X.Fi x_dst , y_dst
Xof bitmap
X.Fi to .
XThe bit-blt function used to combine the two rectangles is set by
X.Fr m_func
X\&.
X.Fi From
Xand
X.Fi to
Xare scratch-pad bitmap descriptors.
XScratchpad bitmap 0 (zero) represents the current window contents and may
Xbe used for the 
Xsource , destination
Xor both.
XIf the scratchpad bitmap
X.Fi to
Xdoes not already exist, it is created with a size of 
X.Fi wide + x_src
Xby
X.Fi high + y_src .
X.Fe
X.Fh m_bitcreate  n  wide  high 
X.Fs m_bitcreate 5 "Create a scratchpad bitmap"
XCreate the scratchpad bitmap
X.Fi n
Xof size
X.Fi wide
Xby
X.Fi high .
XThe contents of the bitmap are undefined.
XThe macro
X.Fr m_bitwriteto
X can be used to initialize the scratchpad bitmap.
XIf the bitmap already exists, the old one is first discarded.
XScratchpad bitmaps may also be created implicitly
Xby specifying a non-existent bitmap as the destination of
X.Fr m_bitwriteto 
X,
X.Fr m_bitcopyto 
X,
X.Fr m_bitld 
X, or 
X.Fr m_stringto
X\&.
X.Fe
X.Fh m_bitdestroy n 
X.Fs m_bitdestroy 5 "Destroy a scratchpad bitmap"
XDestroys scratchpad bitmap
X.Fi n
Xand frees all the resources 
Xassociated with it.
XIf
X.Fi n
Xdoes not exist, this macro is ignored.
X.Fe
X.Fh m_bitfromfile to  name 
X.Fs m_bitfromfile 5 "Read a bitmap file into a scratchpad bitmap"
XCopy the file
X.Fi name
Xon the
X.I \*M-host
Xmachine into the scratchpad bitmap
X.Fi to .
XThe scratchpad bitmap
X.Fi to
Xis created if it does not already exist.
X.B \*M
Xreturns  a single line containing the
X.I width
Xand
X.I height
Xof the bitmap,
Xor a 
X.I blank
Xif the file could not be found or loaded.
XIf 
X.Fi name
Xdoes not start with
X.B /
Xor
X.B ./ ,
XThe file
X.Fi name
Xis prefixed
Xwith \*M's home directory and
X.I /icon/ .
X.Fi Name s
Xstarting with 
X.B ./
Xare evaluated relative to the directory current when 
X.B \*M
Xwas invoked.
XThe format of the bitmap file is described in 
X.I dump.h .
X.Fe
X.Fh m_bitget from  size  offset 
X.Fs m_bitget 5 "Upload a bitmap to the client program"
XUpload part of a
X.I scratchpad
Xbitmap.
X.Fi Size
Xbytes of
X.I scratchpad
Xbitmap
X.Fi from ,
Xstarting
X.Fi offset
Xbytes from the beginning of the bitmap
Xare sent to the client program from
X.B \*M.
XAfter this call, the client 
Xis expected to read
X.Fi size
Xbytes from the input stream.
XThe image data is sent in raster scan order, 8 pixels
Xto a byte, padded at the right of every line to 16 bits.
X.Fi Size
Xshould be kept small (about 80 bytes), to avoid potential
Xflow control problems, with bitmaps uploaded in
Xmultiple passes. (See also
X.Fr m_bitsave 
X).
XThe data sent by \*M
Xfor this macro
Xrequires an eight bit data channel, so its use is discouraged.
XThe macro
X.Fr m_bitfromfile
X should be used instead when possible.
X.Fe
X.Fh m_bitld  wide  high  x  y  size 
X.Fs m_bitld 5 "Download an image to the window"
XPrepare \*M to download a bitmap to the window.
XThis macro instructs \*M
Xthat the next
X.Fi size
Xbytes received will be interpreted as
Xa bitmap image to be displayed on the window starting
Xat location
X.Fr "" x y
X, and of size
X.Fi  wide
Xby
X.Fi high .
XDownloading bitmaps requires an eight bit channel between \*M
Xand the client program.
XLarge bitmaps are best sent in several pieces.
XThe macro
X.Fr m_bitfromfile
Xshould be used instead, where possible, as it only requires a seven bit
Xdata channel
Xand avoids the movement of large amounts of data through the channel.
XIf more bytes are specified than required by the size of the bitmap,
Xthey are discarded.
XIf the number specified by
X.Fi size
Xis insufficient to fill the entire bitmap, the remainder of the bits
Xare set to undetermined values.
X.Fe
X.Fh m_bitldto wide  high  x_dst  y_dst  to  size 
X.Fs m_bitldto 5 "Down load an image to a scratchpad bitmap"
XPrepare to download a bitmap to the scratchpad bitmap
X.Fi to .
XIf
X.Fi to
Xdoes not already exist, (see
X.Fr  m_bitcreate
X),
Xit is
Xcreated automatically with size
X.Fi wide
Xby
X.Fi high .
XThis function instructs \*M that the next
X.Fi size
Xbytes received will be interpreted as
Xa bitmap image to be copied to scratchpad bitmap
X.Fi to
Xat location
X.Fi  x_dst , y_dst .
XThis function requires an eight bit channel between \*M
Xand the client program.
XIf more bytes are specified than required by the size of the bitmap,
Xthey are discarded.
XIf the number specified by
X.Fi size
Xis insufficient to fill the entire bitmap, the remainder of the bits
Xare set to undetermined values.
X.Fe
X.Fh m_bitsave from  name 
X.Fs m_bitsave 5 "Copy a scratchpad bitmap to a file"
XSave a scratchpad bitmap
X.Fi from
Xon the file
X.Fi name
Xon the
X.I \*M-host
Xfile system.
XIf 
X.Fi name
Xdoes not start with
X.B /
Xor
X.B ./ ,
X.Fi name
Xis prefixed
Xwith \*M's home directory and
X.I /icon/ .
X.Fi Name s
Xstarting with 
X.B ./
Xare evaluated relative to the directory current when 
X.B \*M
Xwas invoked.
XSpecifying
X.Fi from
Xto be
X.Fi 0
X(zero)
Xsaves the entire display contents to the file.
XThe functions
X.Fr m_windowsave
X and
X.Fr  m_othersave
X are used to save contents of entire windows.
X.Fe
X.Fh m_bitwrite x_dst  y_dst  wide  high 
X.Fs m_bitwrite 5 "Set, Clear or Invert a rectangular portion of the window"
XThe rectangular region of the window,
Xstarting at
X.Fi x_dst , y_dst
Xof extent
X.Fi wide
Xby
X.Fi high ,
Xis
Xset, cleared or inverted
Xas determined by the previous call to 
X.Fr m_func
X\&.
X.fE
X.Fh m_bitwriteto x_dst  y_dst  wide  high  to 
X.Fs m_bitwriteto 5 "Set, Clear or Invert a rectangular portion of a scratchpad bitmap"
XThe rectangular region of
X.I scratchpad
Xbitmap 
X.Fi to ,
Xstarting at
X.Fi x_dst , y_dst
Xof extent
X.Fi wide
Xby
X.Fi high ,
Xis
Xset, cleared or inverted
Xas determined by the previous call to 
X.Fr m_func
X\&.
XIf the destination
X.Fi to
Xdoes not exist, it is created with the dimensions
X.Fi wide
Xby
X.Fi high .
X.Fe
X.Fh m_broadcast string 
X.Fs m_broadcast 12 "Broadcast a message to all listeners"
XThe message
X.Fi string
Xis broadcast to all windows that are
X.I listen ing.
X.I Listen ing
Xis turned on by setting the 
X.SM
X.Fi ACCEPT
X.LG
Xevent for a window.
X(See
X.Fr m_setevent
X).
XMessages can only be sent to windows whose controlling
Xterminals have general write permission disabled (i.e. mode 0400)
Xas a security measure to prevent malicious foreign processes from sending
X.I shell s
Xmessages that get interpreted and executed as commands.
X.Fe
X.Fh m_circle x_dst  y_dst  radius 
X.Fs m_circle 4 "Draw a circle"
XA circle of radius
X.Fi radius
Xis drawn, centered at
X.Fi x_dst , y_dst .
XThe points at the edge of the circle are
Xset, cleared or inverted
Xdepending upon the last call to
X.Fr m_func
X\&.
XCircles are never scaled,
Xthey always appear as circles on the display, regardless of the window shape.
XThe
X.Fi radius
Xis scaled based upon the average
X.Fi width
Xand
X.Fi height
Xof the window.
XUse
X.Fr m_ellipse
Xto obtain a scaled circle.
X.Fe
X.Fh m_clear
X.Fs m_clear 3 "Clear the window"
XThe current
X.I "text region"
Xis cleared, and the character cursor is moved to position
X.Fr "" 0 0
X\&.
XIf no
X.I "text region"
Xis set,
X.Fr m_clear
X clears the entire window.
X.Fe
X.Fh m_cleareol
X.Fs m_cleareol 3 "Clear to the end of the line"
XAll of the characters on the current line, starting with the 
Xcurrent character to the end of the
X.I "text region" ,
Xare cleared.
XIf no
X.I "text region"
Xis set,
X.Fr m_cleareol
X clears to the edge of the window.
X.Fe
X.Fh m_cleareos
X.Fs m_cleareos 3 "Clear to the end of the window"
XAll of the characters in the current
X.I "text region" ,
Xfrom the 
Xcurrent character to the end
Xof the
X.I "text region" ,
Xare cleared.
XIf no
X.I "text region"
Xis set,
X.Fr m_clear
X clears to the end of the window.
X.Fe
X.Fh m_clearevent n 
X.Fs m_clearevent 9 "Clear an event"
XEvent
X.Fi n
Xis cleared.
XThe integer
X.Fi n
Xis one of:
X.Fi ACCEPT ,
X.Fi ACTIVATE ,
X.Fi BUTTON_1 ,
X.Fi BUTTON_1U ,
X.Fi BUTTON_2 ,
X.Fi BUTTON_2U ,
X.Fi COVERED ,
X.Fi DEACTIVATE ,
X.Fi DESTROY ,
X.Fi MOVE ,
X.Fi NOTIFY ,
X.Fi PASTE ,
X.Fi REDRAW ,
X.Fi RESHAPE ,
X.Fi SNARFED,
X.Fi STACK ,
Xor
X.Fi UNCOVERED .
XSee
X.Fr m_setevent
X for a description of the events.
X.Fe
X.Fh m_clearmenu n 
X.Fs m_clearmenu 8 "Clear a menu"
XIf menu
X.Fi n
Xexists,
Xit is cleared.
X.Fe
X.Fh m_clearmode mode 
X.Fs m_clearmode 6 "Reset a window mode"
XClear one of the following window modes.
XExcept where noted, these are the default settings.
XThe mode settings are more fully explained in
X.Fr m_setmode
X\&.
X.RS
X.IP \fBM_ABS\fP 0.5i
X.br
X.I Absolute
Xwindow coordinate mode is turned off.
XThe window is now in
X.I relative
Xwindow coordinates. 
XAll window coordinates range from
X.Fr "" 0 0
X in the upper left corner to
X.Fr "" 999 999
X at the lower right.
X.IP \fBM_ACTIVATE\fP 0.5i
X.br
XBury the window. Unlike the other window modes, 
X.I bury 
Xhas no state associated with it, just a one time action.
XA window is buried by visually pushing it to the 
Xbottom of the display;
Xany window intersecting it will appear in front of it.
X.IP \fBM_AUTOEXPOSE\fP 0.5i
X.br
XDo not automatically activate the window the next time it
Xreceives output.
X.IP \fBM_BACKGROUND\fP 0.5i
X.br
X\*M does not permit the window to update if it is partially or totally obscured.
XData destined for the window is held until the window is uncovered,
Xor
X.SM
X.B M_BACKGROUND
X.LG
Xis turned on.
X.IP \fBM_NOINPUT\fP 0.5i
X.br
XAccept keyboard input if the window is active.
X.IP \fBM_NOWRAP\fP 0.5i
X.br
XWrap the character cursor to the next line when it reaches the right margin
Xof the
X.I "text region" .
X.IP \fBM_OVERSTRIKE\fP 0.5i
X.br
XDo not overstrike characters.
XText is copied to the window as if
X.Fr m_func B_SRC
X is set.
X.IP \fBM_SNARFHARD\fP 0.5i
X.br
XThe system
X.I cut
Xfunction fails if any errors are found. 
XThis is indicated by flashing the window.
XThe contents of the
X.I cut
Xbuffer are left undisturbed.
XNormally this only happens if some process unknown to \*M scribbles into
Xthe region being cut.
X.IP \fBM_SNARFLINES\fP 0.5i
X.br
XSets
Xthe system
X.I cut
Xfunction to cut individual characters,
Xinstead of entire lines only.
X.IP \fBM_SNARFTABS\fP 0.5i
X.br
XThe system
X.I cut
Xfunction cuts text exactly as it appears on the window.
XAll interior white space is converted to 
X.I space s,
Xall trailing white space is treated as a
X.I "new line" .
X.IP \fBM_STACK\fP 0.5i
X.br
XEvent stacking is turned off.
XEvent strings are only returned for the current window context and
Xnot for any contexts stacked with
X.Fr m_push
X\&.
X.IP \fBM_STANDOUT\fP 0.5i
X.br
XCharacters are drawn in black with a white background.
X.IP \fBM_WOB\fP 0.5i
X.br
XThe window foreground color is set to
X.I black ,
Xand the window background is set color to
X.I white .
X.IP \fBM_DUPKEY\fP 0.5i
X.br
XThe keyboard escape character is turned off.
XThis mode is turned on by calling
X.Fr m_dupkey
X\&.
XThere is no corresponding call to
X.Fr m_setmode
X\&.
X.RE
X.Fe
X.Fh m_deletechar
X.Fs m_deletechar 3 "Delete a character"
XThe character at the cursor position is deleted.
XAny characters on the line to the right of the cursor are shifted
Xleft one character position.
XThe last character on the line is set to a
X.I space .
X.Fe
X.Fh m_deletechars n 
X.Fs m_deletechars 3 "Delete characters"
XThe next
X.Fi n
Xcharacters are deleted, starting at the character cursor position.
XAny characters on the line to the right of the cursor are shifted
Xleft 
X.Fi n
Xcharacter positions.
XThe last 
X.Fi n
Xcharacters on the line are set to 
X.I space .
X.Fe
X.Fh m_deleteline
X.Fs m_deleteline 3 "Delete a line"
XThe line at the cursor position is deleted.
XAny lines below the cursor are shifted
Xup one line.
XThe last line is cleared.
X.Fe
X.Fh m_deletelines n 
X.Fs m_deletelines 3 "Delete lines"
XThe next
X.Fi n
Xlines starting at the cursor position and toward the bottom 
Xof the window are deleted.
XAny lines below the deleted ones are shifted
Xup 
X.Fi n
Xlines.
XThe last 
X.Fi n
Xlines are cleared.
XIt is more efficient to make one call to
X.Fr m_deletelines
X than to call
X.Fr m_deleteline
X.Fi n
Xtimes.
X.Fe
X.Fh m_destroywin n 
X.Fs m_destroywin 11 "Destroy an alternate window"
XDestroy alternate window
X.Fi  n ,
Xcreated by calling
X.Fr m_newwin
X\&.
XIf output is currently directed to this window,
Xit is automatically re-directed to the
X.I main
Xwindow.
XSee also
X.Fr m_selectwin
X\&.
X.Fe
X.Fh m_down n 
X.Fs m_down 13 "Move character cursor down by tenths of a character height"
XMove the character cursor down 
X.Fi n
Xtenths of a character height.  This may cause the window to scroll.
XSee also
X.Fr m_left
X.Fr m_right
Xand
X.Fr  m_up
X\&.
X.Fe
X.Fh m_draw x  y 
X.Fs m_draw 4 "Draw a line from the graphics point"
XDraw a line from current
X.I "graphics point"
Xto
X.Fr ""  x y
X\&.
XThe macro
X.Fr m_go
X is used to move the
X.I "graphics point" .
XThe
X.I "graphics point"
Xis left at
X.Fr "" x y
X, the end point of the line.
X.Fe
X.Fh m_dupkey char 
X.Fs m_dupkey 6 "Turn on keyboard escape mechanism"
XEvery time the character
X.Fi char
Xis typed at the keyboard for this window,
Xit is sent to the client program twice.
XThis enables clients to reliably distinguish
Xkeyboard input from that generated by menu selections or events
Xby starting every
X.I event
Xand
X.I menu
Xstring with a two character code
Xwhose first character is
X.Fi char
Xand whose second character is anything but
X.Fi char .
X.Fe
X.Fh m_ellipse x  y  radius1 radius2 
X.Fs m_ellipse 4 "Draw an ellipse"
XDraw an ellipse centered at
X.Fr "" x y
X\&.
XThe values for
X.Fi radius1
Xand
X.Fi radius2
Xare the major and minor axis radii.
XThe ellipse is either
Xset, cleared or inverted
Xdetermined by the last call to
X.Fr m_func
X\&.
XThe values for
X.Fi radius1
Xand
X.Fi radius2
Xare scaled based upon the average
Xwidth and height of the window.
X.Fe
X.Fh m_ellipseto to  x  y  radius1 radius2 
X.Fs m_ellipseto 4 "Draw an ellipse on a scratchpad bitmap"
XDraw an ellipse on scratchpad bitmap
X.Fi to
Xcentered at
X.Fr "" x y
X where
X.Fi radius1 , radius2
Xare the major and minor axis radii.
XThe ellipse is either
Xset, cleared or inverted
Xdetermined by the last call to
X.Fr m_func
X\&.
XThe values for
X.Fi radius1
Xand
X.Fi radius2
Xare scaled based upon the average
X.Fi width
Xand
X.Fi height
Xof the window.
XIf the offscreen bitmap
X.Fi to
Xdoes not exist, 
Xthis call is ignored.
X.Fe
X.Fh m_fastdraw x y count data
X.Fs m_fastdraw 4 "Draw a group of fast vectors"
XThe next
X.Fi count
Xbytes of
X.Fi data
Xare sent to \*M are to be interpreted as lines drawn in
X.I "fast draw"
Xmode,
Xstarting at
X.Fr "" x y
X\&.
X.I "Fast draw"
Xmode permits the rapid drawing of short vectors
Xby encoding an 
X.I x,y
Xdisplacement location in a single byte.
XThe 
X.I x
Xcoordinate is contained in the most significant
X4 bits, the
X.I y
Xcoordinate in the least significant 4 bits.
XValues for
X.I x
Xand
X.I y
Xrepresent displacements from the previous location, and
Xrange from +7 to -8.
XA 7 is coded as 
X.B 0xff ,
Xa -8 as
X.B 0x00 .
XIf both 
X.I x
Xand
X.I y
Xare zero (i.e.
X.B 0x8080 ).
XThe next coordinate is taken to be a
X.I move
Xinstead of a
X.I draw.
XAn eight bit channel between \*M and the client program is required for
X.I "fast draw"
Xmode.
XSee also
X.Fr m_rfastdraw
X\&.
X.fe
X.Fh m_fcolor color
X.Fs m_fcolor 14 "Set the text foreground color"
XThe foreground color for text operations is set to
X.Fi color
X,
Xwhich is an index into the color lookup table.
XThis command is ignored on a monochrome display.
XSee also 
X.Fr m_bcolor
Xand
X.Fr m_linecolor
X\&.
X.Fe
X.Fh m_flush
X.Fs m_flush 1 "Flush any outpout pending for the window"
XFlush the \*M output buffer.
XThis is equivalent to the stdio function
X.B fflush()
Xand is needed only when the
X.SM
X.Fi M_FLUSH
X.LG
Xflag is
X.I not
Xspecified in the call to 
X.Fr m_setup
X\&.
X.Fe
END_OF_FILE
# end of 'doc/usrman/doc.2'
fi
if test -f 'font-32/Ushadow38x40b' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'font-32/Ushadow38x40b'\"
else
echo shar: Extracting \"'font-32/Ushadow38x40b'\" \(19445 characters\)
sed "s/^X//" >'font-32/Ushadow38x40b' <<'END_OF_FILE'
Xbegin 644 shadow38x40b.fnt
XM&"8H"$H7        !       "                                   
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM      P      #P                                             
XM '_@   !^/P                            'X                   
XM                                    '__P   !_@   /__   #__P 
XM #^#_   ?_^     _P  !___P  /__   '__X                       
XM                        !__^  #___@ !___P  ?__   #___@  ___X
XM  ?__\  #_C_@ !_X      ?X  #_C_@  _X    /^ /^ #_@_X !___\  /
XM__^  '___   ___X   __\  '___   _X_X  ?@ _  '_ '_ !_@/\  ?P!_
XM  '___   __          #_\                 P       0!    <    
XM  !^                                              # (    PF$
XM                            #"                              
XM                         #  $   !P(   &  0  !@ $  !@A@0  ,  
XM@    8,   P  $  &  0  #  "                                  
XM              X  @ !@  (  P  $  ,  0  !@  (  8  "  ,  !  !@)
XM@(  P"      ,"  !@)@(  8"    & P& @!@,8"  P  !  &   @ #   0 
XM 8  "   0 !  #   0  8"8"  ,( 80 # 0# 0 P(&!  ,$ P0 #   0  8 
XM0         !@!                 >       , X   -       ^P      
XM                                       !P"    <+A           
XM                 !P@                                        
XM              !P !   !P"   #@ $   X !   X(X$  '  (    ,&   <
XM  !  #@ $  !P  @                                            
XM   >  (  X  "  <  !  '  &   X  "  .   @ '   0  X"X"  < @    
XM ' @  X"X"  . @   #@$# ( X!. @ <   0 #@  ( !P  $  .   @  (  
XM0 !P  $  . N @ '# .$ !P$!P$ >"#@P 'A@<, !P  $  . $          
XMX 0                ,@      ' ?   &0      /F                 
XM                             \ @   /#X0                     
XM       \(                                                   
XM    \  0  !P @  !X !   >  0  >">!  #P "    &#   /   0 !X !  
XM \  (                                               /  "  > 
XM  @ /   0 #P  @  >   @ '@  ( #P  $  > ^ @ / (     #P(  > ^ @
XM '@(   !X!AP" > ?@( /   $ !X  "  \  !  '@  (  $  $  \  !  '@
XM/@( #P0'!  \! \! /@QX( #X(."  \  !  '@!          > $        
XM        &(      #0/8  #$      #XP                           
XM                  ? (   'P^$                            ?"  
XM                                                     ?  $   
XMP (   ^  0  /_^$  /@O@0 !\  @   #!@  'P  $  ^'X0  ?#_"      
XM                                         'P  @ /@  ( 'P  $ !
XM\  ,  /@  ( #X  " !\  !  /@/@( 'P"     !\"  /@/@( #X"    ^ (
XMX @/@#X" 'P  !  ^   @ ?   0 #X  "  "  !  ?   0 #X#X" !^$#PP 
XM? 0? 0'\$\& !_#'A@ ?   0 #X 0         /@!                #& 
XM     !D'S  !A       ^&                                      
XM       'P"   !\/A    /GP                     'X@            
XM                                          'P_A   < "   /C^$ 
XM #__A  #X+X$  ?#_X   !@P  !\  !  /A^$  'P_P@                
XM                              #X  ( 'X  " !\  !  ?  !  'X  "
XM !^   @ ?   0 'X#X" !\ @     ? @ 'X#X" !^ @   ?@#> ('X ^ @!\
XM   0 ?@  ( 'P  $ !^   @ !   0 'P  $ !^ ^ @ ?A@\( 'P$'P$!_!O!
XM  ?P1P0 'P  $ !^ $         #X 0               !C       Q!\8 
XM P0      /@P                                            !\ @
XM   ?#X0   &+$                     !^(                       
XM !_                            !\/X0  /# @  #__A   __X0  ^"^
XM!  'P_\    P8   ?__@0 #X?A  !\/\(                           
XM                   !^#X" !^ ^ @ ? _@0 'P/X8 !^ __@ ?@/_X 'P/
XMX$ !^ ^ @ ? (     'P( !^ ^ @ ?@(   'X ? "!^ '@( ?   $ 'X#\" 
XM!\  !  ?@/@(  P  $ !\  !  ?@/@( 'X(>" !\!!\! ?X+@P '^&\, !__
XM^!  ?A_          _^$                XP      80?#  8'__@ !__X
XM&                                             ? (   'Y_,   #
XMCQ                      ?$                         P0       
XM                     ?#^$  'SP(   __X0  /_^$  /@O@0 !\/^    
XM8,   '__X,  ^'X0  ?#_"                                      
XM         _ ^ @ ?@/@( 'P/X$ !\#^"  ?@/_P 'X#_\ !\#^!  ?@/@( '
XMP"     !\"  ?@/ 8 'X"   !^ 'P @?@!X" 'P/^! !^ _ @ ? _@0 'X#X
XM"  <#__  ?   0 'X#X" !_"'A@ ? 0? 0#^#X(  _@N"  ?__ 0 'X?@   
XM      /_A                >$      ,$'P8 ,   (  P   P         
XM                                   'P"   !^?R   !X\>        
XM             'B                         <$                  
XM          'P_A  !_\"   /_^$    /A  #X+X$  ?#_    ,&   !__\" 
XM /A^$  'P_P@                                              ?P
XM/@( 'X#X" !\#^#  ? _@P 'X#_X !^ _^  ? _@P 'X#X" !\ @     ? @
XM 'X#@, !^ @   ?@ X ('X . @!\#_@0 ?@/P( 'P/X$ !^ ^ @ / __@ 'P
XM  $ !^ ^ @ ?PQX0 'P$'P$ _P<&  /\/A@ '__@$ !^'P         #_X0 
XM              /A      &!_\# &   "  \   &                    
XM                        !^!@   ?__@   P  @                  
XM  !Y                         /!                            !
XM\/X0  ?_ @  #__A    #X0  ^#^!  'P_@   &#    ?__!@ #X?A  !\)\
XM(                                              'X#X" !^ ^ @ 
XM? _G@ 'P+\$ !^ _\  ?@/_  'P/Y\ !^ ^ @ ? (     'P( !^ P&  ?@(
XM   'X . "!^ #@( ? _X$ 'X#\" !\#^!  ?@/@( 'P/_P !_\!_  ?@/@( 
XM#\$\$ !\!!\! '\'!  !_!P0 !__P"  ?AX          _^$            
XM   #X0     #    8#    @ ?    @                              
XM              ?@0   '^_P   <  (                     ?@      
XM                  'P0                            ?"^$  '_P( 
XM  ^ 80   _\,  /@  0 !\ ,   #!@   '__@0  _  P  ?#_"          
XM                                    !^ ^ @ ?@/@P 'P/_P !\"_!
XM@ ?@/^  'X#_@ !\#_^  ?@/@( 'P"     !\"  ?@(#  'X"   !^ !  @?
XM@ 8" 'P/^! !^ _ @ ? _@0 'X#X" !\#__  ?_ ?@ 'X#X"  _A/#  ? 0?
XM 0!_@@P  ?X<,  ?_X!  'X<          /_A                ^$     
XM!@   #!P   ( 'P   (                                         
XM   'X$   !_O\   /  "                     /P                 
XM       !\$                            'POA  !]\"     ,$   8 
XM&  #X  $  ? !@  !PP     !X,  /X 8  'X  @                    
XM                          ?@  ( 'X  8 !\"?X  ? OP( 'X $  !^ 
XM!   ? __@ 'X  " !\ @     ? @ 'X !@ !^ @   ?@( @('X"" @!\#_@0
XM ?@/P( 'P/X$ !^ ^ @ ?   0 '_P'P !^ ^ @ /X;P@ 'P$/P$ /X (  #^
XM "    \ @ !^$           !X0               /_      P    0\   
XM" !\   "                                            !^!    /
XMQ^   'P  @                    #X                        !_!_
XM                           !\+X0  <? @    &!   . '   ^  !  '
XMP ,   \/^     <"  #_@<  !_  (  !^                           
XM               'X  " !^  (  ? G\  'P+\" !^ !   ?@ 0  'P/_\ !
XM^   @ ? (     'P( !^  P  ?@(   'X# 8"!^ P ( ? CX$ 'X#X" !\".
XM!  ?@  ( 'P  $ !_\!X  ?@/@( !_#X( !\!'\! #_ &   _P!@   > 0  
XM?A            >$               #_@     <    $?@   @ ?   !@  
XM                                          ?@0   #X?   !_CQX 
XM                    \                         P  0          
XM                 ?"^$   'P(    # P  '@ X  /@  0 !\ !@  ?  P 
XM   /!@  _P#@  ?X "   P@                                     
XM    !^   @ ?@ #@ 'P)^  !\"_ @ ?@ 0  'X $  !\#@!  ?@  ( 'P"  
XM   !\"  ?@ (  'X"   !^ P& @?@. " 'P(^! !^ X @ ? C@0 'X  " !\
XM  !  ?_ <  'X#X"  ?P^&  ? 3/ 0 ?P!   '\ 0   / (  'X0        
XM   'A                _P     /    !'\   ( 'P   P             
XM                               #X$    <#@   ?X\<            
XM         .                         <  $                     
XM      'POA   !\"    !@8  #X #  #__X$  ?_\,  'P &    #@0  /P 
XM,  '_  @  <(                                          ?@  ( 
XM'X  , !\"<   ? OP( 'X $  !^ !   ? X 0 'X  " !\ @     ? @ 'X 
XM#  !^ @   ?@.#@('X#@ @!\"/@0 ?@  ( 'P(X$ !^   @ ?   0  'P$  
XM!^ ^ @ '\/A  'P%AP$ '\ 0  !_@,   '@$  !^$           !X0     
XM          /X     'X    Q_@?_^ !___@8                        
XM                     ^!    & P   '^/&                       
XM                        /  !                           !\+X0
XM   ? @    P,   __P(  __^!  '__!  !\  P   !X,  !P  @ !__\(  /
XM"     _@                                   'X  " !^   @ ? @ 
XM  'P)\" !^ !   ?@ 0  'P. $ !^   @ ? (    ?WP( !^  8  ?@(   '
XMX#@X"!^ \ ( ? CX$ 'X  > !\".!  ?@  ( 'P  $  !\!   ?@/@(  _!P
XM0 !\!P,!  _ &   /X"   #P"   ?A            >$               #
XM\     !_    8?\'__  ?__X,                                   
XM          /PP         !_CQX                                 
XM             'P  0                           ?"^$   'P(    8
XM&   /_^"  /__@0 !__P0  ?  &    <"   ,  (  /__"  'P@    ,(   
XM                                !^ ^ @ ?@/P( 'P(   !\"? @ ?@
XM/P  'X#\  !\#@!  ?@/@( 'P"    ,%\"  ?@(#  'X"   !^ \> @?@/ "
XM 'P(^! !^  ?  ? C@0 'X  " !\  !   ? 0  'X#X"  /X<,  ? 8! 0 /
XM@ @  #^ @  !X!   'X0           'A                       ?X'_
XMP,'_A__@ '__^&                                             #
XM\(          ?  "                                            
XM  !\  $                           'POA   !\"    ,#   #__@@ #
XM__X$  ?_\$  'P_P@   /!@  '#_"  !__@@ !_X    '"              
XM                      ?@/@( 'X#\" !\"#_  ? GP( 'X#X  !^ \   
XM? X 0 'X#X" !\ @   '!? @ 'X# 8 !^ @   ?@/'@('X#X @!\"/@0 ?@ 
XM?@ 'P(X$ !^ @/@ ?__@0  'P$  !^ ^ @ #^'"  'P   $ !X(,   ?@(  
XM \ @  !^$           !X0                      '_!_\& _\?_P !_
XM__C                                              _"         
XM !P  @                                              ?_!_    
XM                       !\+X0   ? @   &!@   __X(  __^!  '__! 
XM !\/\(   #@0  #P_P@  /_P8  ?\    #P@                        
XM           'X#X" !^ _ @ ? A@0 'P)\" !^ ^   ?@.   'P/X$ !^ ^ 
XM@ ? (   #P7P( !^ X#  ?@(   'X#[X"!^ N ( ? CX$ 'X ?P !\".!  ?
XM@,!P '__X$  !\!   ?@/@(  ?@@@ !\   !  <'!   'X"   > 0   ?A  
XM          >$                      !_X?_# '_G_X  ?__Y@       
XM                                      /P@          \  (     
XM                                         '_P?@              
XM             ?"^$   'P(   # P     ^"    /@0   'P0  ?#_"   !X
XM,  !\/\(  !_X,  '^    !\(                                   
XM!^ ^ @ ?@/P( 'P(X$ !\"? @ ?@/   'X#   !\#^!  ?@/@( 'P"   !\%
XM\"  ?@/ 8 'X"   !^ ^^ @?@+P" 'P(^! !^ _P  ? C@8 'X#@( !__^! 
XM  ? 0  'X#X"  '\(8  ?    0 /!P8   ^ @  / (   'X0           '
XMA                       /_'_Q@ _]       ^P                  
XM                           #\(          ?  "                
XM                              !_\'P                         
XM  'POA   !\"   !@8     /@@   #X$  !_\$  'P_P@   <"   ?#_"   
XM ,&  !_     ?^                                    ?@/@( 'X#\
XM" !\#^!  ? GP( 'X#_^ !^ @   ? _@0 'X#X" !\ @   ?!_ @ 'X#X" !
XM^ __@ ?@/_@('X"\ @!\#_@0 ?@/P  'P/X#P!^ \!@ ?__@0  'P$  !^  
XM @ !_ $  'P   $ #@^"   /@(  'P$   !^$           !X0         
XM             !_Y_\P '_P      /X                             
XM                 ?"          '^/'@                          
XM                    ?_!X                           !\+X0   ?
XM @   P'_    #X(    ^!   P_!  !\/\(   /!@  'P_P@   &#   ?^   
XM '_                                    'X#X" !^   @ ?   0 'P
XM/\" !^   @ ?@(   'P  $ !^ ^ @ ? (   'P  ( !^ ^ @ ?@  ( 'X#_X
XM"!^ O@( ?   $ 'X#P  !\   $ ?@/@( 'P  $  !\!   ?@  (  /P!  !\
XM " ! !X/@P  #X"  !\#__  ?A_          #^$                    
XM   /_0?8  _\      #\                                        
XM      '_@         !_CQP                                     
XM         '_P<                            ?#^$   /P/P  <  0  
XM  ^"    ?@>  <  0  ?"?"   #@0  !\)\(   #!@   P@   !_@       
XM                            !^ ^ @ ?@  ( 'P  $ !\   @ ?@  ( 
XM'X"   !\  !  ?@/@( 'P"   !\  "  ?@/@( 'X  " !^ ]^ @?@+X" 'P 
XM ! !^ X   ?   ! 'X#X"  $  !   ? 0  'X  "  #^ P  ? !P @ <'\$ 
XM  ^ @  ?   0 'X 0         !@!                       !_\'\  '
XM_       ^                                              !_P  
XM        ?X\8                                               !
XM\$                            'P !   &  $  /  $   ?_@@   /  
XM@ /  $  'P_P@  !X,   ?#_"   !@P   <(    ?P                  
XM                  ?@/@( 'X  " !\  !  ?   ( 'X  " !^ @   ?   
XM0 'X#X" !\ @   ?   @ 'X#X" !^   @ ?@.?@('X"^ @!\   0 ?@,   '
XMP   0!^ ^ @ #   0  'P$  !^   @  _@(  'P ^ 0 /!_!@  /@(  'P  
XM$ !^ $          X 0                       /_!^   _@      /  
XM                                             ?X          '__
XM\                                                ?_    ?@   
XM                   !\  0  #@ !  'P !   ,  (   'P ( 'P !  !\ 
XM (   <"   'P  @   P8   /"    '_@                            
XM       'X#X" !^   @ ?   0 'P  " !^   @ ?@(   'P  $ !^ ^ @ ? 
XM(   'X  8 !^ ^ @ ?@  ( 'X#'X"!^ O@( ?   $ 'X"   !\  ($ ?@/@(
XM !P  (  !\!   ?@  (  'X"  !\ ?P( #@_X(  #X"  !\  !  ?@!     
XM     > $                       !_P?   'P      #             
XM                                  '\          !__^          
XM                                      '_@   ,(              
XM         ?  $  !X  0 !\  0  '  "   !\ " !\  0  ?  "   /!@  !
XM\  (   8,   'P@    ,(                                   !^ ^
XM @ ?@  ( 'P  $ !\   @ ?@  ( 'X"   !\ !!  ?@/@( 'P"   !_  ,  
XM?@/@( 'X  " !^ A^ @?@+X" 'P  ! !^ @   ?  #! 'X#X"  \  &   ? 
XM0  'X  "  !_!@  ? /^$ !X+^#   ^ @  ?   0 'X 0         /@!   
XM                     /X'@   X                               
XM                       !_X          #]_                     
XM                           !_P   '"           'X          'P
XM !   ^  $  ?  $  #P  @   ?  @ ?  $  'P  @  #P0   ?  "   ,&  
XM !_X    '"                                    ?@/@( 'X  " !\
XM  !  ?   ( 'X  " !^ @   ? !P0 'X#X" !\ @   ?X &  'X#X" !^   
XM@ ?@(?@('X"^ @!\   0 ?@(   'P !X0!^ ^ @ ?  #   'P$  !^   @  
XM?P0  'P&_R  <"_@0  /@(  'P  $ !^ $         #X 0             
XM          !\!P   $                                          
XM             #"           ^?@                               
XM                 ?X   #P@          #"          !___P  /___  
XM'___  !___X   '__X '___  !___X  !_\   '___@  '_    ?\    #P@
XM                                   '___^ !____@ ?___P '___^ 
XM!____@ ?_X   '___\ !____@ ?_X   '___  !____@ ?___X '_^'_^!__
XMO_X ?___\ '_^   !____\ ?___X '___P  !__   ?___X  #_\  !__'_ 
XM /_G_\  #_^  !____  ?__          __\                        
XM. 8                                                         
XM  !P@          /'P                                          
XM      '\   !\(          !P@          ?__X  #___@ !___@  ?__\
XM   !__\ !___@  ?__\   ?^   !___P  #_@   '^    !\(           
XM                        !____  ?___P '___X !____  ?___P '_\ 
XM  !___^  ?___P '_\   !___@  ?_O_P '___\ !__!__ ?_S_\ '___^ !
XM__    ?___^ '___\ !___X   ?_@  '___\   _^   ?_@_@ #_Q_^   __
XM   ?___@ '__@         /_^                        ! $        
XM                                                    \(      
XM                                                            
XM ?B           \(          '__\   ___P  ?__P  '__^    ?_^  ?_
XM_P  '__^   '_    ?__X  !_P   !_     ?B                      
XM              ?_O_@ '___X !___\  ?___@ '___X !_^    ?___  '_
XM[_X !_^    /__P  '_S_X !___^  ?_@?_@'_X_^ !____  ?_@   '__[_
XM !_^_^  ?__^   '_P  !___^   /_   '_P'P !_X/_   /_@  '___P !_
XM_P         #__                                              
XM                                         ?"                 
XM                                                  'X@       
XM   ?"          !__^   /__X  '__X  !___    '__  '__X  !___   
XM!_@   '__\   _X    ?@    'X@                                
XM   '_S_P !___\  ?__^  '___P !___\  ?_    '__?@ !_\_\  ?_    
XM!__X  !_X_\  ?___  '_P'_P!_\/_  ?___@ '_P   !__^?@ ?_/_  '__
XM_   !_X   ?___   !_@  !_X X  ?\#_@  #_P  !___X  ?_X         
XM __@                                                        
XM                              '_@                           
XM                                       !\0          '_@     
XM     ?__   #__\  !__\   ?__@   !__@ !__\   ?__@   ?P   !__^ 
XM  ?\          !\0                                   !_X_X  ?
XM__^  '___  !___X  ?__^  '_@   !__'P  ?^/^  '_@    /_\       
XM  '___@ !_X!_X ?^#_@ '___P !_X    ?__#P '_C_@ !___P   ?\   '
XM___@   ?P   ?\ $  '^ _P   _X   ?__\  '_\          /_P       
XM                                                            
XM                   !_P                                      
XM                             >(          !_P                
XM                                                            
XM    >(                                                      
XM                                                          ?\
XM ?\                                                         
XM                                                            
XM                                                            
XM         ?X                                                 
XM                  'D           ?X                           
XM                                                     'D     
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                          '\
XM                                                            
XM       !^           '\                                      
XM                                          !^                
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                               !^           
XM                                                         _  
XM         !^                                                 
XM                                _                           
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                              /@            
XM                                                            
XM                     /@                                     
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                   #P                       
XM                                                            
XM          #P                                                
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                                                            
XM                         X                                  
XM                                                            
XMX                                                           
XM                                                            
XM                                                            
XM                                                            
X!    
X 
Xend
END_OF_FILE
# end of 'font-32/Ushadow38x40b'
fi
echo shar: End of archive 40 \(of 61\).
cp /dev/null ark40isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
	21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 \
	38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 \
	55 56 57 58 59 60 61 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 61 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.