aboutsummaryrefslogtreecommitdiff
path: root/man/man7
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-01-14 03:45:44 +0000
committerrsc <devnull@localhost>2005-01-14 03:45:44 +0000
commit78e51a8c6678b6e3dff3d619aa786669f531f4bc (patch)
tree015e00fde4fc837fd31b705e18d17dc913829388 /man/man7
parent2634795b5f0053bc0ff08e5d7bbc0eda8efea061 (diff)
downloadplan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.gz
plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.bz2
plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.zip
checkpoint
Diffstat (limited to 'man/man7')
-rw-r--r--man/man7/color.html169
-rw-r--r--man/man7/face.html127
-rw-r--r--man/man7/font.html101
-rw-r--r--man/man7/image.html175
-rw-r--r--man/man7/index.html76
-rw-r--r--man/man7/man.html292
-rw-r--r--man/man7/map.html108
-rw-r--r--man/man7/ms.html185
-rw-r--r--man/man7/plot.html386
-rw-r--r--man/man7/plumb.html357
-rw-r--r--man/man7/regexp.html131
-rw-r--r--man/man7/thumbprint.html68
-rw-r--r--man/man7/utf.html96
13 files changed, 2271 insertions, 0 deletions
diff --git a/man/man7/color.html b/man/man7/color.html
new file mode 100644
index 00000000..262e4633
--- /dev/null
+++ b/man/man7/color.html
@@ -0,0 +1,169 @@
+<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>
diff --git a/man/man7/face.html b/man/man7/face.html
new file mode 100644
index 00000000..db220326
--- /dev/null
+++ b/man/man7/face.html
@@ -0,0 +1,127 @@
+<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>
diff --git a/man/man7/font.html b/man/man7/font.html
new file mode 100644
index 00000000..a6bd6a91
--- /dev/null
+++ b/man/man7/font.html
@@ -0,0 +1,101 @@
+<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>
diff --git a/man/man7/image.html b/man/man7/image.html
new file mode 100644
index 00000000..f81c023b
--- /dev/null
+++ b/man/man7/image.html
@@ -0,0 +1,175 @@
+<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>
diff --git a/man/man7/index.html b/man/man7/index.html
new file mode 100644
index 00000000..5f61f6e5
--- /dev/null
+++ b/man/man7/index.html
@@ -0,0 +1,76 @@
+<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>
diff --git a/man/man7/man.html b/man/man7/man.html
new file mode 100644
index 00000000..4087e795
--- /dev/null
+++ b/man/man7/man.html
@@ -0,0 +1,292 @@
+<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>
diff --git a/man/man7/map.html b/man/man7/map.html
new file mode 100644
index 00000000..1ebdfbba
--- /dev/null
+++ b/man/man7/map.html
@@ -0,0 +1,108 @@
+<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>
diff --git a/man/man7/ms.html b/man/man7/ms.html
new file mode 100644
index 00000000..3ef5ef5d
--- /dev/null
+++ b/man/man7/ms.html
@@ -0,0 +1,185 @@
+<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>
diff --git a/man/man7/plot.html b/man/man7/plot.html
new file mode 100644
index 00000000..ca64b3fd
--- /dev/null
+++ b/man/man7/plot.html
@@ -0,0 +1,386 @@
+<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>
diff --git a/man/man7/plumb.html b/man/man7/plumb.html
new file mode 100644
index 00000000..eca67a76
--- /dev/null
+++ b/man/man7/plumb.html
@@ -0,0 +1,357 @@
+<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>
diff --git a/man/man7/regexp.html b/man/man7/regexp.html
new file mode 100644
index 00000000..1bc2c74e
--- /dev/null
+++ b/man/man7/regexp.html
@@ -0,0 +1,131 @@
+<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>
diff --git a/man/man7/thumbprint.html b/man/man7/thumbprint.html
new file mode 100644
index 00000000..eccbe595
--- /dev/null
+++ b/man/man7/thumbprint.html
@@ -0,0 +1,68 @@
+<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>
diff --git a/man/man7/utf.html b/man/man7/utf.html
new file mode 100644
index 00000000..a1e767ec
--- /dev/null
+++ b/man/man7/utf.html
@@ -0,0 +1,96 @@
+<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>