cut out the html - they're going to cause diffing problems.
This commit is contained in:
parent
1ac1981659
commit
adc93f6097
262 changed files with 82 additions and 44564 deletions
|
|
@ -9,6 +9,7 @@ ms ms.7
|
|||
plot plot.7
|
||||
plumb plumb.7
|
||||
regexp regexp.7
|
||||
regexp9 regexp9.7
|
||||
thumbprint thumbprint.7
|
||||
ASCII utf.7
|
||||
UTF utf.7
|
||||
|
|
|
|||
|
|
@ -1,169 +0,0 @@
|
|||
<head>
|
||||
<title>color(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>COLOR(7)</b><td align=right><b>COLOR(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
color – 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>
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
<head>
|
||||
<title>face(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>FACE(7)</b><td align=right><b>FACE(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
face – 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>
|
||||
|
|
@ -1,101 +0,0 @@
|
|||
<head>
|
||||
<title>font(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>FONT(7)</b><td align=right><b>FONT(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
font, subfont – 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>
|
||||
|
|
@ -1,175 +0,0 @@
|
|||
<head>
|
||||
<title>image(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>IMAGE(7)</b><td align=right><b>IMAGE(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
image – 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>
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Manual Section 7 - Plan 9 from User Space</title>
|
||||
</head>
|
||||
<body>
|
||||
<table width=100%>
|
||||
<tr><td width=20><td>
|
||||
<center>
|
||||
<table border=0 cellspacing=0 cellpadding=0 width=100%>
|
||||
<tr height=1><td width=200><td>
|
||||
<tr><td colspan=2>
|
||||
<center>
|
||||
<b>Manual Section 7 - Plan 9 from User Space</b>
|
||||
</center>
|
||||
<tr height=10><td>
|
||||
<tr height=1><td>
|
||||
<tr height=1><td colspan=2 bgcolor=#cccccc>
|
||||
<tr height=1><td>
|
||||
<tr><td valign=top><a href="color.html">color(7)</a><td>color – 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>
|
||||
|
|
@ -1,292 +0,0 @@
|
|||
<head>
|
||||
<title>man(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>MAN(7)</b><td align=right><b>MAN(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
man – 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>
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
<head>
|
||||
<title>map(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>MAP(7)</b><td align=right><b>MAP(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
map – 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>
|
||||
185
man/man7/ms.html
185
man/man7/ms.html
|
|
@ -1,185 +0,0 @@
|
|||
<head>
|
||||
<title>ms(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>MS(7)</b><td align=right><b>MS(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
ms – 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>
|
||||
|
|
@ -1,386 +0,0 @@
|
|||
<head>
|
||||
<title>plot(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>PLOT(7)</b><td align=right><b>PLOT(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
plot – 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>
|
||||
|
|
@ -1,357 +0,0 @@
|
|||
<head>
|
||||
<title>plumb(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>PLUMB(7)</b><td align=right><b>PLUMB(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
plumb – 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>
|
||||
|
|
@ -1,131 +0,0 @@
|
|||
<head>
|
||||
<title>regexp(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>REGEXP(7)</b><td align=right><b>REGEXP(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
regexp – 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>
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
<head>
|
||||
<title>thumbprint(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>THUMBPRINT(7)</b><td align=right><b>THUMBPRINT(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
thumbprint – 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>
|
||||
|
|
@ -1,96 +0,0 @@
|
|||
<head>
|
||||
<title>utf(7) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>UTF(7)</b><td align=right><b>UTF(7)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
UTF, Unicode, ASCII, rune – 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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue