diff options
author | rsc <devnull@localhost> | 2005-01-14 03:45:44 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-01-14 03:45:44 +0000 |
commit | 78e51a8c6678b6e3dff3d619aa786669f531f4bc (patch) | |
tree | 015e00fde4fc837fd31b705e18d17dc913829388 /man/man7 | |
parent | 2634795b5f0053bc0ff08e5d7bbc0eda8efea061 (diff) | |
download | plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.gz plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.tar.bz2 plan9port-78e51a8c6678b6e3dff3d619aa786669f531f4bc.zip |
checkpoint
Diffstat (limited to 'man/man7')
-rw-r--r-- | man/man7/color.html | 169 | ||||
-rw-r--r-- | man/man7/face.html | 127 | ||||
-rw-r--r-- | man/man7/font.html | 101 | ||||
-rw-r--r-- | man/man7/image.html | 175 | ||||
-rw-r--r-- | man/man7/index.html | 76 | ||||
-rw-r--r-- | man/man7/man.html | 292 | ||||
-rw-r--r-- | man/man7/map.html | 108 | ||||
-rw-r--r-- | man/man7/ms.html | 185 | ||||
-rw-r--r-- | man/man7/plot.html | 386 | ||||
-rw-r--r-- | man/man7/plumb.html | 357 | ||||
-rw-r--r-- | man/man7/regexp.html | 131 | ||||
-rw-r--r-- | man/man7/thumbprint.html | 68 | ||||
-rw-r--r-- | man/man7/utf.html | 96 |
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 – 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×6×6 (as + in Netscape Navigator) or 8×8×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×4×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−r; g!=4; g++)<br> + for(b=0; b!=4; b++,j++){<br> + c = cmap[i+(j&15)];<br> + den = r;<br> + if(g > den)<br> + den = g;<br> + if(b > 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>’th grey + shade, 0<=<i>i</i><=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’ 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’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 ‘true-color’ 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 – 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 ‘icons’ displayed + by <tt><font size=+1>faces</font></tt> and <tt><font size=+1>seemail</font></tt> (see Plan 9’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−labs\.com 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 – 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 <draw.h><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> 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 – 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 <draw.h><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−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’s high order bit + starting at the byte’s bit number <i>w</i>×(<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 “don’t care”) 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’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 & Ziv’s sliding window + scheme LZ77, best described in J A Storer & T G Szymanski ‘Data + Compression via Textual Substitution’, 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 ‘prescient’, 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×48 face files as used by <i>seemail</i> + (see Plan 9’s <i>faces</i>(1) and <a href="../man7/face.html"><i>face</i>(7)</a>) and 16×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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 −man</font></tt> <i>file ... + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + </i> + <tt><font size=+1>troff −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>"</font></tt> ... <tt><font size=+1>"</font></tt> may + be used to include blanks in a ‘word’. If <i>t</i> is empty, the special + treatment is applied to the next text input line (the next line + that doesn’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 ‘bold’ 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> roman, the main font, preferred for diagnostics<br> + <tt><font size=+1>I</font></tt> italic, preferred for parameters, short names of commands, names + of manual pages, and naked function names<br> + <tt><font size=+1>B</font></tt> ‘bold’, 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> 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>−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>−man</font></tt>:<br> + <tt><font size=+1>\*R</font></tt> ‘®’, ‘(Reg)’ in <i>nroff</i>.<br> + <tt><font size=+1>\*S</font></tt> 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 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> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l.* Text <i>t</i> is ‘bold’.<br> +<tt><font size=+1>.BI</font></tt> <i>t </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. Join words of <i>t</i> alternating bold and italic.<br> +<tt><font size=+1>.BR</font></tt> <i>t </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. Join words of <i>t</i> alternating bold and Roman.<br> +<tt><font size=+1>.DT </font></tt> no Restore default tabs.<br> +<tt><font size=+1>.EE </font></tt> yes End displayed example<br> +<tt><font size=+1>.EX </font></tt> yes Begin displayed example<br> +<tt><font size=+1>.HP</font></tt> <i>i </i> yes +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>i</i>=p.i.* Set prevailing indent to <i>i</i>. Begin paragraph with hanging +indent.<br> +<tt><font size=+1>.I</font></tt> <i>t </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. Text <i>t</i> is italic.<br> +<tt><font size=+1>.IB</font></tt> <i>t </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. 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> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>x</i>="" 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> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. Join words of <i>t</i> alternating italic and Roman.<br> +<tt><font size=+1>.L</font></tt> <i>t </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. Text <i>t</i> is literal.<br> +<tt><font size=+1>.LP </font></tt> yes Same as <tt><font size=+1>.PP</font></tt>.<br> +<tt><font size=+1>.LR</font></tt> <i>t </i> no Join 2 words of <i>t</i> alternating literal and Roman.<br> +<tt><font size=+1>.PD</font></tt> <i>d </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>d</i>=<tt><font size=+1>.4v </font></tt> Interparagraph distance is <i>d</i>.<br> +<tt><font size=+1>.PP </font></tt> yes Begin paragraph. Set prevailing indent to default.<br> +<tt><font size=+1>.RE </font></tt> yes 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> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. Join words of <i>t</i> alternating Roman and italic.<br> +<tt><font size=+1>.RL</font></tt> <i>t </i> no Join 2 or 3 words of <i>t</i> alternating Roman and literal.<br> +<tt><font size=+1>.RS</font></tt> <i>i </i> yes +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>i</i>=p.i. 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> yes +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>="" Subhead; reset paragraph distance.<br> +<tt><font size=+1>.SM</font></tt> <i>t </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>=n.t.l. Text <i>t</i> is small.<br> +<tt><font size=+1>.SS</font></tt> <i>t </i> no +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>t</i>="" Secondary subhead.<br> +<tt><font size=+1>.TF</font></tt> <i>s </i> yes 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> yes Begin page named <i>n</i> of chapter <i>c;</i> <i>x</i> is extra commentary, +e.g. ‘local’, for page head. Set prevailing indent and tabs to +default.<br> +<tt><font size=+1>.TP</font></tt> <i>i </i> yes +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +<tt><font size=+1> +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> +</font></tt><i>i</i>=p.i. 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’t fit, place it on separate line.<br> +<tt><font size=+1>.1C </font></tt> yes Equalize columns and return to 1-column output<br> +<tt><font size=+1>.2C </font></tt> yes 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’s no way to fool <i>troff</i> into handling literal double quote + marks <tt><font size=+1>"</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 – 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[–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’s surface a segment belongs. Their + values range from –9 to 8 and from –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 – 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 −ms</font></tt> [ <i>options</i> ] <i>file ...<br> + </i><tt><font size=+1>troff −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, “Typing Documents on the UNIX System: Using the –ms + Macros with Troff and Nroff”, <i>Unix Research System Programmer’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> yes yes One column format on a new page.<br> +<tt><font size=+1>.2C </font></tt> no yes Two column format.<br> +<tt><font size=+1>.AB </font></tt> no yes Begin abstract.<br> +<tt><font size=+1>.AE </font></tt> - yes End abstract.<br> +<tt><font size=+1>.AI </font></tt> no yes Author’s institution follows. Suppressed in <tt><font size=+1>.TM</font></tt>.<br> +<tt><font size=+1>.AT </font></tt> no yes Print ‘Attached’ and turn off line filling.<br> +<tt><font size=+1>.AU</font></tt> <i>x y</i> no yes Author’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> no no Print <i>x</i> in boldface, append <i>y</i>; if no argument switch +to boldface.<br> +<tt><font size=+1>.B1 </font></tt> no yes Begin text to be enclosed in a box.<br> +<tt><font size=+1>.B2 </font></tt> no yes End boxed text.<br> +<tt><font size=+1>.BI</font></tt> <i>x y</i> no no 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> date no Bottom title, automatically invoked at foot of page. +May be redefined.<br> +<tt><font size=+1>.BX</font></tt> <i>x </i> no no Print <i>x</i> in a box.<br> +<tt><font size=+1>.CW</font></tt> <i>x y</i> no no 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> no yes Print ‘Copies to’ and turn off line filling.<br> +<tt><font size=+1>.DA</font></tt> <i>x </i> nroff no ‘Date line’ at bottom of page is <i>x</i>. Default is +today.<br> +<tt><font size=+1>.DE </font></tt> - yes End displayed text. Implies <tt><font size=+1>.KE</font></tt>.<br> +<tt><font size=+1>.DS</font></tt> <i>x </i> no yes 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> no - Print document in BTL format for ‘Engineer’s Notes.’ +Must be first.<br> +<tt><font size=+1>.EN </font></tt> - yes 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> - yes 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> - yes End footnote.<br> +<tt><font size=+1>.FP</font></tt> <i>x </i> - no Set font positions for a family, e.g., <tt><font size=+1>.FP lucidasans<br> +.FS </font></tt> no no Start footnote. The note will be moved to the bottom +of the page.<br> +<tt><font size=+1>.HO </font></tt> - no ‘Bell Laboratories, Holmdel, New Jersey 07733’.<br> +<tt><font size=+1>.I</font></tt> <i>x y </i> no no Italicize <i>x</i>, append <i>y</i>; if no argument switch to italic.<br> +<tt><font size=+1>.IH </font></tt> no no ‘Bell Laboratories, Naperville, Illinois 60540’<br> +<tt><font size=+1>.IM </font></tt> no no 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 yes 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> - yes End keep. Put kept text on next page if not enough room.<br> +<tt><font size=+1>.KF </font></tt> no yes 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> no yes Start keeping following text.<br> +<tt><font size=+1>.LG </font></tt> no no Make letters larger.<br> +<tt><font size=+1>.LP </font></tt> yes yes Start left-blocked paragraph.<br> +<tt><font size=+1>.LT </font></tt> no yes 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> - - Print document in BTL format for ‘Memorandum for File.’ +Must be first.<br> +<tt><font size=+1>.MH </font></tt> - no ‘Bell Laboratories, Murray Hill, New Jersey 07974’.<br> +<tt><font size=+1>.MR </font></tt> - - Print document in BTL format for ‘Memorandum for Record.’ +Must be first.<br> +<tt><font size=+1>.ND</font></tt> <i>date</i> troff no 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> - yes Same as <tt><font size=+1>.SH</font></tt>, with automatic section numbers like ‘1.2.3’; +<i>n</i> is subsection level (default 1).<br> +<tt><font size=+1>.NL </font></tt> yes no Make letters normal size.<br> +<tt><font size=+1>.P1 </font></tt> - yes Begin program display in constant width font.<br> +<tt><font size=+1>.P2 </font></tt> - yes End program display.<br> +<tt><font size=+1>.PE </font></tt> - yes End picture; see <a href="../man1/pic.html"><i>pic</i>(1)</a>.<br> +<tt><font size=+1>.PF </font></tt> - yes End picture; restore vertical position.<br> +<tt><font size=+1>.PP </font></tt> no yes Begin paragraph. First line indented.<br> +<tt><font size=+1>.PS</font></tt> <i>h w</i> - yes Start picture; height and width in inches.<br> +<tt><font size=+1>.PY </font></tt> - no ‘Bell Laboratories, Piscataway, New Jersey 08854’<br> +<tt><font size=+1>.QE </font></tt> - yes End quoted material.<br> +<tt><font size=+1>.QP </font></tt> - yes Begin quoted paragraph (indent both margins).<br> +<tt><font size=+1>.QS </font></tt> - yes Begin quoted material (indent both margins).<br> +<tt><font size=+1>.R </font></tt> yes no Roman text follows.<br> +<tt><font size=+1>.RE </font></tt> - yes End relative indent level.<br> +<tt><font size=+1>.RP </font></tt> no - Cover sheet and first page for released paper. Must precede +other requests.<br> +<tt><font size=+1>.RS </font></tt> - yes Start level of relative indentation from which subsequent +indentation is measured.<br> +<tt><font size=+1>.SG</font></tt> <i>x </i> no yes 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> - yes Section head follows, font automatically bold.<br> +<tt><font size=+1>.SM </font></tt> no no Make letters smaller.<br> +<tt><font size=+1>.TA</font></tt> <i>x</i>... 5... no Set tabs in ens. Default is 5 10 15 ...<br> +<tt><font size=+1>.TE </font></tt> - yes End table; see <a href="../man1/tbl.html"><i>tbl</i>(1)</a>.<br> +<tt><font size=+1>.TH </font></tt> - yes End heading section of table.<br> +<tt><font size=+1>.TL </font></tt> no yes Title follows.<br> +<tt><font size=+1>.TM</font></tt> <i>x</i>... no - 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> - - 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> - yes 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> - no Underline argument (even in troff).<br> +<tt><font size=+1>.UX</font></tt> <i>y z</i> - no ‘<i>z</i>UNIX<i>y</i>’; first use gives registered trademark notice.<br> +<tt><font size=+1>.WH </font></tt> - no ‘Bell Laboratories, Whippany, New Jersey 07981’.<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 – 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. If an instruction requires no arguments, the rest of the line + is ignored.<br> + 2. 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. 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. 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 ‘current point’ (<i>X,Y</i>) for the next command.<br> + <p><font size=+1><b>Open & Close </b></font><br> + <tt><font size=+1>o</font></tt> <i>string</i> 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> Close plotting device.<br> + <p><font size=+1><b>Basic Plotting Commands </b></font><br> + <tt><font size=+1>e</font></tt> Start another frame of output.<br> + <tt><font size=+1>m</font></tt> <i>x y</i> (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> 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> 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 ‘circle’ 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> ‘guided’ 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> 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> 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 – 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 <plumb.h><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> application/service generating message<br> + <tt><font size=+1>dst</font></tt> destination ‘port’ for message<br> + <tt><font size=+1>wdir</font></tt> working directory (used if data is a file name)<br> + <tt><font size=+1>type</font></tt> form of the data, e.g. <tt><font size=+1>text<br> + attr</font></tt> 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> number of bytes of data<br> + <tt><font size=+1>data</font></tt> 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> 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> 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> 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> 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> 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> 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−zA−Z0−9_–./]+'<br> + data matches '([a−zA−Z0−9_–./]+).(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> 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> 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> 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> 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> The textual representation of the attributes of the message.<br> + <tt><font size=+1>$data</font></tt> The contents of the data field of the message.<br> + <tt><font size=+1>$dir</font></tt> 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> The contents of the <tt><font size=+1>dst</font></tt> field of the message.<br> + <tt><font size=+1>$file</font></tt> 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> The contents of the <tt><font size=+1>type</font></tt> field of the message.<br> + <tt><font size=+1>$src</font></tt> The contents of the <tt><font size=+1>src</font></tt> field of the message.<br> + <tt><font size=+1>$wdir</font></tt> 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−9]+)'<br> + protocol='(https?|ftp|file|gopher|mailto|news|nntp|telnet|wais)'<br> + domain='[a−zA−Z0−9_@]+([.:][a−zA−Z0−9_@]+)*/?[a−zA−Z0−9_?,%#~&/\−]+'<br> + file='([:.][a−zA−Z0−9_?,%#~&/\−]+)*'<br> + # image files go to page<br> + type is text<br> + data matches '[a−zA−Z0−9_\−./]+'<br> + data matches '([a−zA−Z0−9_\−./]+).(jpe?g|gif|bit)'<br> + arg isfile $0<br> + plumb to image<br> + plumb start page −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−zA−Z0−9_/–]+[a−zA−Z0−9_/\−])('$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−zA−Z0−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> default rules file.<br> + <tt><font size=+1>plumb</font></tt> 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 – 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 ‘character’ 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: literal | charclass | '.' | '^' | '$' | '(' e0 ')'<br> + e2: e3<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + | e2 REP<br> + + </table> + REP: '*' | '+' | '?'<br> + e1: e2<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + | e1 e2<br> + + </table> + e0: e1<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + | 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>−</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>−</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 – 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’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−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 – 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] → 0bbbbbbb<br> + 10. x in [00000bbb.bbbbbbbb] → 110bbbbb, 10bbbbbb<br> + 11. x in [bbbbbbbb.bbbbbbbb] → 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> |