cut out the html - they're going to cause diffing problems.

This commit is contained in:
rsc 2005-01-14 17:37:50 +00:00
parent 1ac1981659
commit adc93f6097
262 changed files with 82 additions and 44564 deletions

View file

@ -9,6 +9,7 @@ ms ms.7
plot plot.7
plumb plumb.7
regexp regexp.7
regexp9 regexp9.7
thumbprint thumbprint.7
ASCII utf.7
UTF utf.7

View file

@ -1,169 +0,0 @@
<head>
<title>color(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>COLOR(7)</b><td align=right><b>COLOR(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
color &ndash; representation of pixels and colors<br>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
To address problems of consistency and portability among applications,
Plan 9 uses a fixed color map, called <tt><font size=+1>rgbv</font></tt>, on 8-bit-per-pixel
displays. Although this avoids problems caused by multiplexing
color maps between applications, it requires that the color map
chosen be suitable for most purposes and usable for
all. Other systems that use fixed color maps tend to sample the
color cube uniformly, which has advantages--mapping from a (red,
green, blue) triple to the color map and back again is easy--but
ignores an important property of the human visual system: eyes
are much more sensitive to small changes in intensity than
to changes in hue. Sampling the color cube uniformly gives a color
map with many different hues, but only a few shades of each. Continuous
tone images converted into such maps demonstrate conspicuous artifacts.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Rather than dice the color cube into subregions of size 6&#215;6&#215;6 (as
in Netscape Navigator) or 8&#215;8&#215;4 (as in previous releases of Plan
9), picking 1 color in each, the <tt><font size=+1>rgbv</font></tt> color map uses a 4&#215;4&#215;4 subdivision,
with 4 shades in each subcube. The idea is to reduce the color
resolution by dicing the color cube into fewer
cells, and to use the extra space to increase the intensity resolution.
This results in 16 grey shades (4 grey subcubes with 4 samples
in each), 13 shades of each primary and secondary color (3 subcubes
with 4 samples plus black) and a reasonable selection of colors
covering the rest of the color cube. The advantage is
better representation of continuous tones.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The following function computes the 256 3-byte entries in the
color map:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>void<br>
setmaprgbv(uchar cmap[256][3])<br>
{<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
uchar *c;<br>
int r, g, b, v;<br>
int num, den;<br>
int i, j;<br>
for(r=0,i=0; r!=4; r++)<br>
for(v=0; v!=4; v++,i+=16)<br>
for(g=0,j=v&#8722;r; g!=4; g++)<br>
for(b=0; b!=4; b++,j++){<br>
c = cmap[i+(j&amp;15)];<br>
den = r;<br>
if(g &gt; den)<br>
den = g;<br>
if(b &gt; den)<br>
den = b;<br>
if(den == 0) /* would divide check; pick grey shades */<br>
c[0] = c[1] = c[2] = 17*v;<br>
else{<br>
num = 17*(4*den+v);<br>
c[0] = r*num/den;<br>
c[1] = g*num/den;<br>
c[2] = b*num/den;<br>
}<br>
}<br>
</table>
}<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
There are 4 nested loops to pick the (red,green,blue) coordinates
of the subcube, and the value (intensity) within the subcube,
indexed by <tt><font size=+1>r</font></tt>, <tt><font size=+1>g</font></tt>, <tt><font size=+1>b</font></tt>, and <tt><font size=+1>v</font></tt>, whence the name <i>rgbv</i>. The peculiar
order in which the color map is indexed is designed to distribute
the grey shades uniformly through the map--the <i>i</i>&#8217;th grey
shade, 0&lt;=<i>i</i>&lt;=15 has index <i>i</i>x17, with black going to 0 and white to
255. Therefore, when a call to <tt><font size=+1>draw</font></tt> converts a 1, 2 or 4 bit-per-pixel
picture to 8 bits per pixel (which it does by replicating the
pixels&#8217; bits), the converted pixel values are the appropriate
grey shades.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>rgbv</font></tt> map is not gamma-corrected, for two reasons. First, photographic
film and television are both normally under-corrected, the former
by an accident of physics and the latter by NTSC&#8217;s design. Second,
we require extra color resolution at low intensities because of
the non-linear response and adaptation of
the human visual system. Properly gamma-corrected displays with
adequate low-intensity resolution pack the high-intensity parts
of the color cube with colors whose differences are almost imperceptible.
Either reason suggests concentrating the available intensities
at the low end of the range.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
On &#8216;true-color&#8217; displays with separate values for the red, green,
and blue components of a pixel, the values are chosen so 0 represents
no intensity (black) and the maximum value (255 for an 8-bit-per-color
display) represents full intensity (e.g., full red). Common display
depths are 24 bits per pixel, with 8 bits per
color in order red, green, blue, and 16 bits per pixel, with 5
bits of red, 6 bits of green, and 5 bits of blue.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Colors may also be created with an opacity factor called <tt><font size=+1>alpha</font></tt>,
which is scaled so 0 represents fully transparent and 255 represents
opaque color. The alpha is <i>premultiplied</i> into the other channels,
as described in the paper by Porter and Duff cited in <a href="../man3/draw.html"><i>draw</i>(3)</a>.
The function <tt><font size=+1>setalpha</font></tt> (see <a href="../man3/allocimage.html"><i>allocimage</i>(3)</a>) aids the
initialization of color values with non-trivial alpha.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The packing of pixels into bytes and words is odd. For compatibility
with VGA frame buffers, the bits within a pixel byte are in big-endian
order (leftmost pixel is most significant bits in byte), while
bytes within a pixel are packed in little-endian order. Pixels
are stored in contiguous bytes. This results in unintuitive
pixel formats. For example, for the RGB24 format, the byte ordering
is blue, green, red.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
To maintain a constant external representation, the <a href="../man3/draw.html"><i>draw</i>(3)</a> interface
as well as the various graphics libraries represent colors by
32-bit numbers, as described in <a href="../man3/color.html"><i>color</i>(3)</a>.<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man3/color.html"><i>color</i>(3)</a>, <a href="../man3/graphics.html"><i>graphics</i>(3)</a>, <a href="../man3/draw.html"><i>draw</i>(3)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,127 +0,0 @@
<head>
<title>face(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>FACE(7)</b><td align=right><b>FACE(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
face &ndash; face files<br>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The directories <tt><font size=+1>/usr/$user/lib/face</font></tt> and <tt><font size=+1>/lib/face</font></tt> contain a hierarchy
of images of people. In those directories are subdirectories named
by the sizes of the corresponding image files: <tt><font size=+1>48x48x1</font></tt> (48 by
48 pixels, one bit per pixel); <tt><font size=+1>48x48x2</font></tt> (48 by 48 pixels, two (grey)
bits per pixel); <tt><font size=+1>48x48x4</font></tt> (48 by 48
pixels, four (grey) bits per pixel); <tt><font size=+1>48x48x8</font></tt> (48 by 48 pixels,
eight (color-mapped) bits per pixel); <tt><font size=+1>512x512x8</font></tt> (512 by 512 pixels,
eight (color-mapped) bits per pixel); <tt><font size=+1>512x512x24</font></tt> (512 by 512 pixels,
twenty-four bits per pixel (3 times 8 bits per color)). The large
files serve no special purpose; they are stored as
images (see <a href="../man7/image.html"><i>image</i>(7)</a>). The small files are the &#8216;icons&#8217; displayed
by <tt><font size=+1>faces</font></tt> and <tt><font size=+1>seemail</font></tt> (see Plan 9&#8217;s <i>faces</i>(1)); for depths less
than 4, their format is special.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
One- and two-bit deep icons are stored as text, one line of the
file to one scan line of display. Each line is divided into 8-bit,
16-bit, or 32-bit big-endian words, stored as a list of comma-separated
hexadecimal C constants, such as:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>0x9200, 0x1bb0, 0x003e,<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
This odd format is historical and the programs that read it are
somewhat forgiving about blanks and the need for commas.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The files <tt><font size=+1>lib/face/*/.dict</font></tt> hold a correspondence between users
at machines and face files. The format is<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>machine</i>/<i>user directory</i>/<i>file</i>.<i>ver <br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
</table>
The <i>machine</i> is the domain name of the machine sending the message,
and <i>user</i> the name of the user sending it. The <i>directory</i> is a further
subdirectory of (say) <tt><font size=+1>/lib/face/48x48x1</font></tt>, named by a single letter
corresponding to the first character of the user names. The <i>file</i>
is the name of the file, typically but not
always the user name, and <i>ver</i> is a number to distinguish different
images, for example to distinguish the image for Bill Gates from
the image for Bill Joy, both of which might otherwise be called
<tt><font size=+1>b/bill</font></tt>. For example, Bill Gates might be represented by the line<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>microsoft.com/bill b/bill.1<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
If multiple entries exist for a user in the various <tt><font size=+1>.dict</font></tt> files,
<i>faces</i> chooses the highest pixel size less than or equal to that
of the display on which it is running.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Finally, or rather firstly, the file <tt><font size=+1>/lib/face/.machinelist</font></tt> contains
a list of machine/domain pairs, one per line, to map any of a
set of machines to a single domain name to be looked up in the
<tt><font size=+1>.dict</font></tt> files. The machine name may be a regular expression, so
for example the entry<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>.*research\.bell&#8722;labs\.com &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;astro<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
maps any of the machines in Bell Labs Research into the shorthand
name <tt><font size=+1>astro</font></tt>, which then appears as a domain name in the <tt><font size=+1>.dict</font></tt> files.<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man1/mail.html"><i>mail</i>(1)</a>, <a href="../man1/tweak.html"><i>tweak</i>(1)</a>, <a href="../man7/image.html"><i>image</i>(7)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,101 +0,0 @@
<head>
<title>font(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>FONT(7)</b><td align=right><b>FONT(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
font, subfont &ndash; external format for fonts and subfonts<br>
</table>
<p><font size=+1><b>SYNOPSIS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>#include &lt;draw.h&gt;<br>
</font></tt>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Fonts and subfonts are described in <a href="../man3/cachechars.html"><i>cachechars</i>(3)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
External fonts are described by a plain text file that can be
read using <i>openfont</i>. The format of the file is a header followed
by any number of subfont range specifications. The header contains
two numbers: the height and the ascent, both in pixels. The height
is the inter-line spacing and the ascent is the distance from
the top of the line to the baseline. These numbers are chosen
to display consistently all the subfonts of the font. A subfont
range specification contains two or three numbers and a file name.
The numbers are the inclusive range of characters covered by the
subfont, with an optional starting position within the subfont,
and the file name names an external file suitable for <i>readsubfont</i>
(see <a href="../man3/graphics.html"><i>graphics</i>(3)</a>). The minimum number of a covered range is mapped
to the specified starting position (default zero) of the corresponding
subfont. If the subfont file name does not begin with a slash,
it is taken relative to the directory containing the
font file. Each field must be followed by some white space. Each
numeric field may be C-format decimal, octal, or hexadecimal.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
External subfonts are represented in a more rigid format that
can be read and written using <i>readsubfont</i> and <i>writesubfont</i> (see
<a href="../man3/subfont.html"><i>subfont</i>(3)</a>). The format for subfont files is: an image containing
character glyphs, followed by a subfont header, followed by character
information. The image has the format for external image
files described in <a href="../man7/image.html"><i>image</i>(7)</a>. The subfont header has 3 decimal
strings: <tt><font size=+1>n</font></tt>, <tt><font size=+1>height</font></tt>, and <tt><font size=+1>ascent</font></tt>. Each number is right-justified
and blank padded in 11 characters, followed by a blank. The character
<tt><font size=+1>info</font></tt> consists of <tt><font size=+1>n</font></tt>+1 6-byte entries, each giving the <tt><font size=+1>Fontchar
x</font></tt> (2 bytes, low order byte first), <tt><font size=+1>top</font></tt>, <tt><font size=+1>bottom</font></tt>,
<tt><font size=+1>left</font></tt>, and <tt><font size=+1>width</font></tt>. The <tt><font size=+1>x</font></tt> field of the last <tt><font size=+1>Fontchar</font></tt> is used to calculate
the image width of the previous character; the other fields in
the last <tt><font size=+1>Fontchar</font></tt> are irrelevant.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Note that the convention of using the character with value zero
(NUL) to represent characters of zero width (see <a href="../man3/draw.html"><i>draw</i>(3)</a>) means
that fonts should have, as their zeroth character, one with non-zero
width.<br>
</table>
<p><font size=+1><b>FILES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>/usr/local/plan9/font/*</font></tt>&nbsp;&nbsp;&nbsp;font directories<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man3/graphics.html"><i>graphics</i>(3)</a>, <a href="../man3/draw.html"><i>draw</i>(3)</a>, <a href="../man3/cachechars.html"><i>cachechars</i>(3)</a>, <a href="../man3/subfont.html"><i>subfont</i>(3)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,175 +0,0 @@
<head>
<title>image(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>IMAGE(7)</b><td align=right><b>IMAGE(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
image &ndash; external format for images<br>
</table>
<p><font size=+1><b>SYNOPSIS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>#include &lt;draw.h&gt;<br>
</font></tt>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Images are described in <a href="../man3/graphics.html"><i>graphics</i>(3)</a>, and the definition of pixel
values is in <a href="../man7/color.html"><i>color</i>(7)</a>. Fonts and images are stored in external
files in machine-independent formats.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Image files are read and written using <tt><font size=+1>readimage</font></tt> and <tt><font size=+1>writeimage</font></tt>
(see <a href="../man3/allocimage.html"><i>allocimage</i>(3)</a>),<i>or</i> <tt><font size=+1>readmemimage</font></tt> and <tt><font size=+1>writememimage</font></tt> (see <a href="../man3/memdraw.html"><i>memdraw</i>(3)</a>).
An uncompressed image file starts with 5 strings: <tt><font size=+1>chan</font></tt>, <tt><font size=+1>r.min.x</font></tt>,
<tt><font size=+1>r.min.y</font></tt>, <tt><font size=+1>r.max.x</font></tt>, and <tt><font size=+1>r.max.y</font></tt>. Each is right-justified and blank
padded in 11
characters, followed by a blank. The <tt><font size=+1>chan</font></tt> value is a textual string
describing the pixel format (see <tt><font size=+1>strtochan</font></tt> in <a href="../man3/graphics.html"><i>graphics</i>(3)</a> and
the discussion of channel descriptors below), and the rectangle
coordinates are decimal strings. The rest of the file contains
the <tt><font size=+1>r.max.y&#8722;r.min.y</font></tt> rows of pixel data. A <i>row</i> consists
of the byte containing pixel <tt><font size=+1>r.min.x</font></tt> and all the bytes up to and
including the byte containing pixel <tt><font size=+1>r.max.x</font></tt>-1. For images with
depth <i>d</i> less than eight, a pixel with x-coordinate = <i>x</i> will appear
as <i>d</i> contiguous bits in a byte, with the pixel&#8217;s high order bit
starting at the byte&#8217;s bit number <i>w</i>&#215;(<i>x</i> mod (8/<i>w</i>)), where
bits within a byte are numbered 0 to 7 from the high order to
the low order bit. Rows contain integral number of bytes, so there
may be some unused pixels at either end of a row. If <i>d</i> is greater
than 8, the definition of images requires that it will a multiple
of 8, so pixel values take up an integral number of bytes.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>loadimage</font></tt> and <tt><font size=+1>unloadimage</font></tt> functions described in <a href="../man3/allocimage.html"><i>allocimage</i>(3)</a>
also deal with rows in this format, stored in user memory.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The channel format string is a sequence of two-character channel
descriptions, each comprising a letter (<tt><font size=+1>r</font></tt> for red, <tt><font size=+1>g</font></tt> for green,
<tt><font size=+1>b</font></tt> for blue, <tt><font size=+1>a</font></tt> for alpha, <tt><font size=+1>m</font></tt> for color-mapped, <tt><font size=+1>k</font></tt> for greyscale,
and <tt><font size=+1>x</font></tt> for &#8220;don&#8217;t care&#8221;) followed by a number of bits per pixel.
The sum of the channel bits per pixel is the depth of the image,
which must be either a divisor or a multiple of eight. It is an
error to have more than one of any channel but <tt><font size=+1>x</font></tt>. An image must
have either a greyscale channel; a color mapped channel; or red,
green, and blue channels. If the alpha channel is present, it
must be at least as deep as any other channel.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The channel string defines the format of the pixels in the file,
and should not be confused with ordering of bytes in the file.
In particular <tt><font size=+1>'r8g8b8'</font></tt> pixels have byte ordering blue, green,
and red within the file. See <a href="../man7/color.html"><i>color</i>(7)</a> for more details of the
pixel format.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A venerable yet deprecated format replaces the channel string
with a decimal <i>ldepth</i>, which is the base two logarithm of the
number of bits per pixel in the image. In this case, <i>ldepth</i>s 0,
1, 2, and 3 correspond to channel descriptors <tt><font size=+1>k1</font></tt>, <tt><font size=+1>k2</font></tt>, <tt><font size=+1>k4</font></tt>, and
<tt><font size=+1>m8</font></tt>, respectively.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Compressed image files start with a line of text containing the
word <tt><font size=+1>compressed</font></tt>, followed by a header as described above, followed
by the image data. The data, when uncompressed, is laid out in
the usual form.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The data is represented by a string of compression blocks, each
encoding a number of rows of the image&#8217;s pixel data. Compression
blocks are at most 6024 bytes long, so that they fit comfortably
in a single 9P message. Since a compression block must encode
a whole number of rows, there is a limit (about 5825
bytes) to the width of images that may be encoded. Most wide images
are in subfonts, which, at 1 bit per pixel (the usual case for
fonts), can be 46600 pixels wide.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A compression block begins with two decimal strings of twelve
bytes each. The first number is one more than the <tt><font size=+1>y</font></tt> coordinate
of the last row in the block. The second is the number of bytes
of compressed data in the block, not including the two decimal
strings. This number must not be larger than 6000.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Pixels are encoded using a version of Lempel &amp; Ziv&#8217;s sliding window
scheme LZ77, best described in J A Storer &amp; T G Szymanski &#8216;Data
Compression via Textual Substitution&#8217;, JACM 29#4, pp. 928-951.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The compression block is a string of variable-length code words
encoding substrings of the pixel data. A code word either gives
the substring directly or indicates that it is a copy of data
occurring previously in the pixel stream.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In a code word whose first byte has the high-order bit set, the
rest of the byte indicates the length of a substring encoded directly.
Values from 0 to 127 encode lengths from 1 to 128 bytes. Subsequent
bytes are the literal pixel data.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the high-order bit is zero, the next 5 bits encode the length
of a substring copied from previous pixels. Values from 0 to 31
encode lengths from 3 to 34 bytes. The bottom two bits of the
first byte and the 8 bits of the next byte encode an offset backward
from the current position in the pixel data at which the copy
is to be found. Values from 0 to 1023 encode offsets from 1 to
1024. The encoding may be &#8216;prescient&#8217;, with the length larger
than the offset, which works just fine: the new data is identical
to the data at the given offset, even though the two strings overlap.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Some small images, in particular 48&#215;48 face files as used by <i>seemail</i>
(see Plan 9&#8217;s <i>faces</i>(1) and <a href="../man7/face.html"><i>face</i>(7)</a>) and 16&#215;16 cursors, can be stored
textually, suitable for inclusion in C source. Each line of text
represents one scan line as a comma-separated sequence of hexadecimal
bytes, shorts, or words in C format. For
cursors, each line defines a pair of bytes. (It takes two images
to define a cursor; each must be stored separately to be processed
by programs such as <a href="../man1/tweak.html"><i>tweak</i>(1)</a>.) Face files of one bit per pixel
are stored as a sequence of shorts, those of larger pixel sizes
as a sequence of longs. Software that reads these files must
deduce the image size from the input; there is no header. These
formats reflect history rather than design.<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man1/jpg.html"><i>jpg</i>(1)</a>, <a href="../man1/tweak.html"><i>tweak</i>(1)</a>, <a href="../man3/graphics.html"><i>graphics</i>(3)</a>, <a href="../man3/draw.html"><i>draw</i>(3)</a>, <a href="../man3/allocimage.html"><i>allocimage</i>(3)</a>, <a href="../man7/color.html"><i>color</i>(7)</a>,
<a href="../man7/face.html"><i>face</i>(7)</a>, <a href="../man7/font.html"><i>font</i>(7)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,76 +0,0 @@
<html>
<head>
<title>Manual Section 7 - Plan 9 from User Space</title>
</head>
<body>
<table width=100%>
<tr><td width=20><td>
<center>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=1><td width=200><td>
<tr><td colspan=2>
<center>
<b>Manual Section 7 - Plan 9 from User Space</b>
</center>
<tr height=10><td>
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="color.html">color(7)</a><td>color &ndash; representation of pixels and colors
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="face.html">face(7)</a><td>face &ndash; face files
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="font.html">font(7)</a><td>font, subfont &ndash; external format for fonts and subfonts
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="image.html">image(7)</a><td>image &ndash; external format for images
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="man.html">man(7)</a><td>man &ndash; macros to typeset manual
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="map.html">map(7)</a><td>map &ndash; digitized map formats
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="ms.html">ms(7)</a><td>ms &ndash; macros for formatting manuscripts
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="plot.html">plot(7)</a><td>plot &ndash; graphics interface
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="plumb.html">plumb(7)</a><td>plumb &ndash; format of plumb messages and rules
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="regexp.html">regexp(7)</a><td>regexp &ndash; Plan 9 regular expression notation
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="thumbprint.html">thumbprint(7)</a><td>thumbprint &ndash; public key thumbprints
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="utf.html">utf(7)</a><td>UTF, Unicode, ASCII, rune &ndash; character set and format
</table>
</center>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<td width=20>
</table>
</body>
</html>

View file

@ -1,292 +0,0 @@
<head>
<title>man(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>MAN(7)</b><td align=right><b>MAN(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
man &ndash; macros to typeset manual<br>
</table>
<p><font size=+1><b>SYNOPSIS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>nroff &#8722;man</font></tt> <i>file ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>troff &#8722;man</font></tt> <i>file ...<br>
</i>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
These macros are used to format pages of this manual.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Except in <tt><font size=+1>.LR</font></tt> and <tt><font size=+1>.RL</font></tt> requests, any text argument denoted <i>t</i> in
the request summary may be zero to six words. Quotes <tt><font size=+1>&quot;</font></tt> ... <tt><font size=+1>&quot;</font></tt> may
be used to include blanks in a &#8216;word&#8217;. If <i>t</i> is empty, the special
treatment is applied to the next text input line (the next line
that doesn&#8217;t begin with dot). In this way, for example, <tt><font size=+1>.I
</font></tt>may be used to italicize a line of more than 6 words, or <tt><font size=+1>.SM</font></tt> followed
by <tt><font size=+1>.B</font></tt> to make small letters in &#8216;bold&#8217; font.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A prevailing indent distance is remembered between successive
indented paragraphs, and is reset to default value upon reaching
a non-indented paragraph. Default units for indents <i>i</i> are ens.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The fonts are<br>
<tt><font size=+1>R</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;roman, the main font, preferred for diagnostics<br>
<tt><font size=+1>I</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;italic, preferred for parameters, short names of commands, names
of manual pages, and naked function names<br>
<tt><font size=+1>B</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8216;bold&#8217;, actually the constant width font, preferred for examples,
file names, declarations, keywords, names of <tt><font size=+1>struct</font></tt> members, and
literals (numbers are rarely literals)<br>
<tt><font size=+1>L</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;also the constant width font. In <i>troff</i> <tt><font size=+1>L</font></tt>=<tt><font size=+1>B</font></tt>; in <i>nroff</i> arguments
of the macros <tt><font size=+1>.L</font></tt>, <tt><font size=+1>.LR</font></tt>, and <tt><font size=+1>.RL</font></tt> are printed in quotes; preferred
only where quotes really help (e.g. lower-case literals and punctuation).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Type font and size are reset to default values before each paragraph,
and after processing font- or size-setting macros.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;man</font></tt> macros admit equations and tables in the style of <a href="../man1/eqn.html"><i>eqn</i>(1)</a>
and <a href="../man1/tbl.html"><i>tbl</i>(1)</a>, but do not support arguments on <tt><font size=+1>.EQ</font></tt> and <tt><font size=+1>.TS</font></tt> macros.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
These strings are predefined by <tt><font size=+1>&#8722;man</font></tt>:<br>
<tt><font size=+1>\*R</font></tt>&nbsp;&nbsp;&nbsp;&#8216;&reg;&#8217;, &#8216;(Reg)&#8217; in <i>nroff</i>.<br>
<tt><font size=+1>\*S</font></tt>&nbsp;&nbsp;&nbsp;Change to default type size. <tt><font size=+1>\*9</font></tt> The root directory of the
Plan 9 installation.<br>
</table>
<p><font size=+1><b>FILES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>/usr/local/plan9/tmac/tmac.an
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
<tt><font size=+1>/usr/local/plan9/tmac/tmac.antimes<br>
</font></tt>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man1/troff.html"><i>troff</i>(1)</a>, <a href="../man1/man.html"><i>man</i>(1)</a><br>
</table>
<p><font size=+1><b>REQUESTS </b></font><br>
Request Cause If no &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Explanation<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Break Argument<br>
</table>
</table>
<tt><font size=+1>.B</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l.* &nbsp;&nbsp;&nbsp;Text <i>t</i> is &#8216;bold&#8217;.<br>
<tt><font size=+1>.BI</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Join words of <i>t</i> alternating bold and italic.<br>
<tt><font size=+1>.BR</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Join words of <i>t</i> alternating bold and Roman.<br>
<tt><font size=+1>.DT </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restore default tabs.<br>
<tt><font size=+1>.EE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End displayed example<br>
<tt><font size=+1>.EX </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begin displayed example<br>
<tt><font size=+1>.HP</font></tt> <i>i </i>&nbsp;&nbsp;&nbsp;yes
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>i</i>=p.i.* &nbsp;&nbsp;&nbsp;&nbsp;Set prevailing indent to <i>i</i>. Begin paragraph with hanging
indent.<br>
<tt><font size=+1>.I</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Text <i>t</i> is italic.<br>
<tt><font size=+1>.IB</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Join words of <i>t</i> alternating italic and bold.<br>
<tt><font size=+1>.IP</font></tt> <i>x i</i> yes
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>x</i>=&quot;&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <tt><font size=+1>.TP</font></tt> with tag <i>x</i>.<br>
<tt><font size=+1>.IR</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Join words of <i>t</i> alternating italic and Roman.<br>
<tt><font size=+1>.L</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Text <i>t</i> is literal.<br>
<tt><font size=+1>.LP </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <tt><font size=+1>.PP</font></tt>.<br>
<tt><font size=+1>.LR</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Join 2 words of <i>t</i> alternating literal and Roman.<br>
<tt><font size=+1>.PD</font></tt> <i>d </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>d</i>=<tt><font size=+1>.4v </font></tt>&nbsp;&nbsp;&nbsp;Interparagraph distance is <i>d</i>.<br>
<tt><font size=+1>.PP </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begin paragraph. Set prevailing indent to default.<br>
<tt><font size=+1>.RE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End of relative indent. Set prevailing indent to amount
of starting <tt><font size=+1>.RS</font></tt>.<br>
<tt><font size=+1>.RI</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Join words of <i>t</i> alternating Roman and italic.<br>
<tt><font size=+1>.RL</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Join 2 or 3 words of <i>t</i> alternating Roman and literal.<br>
<tt><font size=+1>.RS</font></tt> <i>i </i>&nbsp;&nbsp;&nbsp;yes
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>i</i>=p.i. &nbsp;&nbsp;&nbsp;&nbsp;Start relative indent, move left margin in distance <i>i</i>.
Set prevailing indent to default for nested indents.<br>
<tt><font size=+1>.SH</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;yes
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=&quot;&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subhead; reset paragraph distance.<br>
<tt><font size=+1>.SM</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=n.t.l. &nbsp;&nbsp;&nbsp;Text <i>t</i> is small.<br>
<tt><font size=+1>.SS</font></tt> <i>t </i>&nbsp;&nbsp;&nbsp;no
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>t</i>=&quot;&quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Secondary subhead.<br>
<tt><font size=+1>.TF</font></tt> <i>s </i>&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prevailing indent is wide as string <i>s</i> in font <tt><font size=+1>L</font></tt>; paragraph
distance is 0.<br>
<tt><font size=+1>.TH</font></tt> <i>n c x </i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begin page named <i>n</i> of chapter <i>c;</i> <i>x</i> is extra commentary,
e.g. &#8216;local&#8217;, for page head. Set prevailing indent and tabs to
default.<br>
<tt><font size=+1>.TP</font></tt> <i>i </i>&nbsp;&nbsp;&nbsp;yes
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
&#60094;</font></tt><i>i</i>=p.i. &nbsp;&nbsp;&nbsp;&nbsp;Set prevailing indent to <i>i</i>. Restore default indent if
<i>i</i>=0. Begin indented paragraph with hanging tag given by next text
line. If tag doesn&#8217;t fit, place it on separate line.<br>
<tt><font size=+1>.1C </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Equalize columns and return to 1-column output<br>
<tt><font size=+1>.2C </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start 2-column nofill output
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
* n.t.l. = next text line; p.i. = prevailing indent<br>
<p><font size=+1><b>BUGS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
There&#8217;s no way to fool <i>troff</i> into handling literal double quote
marks <tt><font size=+1>&quot;</font></tt> in font-alternation macros, such as <tt><font size=+1>.BI</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There is no direct way to suppress column widows in 2-column output;
the column lengths may be adjusted by inserting <tt><font size=+1>.sp</font></tt> requests before
the closing <tt><font size=+1>.1C</font></tt>.<br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,108 +0,0 @@
<head>
<title>map(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>MAP(7)</b><td align=right><b>MAP(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
map &ndash; digitized map formats<br>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Files used by <a href="../man7/map.html"><i>map</i>(7)</a> are a sequence of structures of the form:
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>struct {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
signed char patchlatitude;<br>
signed char patchlongitude;<br>
short n;<br>
union {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
struct {<br>
short latitude;<br>
short longitude;<br>
} point[n];<br>
struct {<br>
short latitude;<br>
short longitude;<br>
struct {<br>
signed char latdiff;<br>
signed char londiff;<br>
} point[&ndash;n];<br>
} highres;<br>
</table>
} segment;<br>
</table>
};<br>
</font></tt>where <tt><font size=+1>short</font></tt> stands for 16-bit integers and there is no padding
within or between <tt><font size=+1>structs</font></tt>. Shorts are stored in little-endian
order, low byte first. To assure portability, <i>map</i> accesses them
bytewise.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Fields <tt><font size=+1>patchlatitude</font></tt> and <tt><font size=+1>patchlongitude</font></tt> tell to what 10-degree
by 10-degree patch of the earth&#8217;s surface a segment belongs. Their
values range from &ndash;9 to 8 and from &ndash;18 to 17, respectively, and
indicate the coordinates of the southeast corner of the patch
in units of 10 degrees.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Each segment of |<tt><font size=+1>n</font></tt>| points is connected; consecutive segments
are not necessarily related. Latitude and longitude are measured
in units of 0.0001 radian. If <tt><font size=+1>n</font></tt> is negative, then differences
to the first and succeeding points are measured in units of 0.00001
radian. Latitude is counted positive to the north and longitude
positive to the west.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The patches are ordered lexicographically by <tt><font size=+1>patchlatitude</font></tt> then
<tt><font size=+1>patchlongitude</font></tt>. A printable index to the first segment of each
patch in a file named <i>data</i> is kept in an associated file named
<i>data</i><tt><font size=+1>.x</font></tt>. Each line of an index file contains <tt><font size=+1>patchlatitude, patchlongitude</font></tt>
and the byte position of the
patch in the map file. Both the map file and the index file are
ordered by patch latitude and longitude.<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man7/map.html"><i>map</i>(7)</a><br>
The data comes from the World Data Bank I and II and U.S. Government
sources: the Census Bureau, Geological Survey, and CIA.<br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,185 +0,0 @@
<head>
<title>ms(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>MS(7)</b><td align=right><b>MS(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
ms &ndash; macros for formatting manuscripts<br>
</table>
<p><font size=+1><b>SYNOPSIS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>nroff &#8722;ms</font></tt> [ <i>options</i> ] <i>file ...<br>
</i><tt><font size=+1>troff &#8722;ms</font></tt> [ <i>options</i> ] <i>file ...<br>
</i>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
This package of <i>nroff</i> and <a href="../man1/troff.html"><i>troff</i>(1)</a> macro definitions provides
a canned formatting facility for technical papers in various formats.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The macro requests are defined below. Many <i>nroff</i> and <i>troff</i> requests
are unsafe in conjunction with this package, but the following
requests may be used with impunity after the first <tt><font size=+1>.PP</font></tt>: <tt><font size=+1>.bp</font></tt>, <tt><font size=+1>.br</font></tt>,
<tt><font size=+1>.sp</font></tt>, <tt><font size=+1>.ls</font></tt>, <tt><font size=+1>.na</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Output of the <a href="../man1/eqn.html"><i>eqn</i>(1)</a>, <a href="../man1/tbl.html"><i>tbl</i>(1)</a>, <a href="../man1/pic.html"><i>pic</i>(1)</a> and <a href="../man1/grap.html"><i>grap</i>(1)</a> preprocessors
for equations, tables, pictures, and graphs is acceptable as input.<br>
</table>
<p><font size=+1><b>FILES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>/usr/local/plan9/tmac/tmac.s<br>
</font></tt>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
M. E. Lesk, &#8220;Typing Documents on the UNIX System: Using the &ndash;ms
Macros with Troff and Nroff&#8221;, <i>Unix Research System Programmer&#8217;s
Manual,</i> Tenth Edition, Volume 2.<br>
<a href="../man1/eqn.html"><i>eqn</i>(1)</a>, <a href="../man1/troff.html"><i>troff</i>(1)</a>, <a href="../man1/tbl.html"><i>tbl</i>(1)</a>, <a href="../man1/pic.html"><i>pic</i>(1)</a><br>
</table>
<p><font size=+1><b>REQUESTS </b></font><br>
Request Initial Cause Explanation<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Value Break<br>
</table>
</table>
<tt><font size=+1>.1C </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;One column format on a new page.<br>
<tt><font size=+1>.2C </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Two column format.<br>
<tt><font size=+1>.AB </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Begin abstract.<br>
<tt><font size=+1>.AE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End abstract.<br>
<tt><font size=+1>.AI </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Author&#8217;s institution follows. Suppressed in <tt><font size=+1>.TM</font></tt>.<br>
<tt><font size=+1>.AT </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Print &#8216;Attached&#8217; and turn off line filling.<br>
<tt><font size=+1>.AU</font></tt> <i>x y</i> no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Author&#8217;s name follows. <i>x</i> is location and <i>y</i> is extension,
ignored except in <tt><font size=+1>TM</font></tt>.<br>
<tt><font size=+1>.B</font></tt> <i>x y </i>&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Print <i>x</i> in boldface, append <i>y</i>; if no argument switch
to boldface.<br>
<tt><font size=+1>.B1 </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Begin text to be enclosed in a box.<br>
<tt><font size=+1>.B2 </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End boxed text.<br>
<tt><font size=+1>.BI</font></tt> <i>x y</i> no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Print <i>x</i> in bold italic and append <i>y</i>; if no argument
switch to bold italic.<br>
<tt><font size=+1>.BT </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date no &nbsp;&nbsp;&nbsp;&nbsp;Bottom title, automatically invoked at foot of page.
May be redefined.<br>
<tt><font size=+1>.BX</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Print <i>x</i> in a box.<br>
<tt><font size=+1>.CW</font></tt> <i>x y</i> no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Constant width font for <i>x</i>, append <i>y</i>; if no argument
switch to constant width.<br>
<tt><font size=+1>.CT </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Print &#8216;Copies to&#8217; and turn off line filling.<br>
<tt><font size=+1>.DA</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;nroff no &nbsp;&nbsp;&nbsp;&nbsp;&#8216;Date line&#8217; at bottom of page is <i>x</i>. Default is
today.<br>
<tt><font size=+1>.DE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End displayed text. Implies <tt><font size=+1>.KE</font></tt>.<br>
<tt><font size=+1>.DS</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start of displayed text, to appear verbatim line-by-line:
<tt><font size=+1>I</font></tt> indented (default), <tt><font size=+1>L</font></tt> left-justified, <tt><font size=+1>C</font></tt> centered, <tt><font size=+1>B</font></tt> (block)
centered with straight left margin. Implies <tt><font size=+1>.KS</font></tt>.<br>
<tt><font size=+1>.EG </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print document in BTL format for &#8216;Engineer&#8217;s Notes.&#8217;
Must be first.<br>
<tt><font size=+1>.EN </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Space after equation produced by <i>neqn</i> or <a href="../man1/eqn.html"><i>eqn</i>(1)</a>.<br>
<tt><font size=+1>.EQ</font></tt> <i>x y</i> - &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Display equation. Equation number is <i>y</i>. Optional
<i>x</i> is <tt><font size=+1>I</font></tt>, <tt><font size=+1>L</font></tt>, <tt><font size=+1>C</font></tt> as in <tt><font size=+1>.DS</font></tt>.<br>
<tt><font size=+1>.FE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End footnote.<br>
<tt><font size=+1>.FP</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Set font positions for a family, e.g., <tt><font size=+1>.FP lucidasans<br>
.FS </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Start footnote. The note will be moved to the bottom
of the page.<br>
<tt><font size=+1>.HO </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&#8216;Bell Laboratories, Holmdel, New Jersey 07733&#8217;.<br>
<tt><font size=+1>.I</font></tt> <i>x y </i>&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Italicize <i>x</i>, append <i>y</i>; if no argument switch to italic.<br>
<tt><font size=+1>.IH </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&#8216;Bell Laboratories, Naperville, Illinois 60540&#8217;<br>
<tt><font size=+1>.IM </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Print document in BTL format for an internal memorandum.
Must be first.<br>
<tt><font size=+1>.IP</font></tt> <i>x y</i> no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start indented paragraph, with hanging tag <i>x</i>. Indentation
is <i>y</i> ens (default 5).<br>
<tt><font size=+1>.KE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End keep. Put kept text on next page if not enough room.<br>
<tt><font size=+1>.KF </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start floating keep. If the kept text must be moved
to the next page, float later text back to this page.<br>
<tt><font size=+1>.KS </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start keeping following text.<br>
<tt><font size=+1>.LG </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Make letters larger.<br>
<tt><font size=+1>.LP </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start left-blocked paragraph.<br>
<tt><font size=+1>.LT </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start a letter; a non-empty first argument produces
a full Lucent letterhead, a second argument is a room number,
a third argument is a telephone number.<br>
<tt><font size=+1>.MF </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print document in BTL format for &#8216;Memorandum for File.&#8217;
Must be first.<br>
<tt><font size=+1>.MH </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&#8216;Bell Laboratories, Murray Hill, New Jersey 07974&#8217;.<br>
<tt><font size=+1>.MR </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print document in BTL format for &#8216;Memorandum for Record.&#8217;
Must be first.<br>
<tt><font size=+1>.ND</font></tt> <i>date</i> troff no &nbsp;&nbsp;&nbsp;&nbsp;Use date supplied (if any) only in special BTL
format positions; omit from page footer.<br>
<tt><font size=+1>.NH</font></tt> <i>n </i>&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Same as <tt><font size=+1>.SH</font></tt>, with automatic section numbers like &#8216;1.2.3&#8217;;
<i>n</i> is subsection level (default 1).<br>
<tt><font size=+1>.NL </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Make letters normal size.<br>
<tt><font size=+1>.P1 </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Begin program display in constant width font.<br>
<tt><font size=+1>.P2 </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End program display.<br>
<tt><font size=+1>.PE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End picture; see <a href="../man1/pic.html"><i>pic</i>(1)</a>.<br>
<tt><font size=+1>.PF </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End picture; restore vertical position.<br>
<tt><font size=+1>.PP </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Begin paragraph. First line indented.<br>
<tt><font size=+1>.PS</font></tt> <i>h w</i> - &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start picture; height and width in inches.<br>
<tt><font size=+1>.PY </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&#8216;Bell Laboratories, Piscataway, New Jersey 08854&#8217;<br>
<tt><font size=+1>.QE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End quoted material.<br>
<tt><font size=+1>.QP </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Begin quoted paragraph (indent both margins).<br>
<tt><font size=+1>.QS </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Begin quoted material (indent both margins).<br>
<tt><font size=+1>.R </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Roman text follows.<br>
<tt><font size=+1>.RE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End relative indent level.<br>
<tt><font size=+1>.RP </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cover sheet and first page for released paper. Must precede
other requests.<br>
<tt><font size=+1>.RS </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Start level of relative indentation from which subsequent
indentation is measured.<br>
<tt><font size=+1>.SG</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Insert signature(s) of author(s), ignored except
in <tt><font size=+1>.TM</font></tt> and <tt><font size=+1>.LT</font></tt>. <i>x</i> is the reference line (initials of author and
typist). .}f<br>
<tt><font size=+1>.SH </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Section head follows, font automatically bold.<br>
<tt><font size=+1>.SM </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Make letters smaller.<br>
<tt><font size=+1>.TA</font></tt> <i>x</i>... 5... &nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Set tabs in ens. Default is 5 10 15 ...<br>
<tt><font size=+1>.TE </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End table; see <a href="../man1/tbl.html"><i>tbl</i>(1)</a>.<br>
<tt><font size=+1>.TH </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;End heading section of table.<br>
<tt><font size=+1>.TL </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Title follows.<br>
<tt><font size=+1>.TM</font></tt> <i>x</i>... no &nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print document in BTL technical memorandum format.
Arguments are TM number, (quoted list of) case number(s), and
file number. Must precede other requests.<br>
<tt><font size=+1>.TR</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print in BTL technical report format; report number
is <i>x</i>. Must be first.<br>
<tt><font size=+1>.TS</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;yes &nbsp;&nbsp;&nbsp;Begin table; if <i>x</i> is <tt><font size=+1>H</font></tt> table heading is repeated on
new pages.<br>
<tt><font size=+1>.UL</font></tt> <i>x </i>&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;Underline argument (even in troff).<br>
<tt><font size=+1>.UX</font></tt> <i>y z</i> - &nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&#8216;<i>z</i>UNIX<i>y</i>&#8217;; first use gives registered trademark notice.<br>
<tt><font size=+1>.WH </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- &nbsp;&nbsp;&nbsp;&nbsp;no &nbsp;&nbsp;&nbsp;&nbsp;&#8216;Bell Laboratories, Whippany, New Jersey 07981&#8217;.<br>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,386 +0,0 @@
<head>
<title>plot(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>PLOT(7)</b><td align=right><b>PLOT(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
plot &ndash; graphics interface<br>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Files of this format are interpreted by <a href="../man1/plot.html"><i>plot</i>(1)</a> to draw graphics
on the screen. A <i>plot</i> file is a UTF stream of instruction lines.
Arguments are delimited by spaces, tabs, or commas. Numbers may
be floating point. Punctuation marks (except <tt><font size=+1>:</font></tt>) , spaces, and
tabs at the beginning of lines are ignored. Comments run from
<tt><font size=+1>:</font></tt> to newline. Extra letters appended to a valid instruction are
ignored. Thus <tt><font size=+1>...line</font></tt>, <tt><font size=+1>line</font></tt>, <tt><font size=+1>li</font></tt> all mean the same thing. Arguments
are interpreted as follows:<br>
1.&nbsp;&nbsp;&nbsp;&nbsp;If an instruction requires no arguments, the rest of the line
is ignored.<br>
2.&nbsp;&nbsp;&nbsp;&nbsp;If it requires a string argument, then all the line after the
first field separator is passed as argument. Quote marks may be
used to preserve leading blanks. Strings may include newlines
represented as <tt><font size=+1>\n</font></tt>.<br>
3.&nbsp;&nbsp;&nbsp;&nbsp;Between numeric arguments alphabetic characters and punctuation
marks are ignored. Thus <tt><font size=+1>line from 5 6 to 7 8</font></tt> draws a line from
(5, 6) to (7, 8).<br>
4.&nbsp;&nbsp;&nbsp;&nbsp;Instructions with numeric arguments remain in effect until a
new instruction is read. Such commands may spill over many lines.
Thus the following sequence will draw a polygon with vertices
(4.5, 6.77), (5.8, 5.6), (7.8, 4.55), and (10.0, 3.6).<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>move 4.5 6.77<br>
vec 5.8, 5.6 7.8<br>
4.55 10.0, 3.6 4.5, 6.77<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
The instructions are executed in order. The last designated point
in a <tt><font size=+1>line</font></tt>, <tt><font size=+1>move</font></tt>, <tt><font size=+1>rmove</font></tt>, <tt><font size=+1>vec</font></tt>, <tt><font size=+1>rvec</font></tt>, <tt><font size=+1>arc</font></tt>, or <tt><font size=+1>point</font></tt> command becomes
the &#8216;current point&#8217; (<i>X,Y</i>) for the next command.<br>
<p><font size=+1><b>Open &amp; Close </b></font><br>
<tt><font size=+1>o</font></tt> <i>string</i>&nbsp;&nbsp;&nbsp;Open plotting device. For <i>troff</i>, <i>string</i> specifies the
size of the plot (default is <tt><font size=+1>6i</font></tt>).<br>
<tt><font size=+1>cl</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close plotting device.<br>
<p><font size=+1><b>Basic Plotting Commands </b></font><br>
<tt><font size=+1>e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start another frame of output.<br>
<tt><font size=+1>m</font></tt> <i>x y</i>&nbsp;&nbsp;&nbsp;&nbsp;(move) Current point becomes <i>x y.<br>
</i><tt><font size=+1>rm</font></tt> <i>dx dy</i>Current point becomes <i>X+dx Y+dy.<br>
</i><tt><font size=+1>poi</font></tt> <i>x y</i>Plot the point <i>x y</i> and make it the current point.<br>
<tt><font size=+1>v</font></tt> <i>x y</i>&nbsp;&nbsp;&nbsp;&nbsp;Draw a vector from the current point to <i>x y.<br>
</i><tt><font size=+1>rv</font></tt> <i>dx dy</i>Draw vector from current point to X<i>+</i>dx Y<i>+</i>dy<br>
<tt><font size=+1>li</font></tt> <i>x1 y1 x2 y2<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a line from <i>x1 y1</i> to <i>x2 y2.</i> Make the current point <i>x2 y2.<br>
</i>
</table>
</table>
<tt><font size=+1>t</font></tt> <i>string</i>&nbsp;&nbsp;&nbsp;Place the <i>string</i> so that its first character is centered
on the current point (default). If <i>string</i> begins with <tt><font size=+1>\C</font></tt> (<tt><font size=+1>\R</font></tt>),
it is centered (right-adjusted) on the current point. A backslash
at the beginning of the string may be escaped with another backslash.<br>
<tt><font size=+1>a</font></tt> <i>x1 y1 x2 y2 xc yc r<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a circular arc from <i>x1 y1</i> to <i>x2 y2</i> with center <i>xc yc</i> and
radius <i>r</i>. If the radius is positive, the arc is drawn counterclockwise;
negative, clockwise. The starting point is exact but the ending
point is approximate.<br>
</table>
</table>
<tt><font size=+1>ci</font></tt> <i>xc yc r<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a circle centered at <i>xc yc</i> with radius <i>r</i>. If the range and
frame parameters do not specify a square, the &#8216;circle&#8217; will be
elliptical.<br>
</table>
</table>
<tt><font size=+1>di</font></tt> <i>xc yc r<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a disc centered at <i>xc yc</i> with radius <i>r</i> using the filling
color (see <tt><font size=+1>cfill</font></tt> below).<br>
</table>
</table>
<tt><font size=+1>bo</font></tt> <i>x1 y1 x2 y2<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a box with lower left corner at <i>x1 y1</i> and upper right corner
at <i>x2 y2.<br>
</i>
</table>
</table>
<tt><font size=+1>sb</font></tt> <i>x1 y1 x2 y2<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a solid box with lower left corner at <i>x1 y1</i> and upper right
corner at <i>x2 y2</i> using the filling color (see <tt><font size=+1>cfill</font></tt> below).<br>
</table>
</table>
<tt><font size=+1>par</font></tt> <i>x1 y1 x2 y2 xg yg<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a parabola from <i>x1 y1</i> to <i>x2 y2</i> &#8216;guided&#8217; by <i>xg yg.</i> The parabola
passes through the midpoint of the line joining <i>xg yg</i> with the
midpoint of the line joining <i>x1 y1</i> and <i>x2 y2</i> and is tangent to
the lines from <i>xg yg</i> to the endpoints.<br>
</table>
</table>
<tt><font size=+1>pol { {</font></tt><i>x1 y1 ... xn yn</i><tt><font size=+1>}</font></tt> <i>...</i> <tt><font size=+1>{</font></tt><i>X1 Y1 ... Xm Ym</i><tt><font size=+1>} }<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw polygons with vertices <i>x1 y1 ... xn yn</i> and <i>X1 Y1 ... Xm Ym.</i>
If only one polygon is specified, the inner brackets are not needed.<br>
</table>
</table>
<tt><font size=+1>fi { {</font></tt><i>x1 y1 ... xn yn</i><tt><font size=+1>}</font></tt> <i>...</i> <tt><font size=+1>{</font></tt><i>X1 Y1 ... Xm Ym</i><tt><font size=+1>} }<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Fill a polygon. The arguments are the same as those for <tt><font size=+1>pol</font></tt> except
that the first vertex is automatically repeated to close each
polygon. The polygons do not have to be connected. Enclosed polygons
appear as holes.<br>
</table>
</table>
<tt><font size=+1>sp { {</font></tt><i>x1 y1 ... xn yn</i><tt><font size=+1>}</font></tt> <i>...</i> <tt><font size=+1>{</font></tt><i>X1 Y1 ... Xm Ym</i><tt><font size=+1>} }<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a parabolic spline guided by <i>x1 y1 ... xn yn</i> with simple
endpoints.<br>
</table>
</table>
<tt><font size=+1>fsp { {</font></tt><i>x1 y1 ... xn yn</i><tt><font size=+1>}</font></tt> <i>...</i> <tt><font size=+1>{</font></tt><i>X1 Y1 ... Xm Ym</i><tt><font size=+1>} }<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a parabolic spline guided by <i>x1 y1 ... xn yn</i> with double
first endpoint.<br>
</table>
</table>
<tt><font size=+1>lsp { {</font></tt><i>x1 y1 ... xn yn</i><tt><font size=+1>}</font></tt> <i>...</i> <tt><font size=+1>{</font></tt><i>X1 Y1 ... Xm Ym</i><tt><font size=+1>} }<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a parabolic spline guided by <i>x1 y1 ... xn yn</i> with double
last endpoint.<br>
</table>
</table>
<tt><font size=+1>dsp { {</font></tt><i>x1 y1 ... xn yn</i><tt><font size=+1>}</font></tt> <i>...</i> <tt><font size=+1>{</font></tt><i>X1 Y1 ... Xm Ym</i><tt><font size=+1>} }<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Draw a parabolic spline guided by <i>x1 y1 ... xn yn</i> with double
endpoints.<br>
</table>
</table>
<tt><font size=+1>csp { {</font></tt><i>x1 y1 ... xn yn</i><tt><font size=+1>}</font></tt> <i>...</i> <tt><font size=+1>{</font></tt><i>X1 Y1 ... Xm Ym</i><tt><font size=+1>} }<br>
in</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
(include) Take commands from <i>filename</i>.<br>
</table>
</table>
<tt><font size=+1>de</font></tt> <i>string</i> <tt><font size=+1>{</font></tt> <i>commands</i> <tt><font size=+1>}<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Define <i>string</i> as <i>commands</i>.<br>
</table>
</table>
<tt><font size=+1>ca</font></tt> <i>string scale<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Invoke commands defined as <i>string</i> applying <i>scale</i> to all coordinates.<br>
</table>
</table>
<p><font size=+1><b>Commands Controlling the Environment </b></font><br>
<tt><font size=+1>co</font></tt> <i>string<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Use color given by first character of <i>string</i>, one of <tt><font size=+1>red</font></tt>, <tt><font size=+1>yellow</font></tt>,
<tt><font size=+1>green</font></tt>, <tt><font size=+1>blue</font></tt>, <tt><font size=+1>cyan</font></tt>, <tt><font size=+1>magenta</font></tt>, <tt><font size=+1>white</font></tt>, and <tt><font size=+1>kblack</font></tt>. If <i>string</i> begins
with a digit, it is taken to be a 32-bit number specifying 8 bit
each of red, green, blue, and alpha. For example, <tt><font size=+1>0xFFFF00FF</font></tt> denotes
solid yellow.
</table>
</table>
<tt><font size=+1>pe</font></tt> <i>string<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Use <i>string</i> as the style for drawing lines. The available pen styles
are: <tt><font size=+1>solid</font></tt>, <tt><font size=+1>dott</font></tt>[ed], <tt><font size=+1>short</font></tt>, <tt><font size=+1>long</font></tt>, <tt><font size=+1>dotd</font></tt>[ashed]<tt><font size=+1>, cdash</font></tt>, <tt><font size=+1>ddash<br>
</font></tt>
</table>
</table>
<tt><font size=+1>cf</font></tt> <i>string<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Color for filling (see <tt><font size=+1>co</font></tt>, above).<br>
</table>
</table>
<tt><font size=+1>ra</font></tt> <i>x1 y1 x2 y2<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The data will fall between <i>x1 y1</i> and <i>x2 y2.</i> The plot will be magnified
or reduced to fit the device as closely as possible.<br>
Range settings that exactly fill the plotting area with unity
scaling appear below for devices supported by the filters of <a href="../man1/plot.html"><i>plot</i>(1)</a>.
The upper limit is just outside the plotting area. In every case
the plotting area is taken to be square; points outside may be
displayable on devices with nonsquare faces.
</table>
</table>
<tt><font size=+1>fr</font></tt> <i>px1 py1 px2 py2<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Plot the data in the fraction of the display specified by <i>px1
py1</i> for lower left corner and <i>px2 py2</i> for upper right corner.
Thus <tt><font size=+1>frame .5 0 1. .5</font></tt> plots in the lower right quadrant of the
display; <tt><font size=+1>frame 0. 1. 1. 0.</font></tt> uses the whole display but inverts
the <i>y</i> coordinates.<br>
</table>
</table>
<tt><font size=+1>sa</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the current environment, and move to a new one. The new
environment inherits the old one. There are 7 levels.<br>
<tt><font size=+1>re</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restore previous environment.<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man1/plot.html"><i>plot</i>(1)</a>, <a href="../man1/graph.html"><i>graph</i>(1)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,357 +0,0 @@
<head>
<title>plumb(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>PLUMB(7)</b><td align=right><b>PLUMB(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
plumb &ndash; format of plumb messages and rules<br>
</table>
<p><font size=+1><b>SYNOPSIS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>#include &lt;plumb.h&gt;<br>
</font></tt>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<p><font size=+1><b>Message format </b></font><br>
The messages formed by the <a href="../man3/plumb.html"><i>plumb</i>(3)</a> library are formatted for
transmission between processes into textual form, using newlines
to separate the fields. Only the data field may contain embedded
newlines. The fields occur in a specified order, and each has
a name, corresponding to the elements of the <tt><font size=+1>Plumbmsg
</font></tt>structure, that is used in the plumbing rules. The fields, in
order, are:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>src</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application/service generating message<br>
<tt><font size=+1>dst</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destination &#8216;port&#8217; for message<br>
<tt><font size=+1>wdir</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;working directory (used if data is a file name)<br>
<tt><font size=+1>type</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;form of the data, e.g. <tt><font size=+1>text<br>
attr</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;attributes of the message, in <i>name</i><tt><font size=+1>=</font></tt><i>value</i> pairs separated by
white space (the value must follow the usual quoting convention
if it contains white space or quote characters or equal signs;
it cannot contain a newline)<br>
<tt><font size=+1>ndata</font></tt>&nbsp;&nbsp;&nbsp;number of bytes of data<br>
<tt><font size=+1>data</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;the data itself<br>
</table>
At the moment, only textual data (<tt><font size=+1>type=text</font></tt>) is supported.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
All fields are optional, but <tt><font size=+1>type</font></tt> should usually be set since
it describes the form of the data, and <tt><font size=+1>ndata</font></tt> must be an accurate
count (possibly zero) of the number of bytes of data. A missing
field is represented by an empty line.<br>
<p><font size=+1><b>Plumbing rules </b></font><br>
The <tt><font size=+1>plumber</font></tt> (see <a href="../man1/plumb.html"><i>plumb</i>(1)</a>) receives messages on its <tt><font size=+1>send</font></tt> port
(applications <i>send</i> messages there), interprets and reformats them,
and (typically) emits them from a destination port. Its behavior
is determined by a plumbing rules file, default <tt><font size=+1>/usr/$user/lib/plumbing</font></tt>,
which defines a set of pattern/action
rules with which to analyze, rewrite, and dispatch received messages.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The file is a sequence of rule sets, each of which is a set of
one-line rules called patterns and actions. There must be at least
one pattern and one action in each rule set. (The only exception
is that a rule set may contain nothing but <tt><font size=+1>plumb to</font></tt> rules; such
a rule set declares the named ports but has no other effect.)
A
blank line terminates a rule set. Lines beginning with a <tt><font size=+1>#</font></tt> character
are commentary and are regarded as blank lines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A line of the form<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>include</font></tt> <i>file<br>
</i>
</table>
substitutes the contents of <i>file</i> for the line, much as in a C
<tt><font size=+1>#include</font></tt> statement. Unlike in C, the file name is not quoted.
If <i>file</i> is not an absolute path name, or one beginning <tt><font size=+1>./</font></tt> or <tt><font size=+1>../</font></tt>,
<i>file</i> is looked for first in the directory in which the plumber
is executing, and then in <tt><font size=+1>/sys/lib/plumb</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When a message is received by the <tt><font size=+1>plumber</font></tt>, the rule sets are examined
in order. For each rule set, if the message matches all the patterns
in the rule set, the actions associated with the rule set are
triggered to dispose of the message. If a rule set is triggered,
the rest are ignored for this message. If none is
triggered, the message is discarded (giving a write error to the
sender) unless it has a <tt><font size=+1>dst</font></tt> field that specifies an existing port,
in which case the message is emitted, unchanged, from there.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Patterns and actions all consist of three components: an <i>object</i>,
a <i>verb</i>, and arguments. These are separated by white space on the
line. The arguments may contain quoted strings and variable substitutions,
described below, and in some cases contain multiple words. The
object and verb are single words from a pre-
defined set.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The object in a pattern is the name of an element of the message,
such as <tt><font size=+1>src</font></tt> or <tt><font size=+1>data</font></tt>, or the special case <tt><font size=+1>arg</font></tt>, which refers to
the argument component of the current rule. The object in an action
is always the word <tt><font size=+1>plumb</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The verbs in the pattern rules describe how the objects and arguments
are to be interpreted. Within a rule set, the patterns are evaluated
in sequence; if one fails, the rule set fails. Some verbs are
predicates that check properties of the message; others rewrite
components of the message and implicitly always succeed.
Such rewritings are permanent, so rules that specify them should
be placed after all pattern-matching rules in the rule set.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>add</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The object must be <tt><font size=+1>attr</font></tt>. Append the argument, which must be
a sequence of <i>name</i><tt><font size=+1>=</font></tt><i>value</i> pairs, to the list of attributes of the
message.<br>
<tt><font size=+1>delete</font></tt>&nbsp;&nbsp;&nbsp;The object must be <tt><font size=+1>attr</font></tt>. If the message has an attribute
whose name is the argument, delete it from the list of attributes
of the message. (Even if the message does not, the rule matches
the message.)<br>
<tt><font size=+1>is</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the text of the object is identical to the text of the argument,
the rule matches.<br>
<tt><font size=+1>isdir</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;If the text of the object is the name of an existing directory,
the rule matches and sets the variable <tt><font size=+1>$dir</font></tt> to that directory
name.<br>
<tt><font size=+1>isfile</font></tt>&nbsp;&nbsp;&nbsp;If the text of the object is the name of an existing file
(not a directory), the rule matches and sets the variable <tt><font size=+1>$file</font></tt>
to that file name.<br>
<tt><font size=+1>matches</font></tt>If the entire text of the object matches the regular expression
specified in the argument, the rule matches. This verb is described
in more detail below.<br>
<tt><font size=+1>set</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The value of the object is set to the value of the argument.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
The <tt><font size=+1>matches</font></tt> verb has special properties that enable the rules
to select which portion of the data is to be sent to the destination.
By default, a <tt><font size=+1>data matches</font></tt> rule requires that the entire text
matches the regular expression. If, however, the message has an
attribute named <tt><font size=+1>click</font></tt>, that reports that the message was
produced by a mouse click within the text and that the regular
expressions in the rule set should be used to identify what portion
of the data the user intended. Typically, a program such as an
editor will send a white-space delimited block of text containing
the mouse click, using the value of the <tt><font size=+1>click</font></tt> attribute (a
number starting from 0) to indicate where in the textual data
the user pointed.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When the message has a <tt><font size=+1>click</font></tt> attribute, the <tt><font size=+1>data matches</font></tt> rules
extract the longest leftmost match to the regular expression that
contains or abuts the textual location identified by the <tt><font size=+1>click</font></tt>.
For a sequence of such rules within a given rule set, each regular
expression, evaluated by this specification, must
match the same subset of the data for the rule set to match the
message. For example, here is a pair of patterns that identify
a message whose data contains the name of an existing file with
a conventional ending for an encoded picture file:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>data matches '[a&#8722;zA&#8722;Z0&#8722;9_&ndash;./]+'<br>
data matches '([a&#8722;zA&#8722;Z0&#8722;9_&ndash;./]+).(jpe?g|gif|bit|ps|pdf)'<br>
</font></tt>
</table>
The first expression extracts the largest subset of the data around
the click that contains file name characters; the second sees
if it ends with, for example, <tt><font size=+1>.jpeg</font></tt>. If only the second pattern
were present, a piece of text <tt><font size=+1>horse.gift</font></tt> could be misinterpreted
as an image file named <tt><font size=+1>horse.gif</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If a <tt><font size=+1>click</font></tt> attribute is specified in a message, it will be deleted
by the <tt><font size=+1>plumber</font></tt> before sending the message if the <tt><font size=+1>data matches</font></tt>
rules expand the selection.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The action rules all have the object <tt><font size=+1>plumb</font></tt>. There are only three
verbs for action rules:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>to</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The argument is the name of the port to which the message will
be sent. If the message has a destination specified, it must match
the <tt><font size=+1>to</font></tt> port of the rule set or the entire rule set will be skipped.
(This is the only rule that is evaluated out of order.)<br>
<tt><font size=+1>client</font></tt>&nbsp;&nbsp;&nbsp;If no application has the port open, the arguments to a
<tt><font size=+1>plumb start</font></tt> rule specify a shell program to run in response to
the message. The message will be held, with the supposition that
the program will eventually open the port to retrieve it.<br>
<tt><font size=+1>start</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>client</font></tt>, but the message is discarded. Only one <tt><font size=+1>start</font></tt>
or <tt><font size=+1>client</font></tt> rule should be specified in a rule set.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
The arguments to all rules may contain quoted strings, exactly
as in <a href="../man1/rc.html"><i>rc</i>(1)</a>. They may also contain simple string variables, identified
by a leading dollar sign <tt><font size=+1>$</font></tt>. Variables may be set, between rule
sets, by assignment statements in the style of <tt><font size=+1>rc</font></tt>. Only one variable
assignment may appear on a line. The <tt><font size=+1>plumber</font></tt> also
maintains some built-in variables:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>$0</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The text that matched the entire regular expression in a previous
<tt><font size=+1>data matches</font></tt> rule. <tt><font size=+1>$1</font></tt>, <tt><font size=+1>$2</font></tt>, etc. refer to text matching the first,
second, etc. parenthesized subexpression.<br>
<tt><font size=+1>$attr</font></tt>&nbsp;&nbsp;&nbsp;The textual representation of the attributes of the message.<br>
<tt><font size=+1>$data</font></tt>&nbsp;&nbsp;&nbsp;The contents of the data field of the message.<br>
<tt><font size=+1>$dir</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;The directory name resulting from a successful <tt><font size=+1>isdir</font></tt> rule.
If no such rule has been applied, it is the string constructed
syntactically by interpreting <tt><font size=+1>data</font></tt> as a file name in <tt><font size=+1>wdir</font></tt>.<br>
<tt><font size=+1>$dst</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;The contents of the <tt><font size=+1>dst</font></tt> field of the message.<br>
<tt><font size=+1>$file</font></tt>&nbsp;&nbsp;&nbsp;The file name resulting from a successful <tt><font size=+1>isfile</font></tt> rule. If
no such rule has been applied, it is the string constructed syntactically
by interpreting <tt><font size=+1>data</font></tt> as a file name in <tt><font size=+1>wdir</font></tt>.<br>
<tt><font size=+1>$type</font></tt>&nbsp;&nbsp;&nbsp;The contents of the <tt><font size=+1>type</font></tt> field of the message.<br>
<tt><font size=+1>$src</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;The contents of the <tt><font size=+1>src</font></tt> field of the message.<br>
<tt><font size=+1>$wdir</font></tt>&nbsp;&nbsp;&nbsp;The contents of the <tt><font size=+1>wdir</font></tt> field of the message.<br>
<tt><font size=+1>$plan9</font></tt>The root directory of the Plan 9 tree (see <a href="../man3/get9root.html"><i>get9root</i>(3)</a>).<br>
</table>
</table>
<p><font size=+1><b>EXAMPLE </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The following is a modest, representative file of plumbing rules.<br>
<tt><font size=+1># these are generally in order from most specific to least,<br>
# since first rule that fires wins.<br>
addr=':(#?[0&#8722;9]+)'<br>
protocol='(https?|ftp|file|gopher|mailto|news|nntp|telnet|wais)'<br>
domain='[a&#8722;zA&#8722;Z0&#8722;9_@]+([.:][a&#8722;zA&#8722;Z0&#8722;9_@]+)*/?[a&#8722;zA&#8722;Z0&#8722;9_?,%#~&amp;/\&#8722;]+'<br>
file='([:.][a&#8722;zA&#8722;Z0&#8722;9_?,%#~&amp;/\&#8722;]+)*'<br>
# image files go to page<br>
type is text<br>
data matches '[a&#8722;zA&#8722;Z0&#8722;9_\&#8722;./]+'<br>
data matches '([a&#8722;zA&#8722;Z0&#8722;9_\&#8722;./]+).(jpe?g|gif|bit)'<br>
arg isfile $0<br>
plumb to image<br>
plumb start page &#8722;w $file<br>
# URLs go to web browser<br>
type is text<br>
data matches $protocol://$domain$file<br>
plumb to web<br>
plumb start window webbrowser $0<br>
# existing files, possibly tagged by line number, go to edit/sam<br>
type is text<br>
data matches '([.a&#8722;zA&#8722;Z0&#8722;9_/&ndash;]+[a&#8722;zA&#8722;Z0&#8722;9_/\&#8722;])('$addr')?'<br>
arg isfile $1<br>
data set $file<br>
attr add addr=$3<br>
plumb to edit<br>
plumb start window sam $file<br>
# .h files are looked up in /sys/include and passed to edit/sam<br>
type is text<br>
data matches '([a&#8722;zA&#8722;Z0&#8722;9]+\.h)('$addr')?'<br>
arg isfile /sys/include/$1<br>
data set $file<br>
attr add addr=$3<br>
plumb to edit<br>
plumb start window sam $file<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
The following simple plumbing rules file is a good beginning set
of rules.<br>
<tt><font size=+1># to update: cp /usr/$user/lib/plumbing /mnt/plumb/rules<br>
editor = acme<br>
# or editor = sam<br>
include basic<br>
</font></tt>
</table>
<p><font size=+1><b>FILES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>$HOME/lib/plumbing</font></tt>&nbsp;&nbsp;&nbsp;default rules file.<br>
<tt><font size=+1>plumb</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;service name for <a href="../man4/plumber.html"><i>plumber</i>(4)</a>.<br>
<tt><font size=+1>/usr/local/plan9/plumb<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
directory for <tt><font size=+1>include</font></tt> files.<br>
</table>
</table>
<tt><font size=+1>/usr/local/plan9/plumb/fileaddr<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
public macro definitions.<br>
</table>
</table>
<tt><font size=+1>/usr/local/plan9/plumb/basic<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
basic rule set.<br>
</table>
</table>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man1/plumb.html"><i>plumb</i>(1)</a>, <a href="../man3/plumb.html"><i>plumb</i>(3)</a>, <a href="../man4/plumber.html"><i>plumber</i>(4)</a>, <a href="../man7/regexp.html"><i>regexp</i>(7)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,131 +0,0 @@
<head>
<title>regexp(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>REGEXP(7)</b><td align=right><b>REGEXP(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
regexp &ndash; Plan 9 regular expression notation<br>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
This manual page describes the regular expression syntax used
by the Plan 9 regular expression library <a href="../man3/regexp.html"><i>regexp</i>(3)</a>. It is the
form used by <a href="../man1/egrep.html"><i>egrep</i>(1)</a> before <i>egrep</i> got complicated.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <i>regular expression</i> specifies a set of strings of characters.
A member of this set of strings is said to be <i>matched</i> by the regular
expression. In many applications a delimiter character, commonly
<tt><font size=+1>/</font></tt>, bounds a regular expression. In the following specification
for regular expressions the word &#8216;character&#8217; means any
character (rune) but newline.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The syntax for a regular expression <tt><font size=+1>e0</font></tt> is<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>e3: &nbsp;&nbsp;&nbsp;literal | charclass | '.' | '^' | '$' | '(' e0 ')'<br>
e2: &nbsp;&nbsp;&nbsp;e3<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
| &nbsp;&nbsp;&nbsp;e2 REP<br>
</table>
REP: '*' | '+' | '?'<br>
e1: &nbsp;&nbsp;&nbsp;e2<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
| &nbsp;&nbsp;&nbsp;e1 e2<br>
</table>
e0: &nbsp;&nbsp;&nbsp;e1<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
| &nbsp;&nbsp;&nbsp;e0 '|' e1<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
</table>
</table>
A <tt><font size=+1>literal</font></tt> is any non-metacharacter, or a metacharacter (one of
<tt><font size=+1>.*+?[]()|\^$</font></tt>), or the delimiter preceded by <tt><font size=+1>\</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <tt><font size=+1>charclass</font></tt> is a nonempty string <i>s</i> bracketed <tt><font size=+1>[</font></tt><i>s</i><tt><font size=+1>]</font></tt> (or <tt><font size=+1>[^</font></tt><i>s</i><tt><font size=+1>]</font></tt>); it
matches any character in (or not in) <i>s</i>. A negated character class
never matches newline. A substring <i>a</i><tt><font size=+1>&#8722;</font></tt><i>b</i>, with <i>a</i> and <i>b</i> in ascending
order, stands for the inclusive range of characters between <i>a</i>
and <i>b</i>. In <i>s</i>, the metacharacters <tt><font size=+1>&#8722;</font></tt>, <tt><font size=+1>]</font></tt>, an initial <tt><font size=+1>^</font></tt>, and the
regular expression delimiter must be preceded by a <tt><font size=+1>\</font></tt>; other metacharacters
have no special meaning and may appear unescaped.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <tt><font size=+1>.</font></tt> matches any character.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <tt><font size=+1>^</font></tt> matches the beginning of a line; <tt><font size=+1>$</font></tt> matches the end of the
line.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>REP</font></tt> operators match zero or more (<tt><font size=+1>*</font></tt>), one or more (<tt><font size=+1>+</font></tt>), zero
or one (<tt><font size=+1>?</font></tt>), instances respectively of the preceding regular expression
<tt><font size=+1>e2</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A concatenated regular expression, <tt><font size=+1>e1e2</font></tt>, matches a match to <tt><font size=+1>e1</font></tt>
followed by a match to <tt><font size=+1>e2</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An alternative regular expression, <tt><font size=+1>e0|e1</font></tt>, matches either a match
to <tt><font size=+1>e0</font></tt> or a match to <tt><font size=+1>e1</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A match to any part of a regular expression extends as far as
possible without preventing a match to the remainder of the regular
expression.<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man3/regexp.html"><i>regexp</i>(3)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,68 +0,0 @@
<head>
<title>thumbprint(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>THUMBPRINT(7)</b><td align=right><b>THUMBPRINT(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
thumbprint &ndash; public key thumbprints<br>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Applications in Plan 9 that use public keys for authentication,
for example by calling <tt><font size=+1>tlsClient</font></tt> and <tt><font size=+1>okThumbprint</font></tt> (see <a href="../man3/pushtls.html"><i>pushtls</i>(3)</a>),
check the remote side&#8217;s public key by comparing against thumbprints
from a trusted list. The list is maintained by people who set
local policies about which servers can be trusted
for which applications, thereby playing the role taken by certificate
authorities in PKI-based systems. By convention, these lists are
stored as files in <tt><font size=+1>/sys/lib/tls/</font></tt> and protected by normal file
system permissions.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Such a thumbprint file comprises lines made up of attribute/value
pairs of the form <i>attr</i><tt><font size=+1>=</font></tt><i>value</i> or <i>attr</i>. The first attribute must
be <tt><font size=+1>x509</font></tt> and the second must be <tt><font size=+1>sha1=</font></tt><i>{hex</i><tt><font size=+1>checksum</font></tt><i>of</i><tt><font size=+1>binary</font></tt><i>certificate}.</i>
All other attributes are treated as comments. The file may also
contain lines of the form <tt><font size=+1>#include</font></tt><i>file
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
For example, a web server might have thumbprint<br>
<tt><font size=+1>x509 sha1=8fe472d31b360a8303cd29f92bd734813cbd923c cn=*.cs.bell&#8722;labs.com<br>
</font></tt>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man3/pushtls.html"><i>pushtls</i>(3)</a><br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>

View file

@ -1,96 +0,0 @@
<head>
<title>utf(7) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>UTF(7)</b><td align=right><b>UTF(7)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
UTF, Unicode, ASCII, rune &ndash; character set and format<br>
</table>
<p><font size=+1><b>DESCRIPTION </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The Plan 9 character set and representation are based on the Unicode
Standard and on the ISO multibyte UTF-8 encoding (Universal Character
Set Transformation Format, 8 bits wide). The Unicode Standard
represents its characters in 16 bits; UTF-8 represents such values
in an 8-bit byte stream. Throughout this
manual, UTF-8 is shortened to UTF.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In Plan 9, a <i>rune</i> is a 16-bit quantity representing a Unicode
character. Internally, programs may store characters as runes.
However, any external manifestation of textual information, in
files or at the interface between programs, uses a machine-independent,
byte-stream encoding called UTF.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
UTF is designed so the 7-bit ASCII set (values hexadecimal 00
to 7F), appear only as themselves in the encoding. Runes with
values above 7F appear as sequences of two or more bytes with
values only from 80 to FF.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The UTF encoding of the Unicode Standard is backward compatible
with ASCII: programs presented only with ASCII work on Plan 9
even if not written to deal with UTF, as do programs that deal
with uninterpreted byte streams. However, programs that perform
semantic processing on ASCII graphic characters must convert
from UTF to runes in order to work properly with non-ASCII input.
See <a href="../man3/rune.html"><i>rune</i>(3)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Letting numbers be binary, a rune x is converted to a multibyte
UTF sequence as follows:
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
01. x in [00000000.0bbbbbbb] &rarr; 0bbbbbbb<br>
10. x in [00000bbb.bbbbbbbb] &rarr; 110bbbbb, 10bbbbbb<br>
11. x in [bbbbbbbb.bbbbbbbb] &rarr; 1110bbbb, 10bbbbbb, 10bbbbbb<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Conversion 01 provides a one-byte sequence that spans the ASCII
character set in a compatible way. Conversions 10 and 11 represent
higher-valued characters as sequences of two or three bytes with
the high bit set. Plan 9 does not support the 4, 5, and 6 byte
sequences proposed by X-Open. When there are
multiple ways to encode a value, for example rune 0, the shortest
encoding is used.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In the inverse mapping, any sequence except those described above
is incorrect and is converted to rune hexadecimal 0080.<br>
</table>
<p><font size=+1><b>SEE ALSO </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man1/ascii.html"><i>ascii</i>(1)</a>, <a href="../man1/tcs.html"><i>tcs</i>(1)</a>, <a href="../man3/rune.html"><i>rune</i>(3)</a>, <i>The Unicode Standard</i>.<br>
</table>
<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>