checkpoint

This commit is contained in:
rsc 2005-01-14 03:45:44 +00:00
parent 2634795b5f
commit 78e51a8c66
314 changed files with 48199 additions and 300 deletions

View File

@ -134,3 +134,8 @@ xd
yacc
yuv
zip
grep
iconv
import
sed
troff2html

143
bin/man
View File

@ -2,11 +2,9 @@
. $PLAN9/man/fonts
cmd=n
sec=()
S=$PLAN9/man
d=0
#
# formatters
#
fn roff {
preproc=()
x=`{doctype $2}
@ -38,6 +36,46 @@ fn roff {
}
}
fn doecho { echo $1 }
fn dotroff { roff t $1 }
fn doproof { roff t $1 | proof }
fn dopage { roff t $1 | page }
fn donroff {
roff n $1 | sed '
${
/^$/p
}
//N
/^\n$/D
'
}
seq=0
fn dohtml {
MAN=manhtml
b=`{echo $1 | sed 's/\.[0-9].*//'}
if(test -f $b.html)
web $b.html
if not{
roff t $1 | troff2html >/tmp/man.$pid.$seq.html
web /tmp/man.$pid.$seq.html
seq=`{echo 1+$seq | hoc}
}
}
#
# setup
#
if(! ~ $path(1) $PLAN9/bin)
path=($PLAN9/bin $path)
cmd=donroff
sec=()
S=$PLAN9/man
#
# parse flags and sections
#
d=0
while(~ $d 0) {
if(~ $#* 0) {
echo 'Usage: man [-ntp] [-s sec] [0-9] [0-9] ... name1 name2 ...' >[1=2]
@ -48,63 +86,62 @@ while(~ $d 0) {
shift
}
if not switch($1) {
case -t ; cmd=t ; shift
case -n ; cmd=n ; shift
case -p ; cmd=p ; shift
case -P ; cmd=P ; shift
case -t ; fmt=dotroff ; shift
case -n ; cmd=donroff ; shift
case -p ; cmd=doproof ; shift
case -P ; cmd=dopage ; shift
case -w ; cmd=doecho ; shift
case -h ; cmd=dohtml ; shift
case -- ; d=1 ; shift
case * ; d=1
}
}
if(~ $#sec 0) {
sec=`{ls -pd $S/man[0-9]* | sed 's/man//'}
}
ix=$S/man$sec/INDEX
if(~ $#* 1) pat='^'^$1^' '
if not pat='^('^`{echo $* | 9 sed 's/ /|/g'}^') '
fils=()
for(i in $S/man$sec){
if(test -f $i/INDEX){
try=`{grep $pat $i/INDEX | 9 sed 's/^[^ ]* //'}
if(! ~ $#try 0)
fils=($fils $i/$try)
}
}
# bug: should also do following loop if not all pages found
if(~ $#fils 0) {
# nothing in INDEX. try for file of given name
for(i) {
for(n in $sec) {
try=$S/man$n/$i.$n*
if (test -f $try)
fils=($fils $try)
#
# search index
#
allfiles=()
missing=no
for(word){
files=()
regexp='^'^$word^' '
for(i in $S/man$sec){
if(test -f $i/INDEX){
try=`{grep $regexp $i/INDEX | sed 's/^[^ ]* //'}
if(! ~ $#try 0)
files=($files $i/$try)
}
}
if(~ $#fils 0) {
echo 'man: no manual page' >[1=2]
exit 'no man'
if(~ $#files 0){
for(i in $S/man$sec){
if(test -f $i/$word.[0-9]*)
files=($files $i/$word.[0-9]*)
}
}
if(~ $#files 0){
echo 'man: no manual page' $word >[1=2]
missing=yes
}
allfiles=($allfiles $files)
}
for(i in $fils) {
if(! test -f $i)
if(~ $#allfiles 0)
exit 'no man'
allfiles=`{ls $allfiles | sort -u >[2]/dev/null}
files=()
for(i in $allfiles){
if(test -f $i)
files=($files $i)
if not
echo need $i >[1=2]
if not {
switch($cmd) {
case t
roff t $i
case p
roff t $i | proof
case P
roff t $i |tr2post |psfonts |page
case n
roff n $i | 9 sed '
${
/^$/p
}
//N
/^\n$/D'
}
}
}
#
# format pages
#
for(i in $files)
$cmd $i

View File

@ -1,2 +1 @@
pgw
pgwindex
*

162
dist/download.html vendored Normal file
View File

@ -0,0 +1,162 @@
<html>
<!--
Edit ./^$/,s/<table border=0 cellspacing=0 cellpadding=0 width=100%/<Table/g
Edit ./^$/,s/<Table/<table border=0 cellspacing=0 cellpadding=0 width=100%/g
-->
<head>
<base href="http://swtch.com/plan9port/">
<title>Plan 9 from User Space - Download</title>
</head>
<body bgcolor=#ffffff>
<Table>
<tr height=10><td width=20><td><td width=20>
<tr><td><td>
<center>
<img src="dist/spaceglenda100.png" alt="Space Glenda">
</center>
<Table><tr height=10><td></table>
<center>
<font size=+1><b>Plan 9 from User Space - Download</b></font>
</center>
<Table><tr height=10><td></table>
<center>
<a href="man/man1/intro.html">overview</a>
|
<a href="screenshots/">screen shots</a>
|
<a href="man/">manual</a>
|
<a href="man/man1/install.html">install notes</a>
|
<a href="download.html">download</a>
|
<a href="man/man1/cvs.html">cvs</a>
|
<a href="unix/">unix</a>
</center>
<Table><tr height=10><td></table>
Plan 9 from User Space (aka plan9port)
is a port of many Plan 9 programs from their native
<a href="http://plan9.bell-labs.com/plan9/">Plan 9</a>
environment to Unix-like operating systems.
<Table><tr height=20><td></table>
<b>supported systems</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Linux <font size=-1>(x86 and PowerPC)</font>,
FreeBSD <font size=-1>(x86)</font>,
Mac OS X <font size=-1>(Power PC)</font>,
SunOS <font size=-1>(Sparc)</font>.
</table>
<Table><tr height=20><td></table>
<b>getting started</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Start with the overview in
<a href="man/man1/intro.html"><i>intro</i>(1)</a>.
<a href="man/man1/install.html"><i>Install</i>(1)</a>
explains how to install the system.
</table>
<Table><tr height=20><td></table>
<b>acknowledgements</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Most obviously, plan9port derives from
<a href="http://plan9.bell-labs.com/plan9">Plan 9 from Bell Labs</a>
and would not exist without the work of the Plan 9 team over the
past many years.
<Table><tr height=10><td></table>
Many people have provided help,
ported programs, written bug reports,
sent useful patches, and gotten plan9port running on new
operating systems. A few have done far more than their fair share.
<Table><tr height=10><td></table>
Rob Pike suggested the original X11 port of libdraw years ago,
as part of drawterm, and strongly encouraged the Mac OS X work.
He has also been a consistent source of good ideas to hide
the ugliness of modern Unix.
<Table><tr height=10><td></table>
William Josephson handled
<a href="man/man1/troff.html"><i>troff</i>(1)</a>
(with Taj Khattra) and many of
the supporting programs. He also inspired the recent thread library
clean-up and has ported a handful of applications.
<Table><tr height=10><td></table>
Andrey Mirtchovski and Axel Belinfante have done significant
work dealing with X11 corner cases and fine-tuning
<a href="man/man1/rio.html"><i>rio</i>(1)</a>.
Axel never tires of finding bugs in the SunOS port.
<Table><tr height=10><td></table>
Eric Van Hensbergen brought the system up on Linux/PowerPC.
<Table><tr height=10><td></table>
Thanks to all.
</table>
<Table><tr height=20><td></table>
<b>contact</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Russ Cox <font size=-1>(<a href="mailto:rsc@swtch.com">rsc@swtch.com</a>)
</table>
<Table><tr height=20><td></table>
<b>unix extracts</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
The UTF-8 library, the formatted print library,
the buffered I/O library, the (Unicode-capable) regular expression
library, and mk are available in packaging separate from plan9port.
</table>
<Table><tr height=20><td></table>
<b>history</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
<a href="http://plan9.bell-labs.com/plan9dist/ureg.html">
Sean Quinlan's 9pm
</a> &#8722; a port of an earlier Plan 9 (including <a href="man/man1/sam.html"><i>sam</i>(1)</a>) to Windows
<br>
<a href="http://www.cs.usyd.edu.au/~matty/9term/">
Matty Farrow's 9term
</a> &#8722; a native X11 version that inspired <a href="man/man1/9term.html"><i>9term</i>(1)</a>
<br>
<a href="http://unauthorised.org/dhog/9wm.html">David Hogan's 9wm</a>
and
<a href="http://lists.cse.psu.edu/archives/9fans/1994-November/003081.html">Arnold Robbin's 9menu</a> &#8722; precursor to
<a href="man/man1/rio.html"><i>rio</i>(1)</a>
<br>
<a href="http://www.star.le.ac.uk/~tjg/rc/">Byron Rakitzis's rc</a> &#8722; a mostly-compatible clone of Plan 9's <a href="man/man1/rc.html"><i>rc</i>(1)</a>
<br>
<a href="http://www.cs.yorku.ca/~oz/wily/">Gary Capell's wily</a> &#8722; an <a href="man/man1/acme.html"><i>acme</i>(1)</a>-inspired editor
</table>
<tr height=10><td>
</table>
</body>
</html>

175
dist/main.html vendored Normal file
View File

@ -0,0 +1,175 @@
<html>
<!--
Edit ./^$/,s/<table border=0 cellspacing=0 cellpadding=0 width=100%/<Table/g
Edit ./^$/,s/<Table/<table border=0 cellspacing=0 cellpadding=0 width=100%/g
-->
<head>
<base href="http://swtch.com/plan9port/">
<title>Plan 9 from User Space</title>
</head>
<body bgcolor=#ffffff>
<Table>
<tr height=10><td width=20><td><td width=20>
<tr><td><td>
<center>
<img src="dist/spaceglenda100.png" alt="Space Glenda">
</center>
<Table><tr height=10><td></table>
<center>
<font size=+1><b>Plan 9 from User Space</b></font>
</center>
<Table><tr height=10><td></table>
<center>
<a href="man/man1/intro.html">overview</a>
|
<a href="screenshots/">screen shots</a>
|
<a href="man/">manual</a>
|
<a href="man/man1/install.html">install notes</a>
|
<a href="man/man1/cvs.html">cvs</a>
|
<a href="unix/">unix</a>
</center>
<Table><tr height=10><td></table>
Plan 9 from User Space (aka plan9port)
is a port of many Plan 9 programs from their native
<a href="http://plan9.bell-labs.com/plan9/">Plan 9</a>
environment to Unix-like operating systems.
<Table><tr height=20><td></table>
<b>supported systems</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Linux <font size=-1>(x86 and PowerPC)</font>,
FreeBSD <font size=-1>(x86)</font>,
Mac OS X <font size=-1>(Power PC)</font>,
SunOS <font size=-1>(Sparc)</font>.
</table>
<Table><tr height=20><td></table>
<b>getting started</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Start with the overview in
<a href="man/man1/intro.html"><i>intro</i>(1)</a>.
For information on installing the system, see
<a href="man/man1/install.html"><i>Install</i>(1)</a>.
</table>
<Table><tr height=20><td></table>
<b>download</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
latest tree: <a href="plan9port.tgz">plan9port.tgz</a>
<font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/plan9port.tgz">date and checksums</a>)</font>
</table>
<Table><tr height=20><td></table>
<b>acknowledgements</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Most obviously, plan9port derives from
<a href="http://plan9.bell-labs.com/plan9">Plan 9 from Bell Labs</a>
and would not exist without the work of the Plan 9 team over the
past many years.
<Table><tr height=10><td></table>
Rob Pike suggested the original X11 port of libdraw years ago,
as part of drawterm, and strongly encouraged the Mac OS X work.
He has also been a consistent source of good ideas to hide
the ugliness of modern Unix.
<Table><tr height=10><td></table>
William Josephson handled
<a href="man/man1/troff.html"><i>troff</i>(1)</a>
(with Taj Khattra) and many of
the supporting programs. He also inspired the recent thread library
clean-up and has ported a handful of applications.
<Table><tr height=10><td></table>
Andrey Mirtchovski and Axel Belinfante have done significant
work dealing with X11 corner cases and fine-tuning
<a href="man/man1/rio.html"><i>rio</i>(1)</a>.
Axel never tires of finding bugs in the SunOS port.
<Table><tr height=10><td></table>
Latchesar Ionkov has contributed many fixes to tricky bugs.
<Table><tr height=10><td></table>
Many other people have provided help,
ported programs, written bug reports,
sent useful patches, and gotten plan9port running on new
systems.
<Table><tr height=10><td></table>
Thanks to all.
</table>
<Table><tr height=20><td></table>
<b>contact</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
Russ Cox <font size=-1>(<a href="mailto:rsc@swtch.com">rsc@swtch.com</a>)
</table>
<Table><tr height=20><td></table>
<b>unix extracts</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
The UTF-8 library, the formatted print library,
the buffered I/O library, the (Unicode-capable) regular expression
library, and mk are available in packaging separate from plan9port.
<Table><tr height=10><td></table>
See <a href="http://swtch.com/plan9port/unix/">http://swtch.com/plan9port/unix/</a>.
</table>
<Table><tr height=20><td></table>
<b>history</b>
<Table>
<tr height=10><td width=20><td>
<tr><td><td>
<a href="http://plan9.bell-labs.com/plan9dist/ureg.html">
Sean Quinlan's 9pm
</a> &#8722; a port of an earlier Plan 9 (including <a href="man/man1/sam.html"><i>sam</i>(1)</a>) to Windows
<br>
<a href="http://www.cs.usyd.edu.au/~matty/9term/">
Matty Farrow's 9term
</a> &#8722; a native X11 version that inspired <a href="man/man1/9term.html"><i>9term</i>(1)</a>
<br>
<a href="http://unauthorised.org/dhog/9wm.html">David Hogan's 9wm</a>
and
<a href="http://lists.cse.psu.edu/archives/9fans/1994-November/003081.html">Arnold Robbin's 9menu</a> &#8722; precursor to
<a href="man/man1/rio.html"><i>rio</i>(1)</a>
<br>
<a href="http://www.star.le.ac.uk/~tjg/rc/">Byron Rakitzis's rc</a> &#8722; a mostly-compatible clone of Plan 9's <a href="man/man1/rc.html"><i>rc</i>(1)</a>
<br>
<a href="http://www.cs.yorku.ca/~oz/wily/">Gary Capell's wily</a> &#8722; an <a href="man/man1/acme.html"><i>acme</i>(1)</a>-inspired editor
</table>
<tr height=10><td>
</table>
</body>
</html>

13
dist/manindexbottom.html vendored Normal file
View File

@ -0,0 +1,13 @@
</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>

15
dist/manindextop.html vendored Normal file
View File

@ -0,0 +1,15 @@
<html>
<head>
<title>Manual Section NNN - 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 NNN - Plan 9 from User Space</b>
</center>
<tr height=10><td>

7
dist/mantrailer.html vendored Normal file
View File

@ -0,0 +1,7 @@
<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>

64
dist/manweb vendored Executable file
View File

@ -0,0 +1,64 @@
#!/usr/local/plan9/bin/rc
path=($PLAN9/bin $path)
cd $PLAN9/man
# rm -f */*.html
for(i in */INDEX) @{
n=`{echo $i | sed 's/man//;s!/INDEX!!'}
cat $PLAN9/dist/manindextop.html | sed 's/NNN/'$n'/g'
cd `{basename -d $i}
# complicated sort order: want 9p.3, 9p-cmdbuf.3, 9pclient.3
for (j in `{ls [a-z0-9:]*.[0-9]* | sed 's/[.\-]/ &/g;s/\./ &/g' | sort | tr -d ' '}){
n=`{grep '^\.TH' $j | sed 1q | awk '{print $3}'}
name=`{echo $j | sed 's/\..*//'}
if(~ $name 0intro)
name=intro
if not{
echo '<tr height=1><td>'
echo '<tr height=1><td colspan=2 bgcolor=#cccccc>'
echo '<tr height=1><td>'
}
echo -n '<tr><td valign=top><a href="'$name'.html">'$name'('$n')</a><td>'
sed -n '
/SH *NAM/,/SH/{
/SH/d
s/, *$//
ty
:y
s/ *\\*-.*/&/
tx
s/ *\\\(mi.*/&/
tx
s/\n\\n/\
/g
p
}
/SH *DES/q
d
:x
/^$/d
s/\n\n/\
/g
s/\\-/\&ndash;/
p
q' $j
}
cat $PLAN9/dist/manindexbottom.html
} >$i.html && mv $i.html `{echo $i.html | tr A-Z a-z}
for (i in */[~.]*.[0-9]*){
j=`{echo $i | 9 sed 's/\..*//'}
p=`{basename $j}
d=`{basename -d $j}
if(~ $p 0intro)
p=intro
echo $d/$p
troff -manhtml $i | troff2html -t 'Plan 9 from User Space'>/tmp/manweb.html
{
sed '/<!-- TRAILER -->/q' /tmp/manweb.html
cat $PLAN9/dist/mantrailer.html
sed -n '/<!-- TRAILER -->/,$p' /tmp/manweb.html
} >$d/$p.html
}
rm /tmp/manweb.html

13
dist/mkfile vendored
View File

@ -1,5 +1,16 @@
MKSHELL=rc
check.out:V:
cd ../man; mk indices
cd ..
awk -f dist/checkman.awk man/man*/*.* >dist/check.out
9 awk -f dist/checkman.awk man/man*/*.[0-9]* >dist/check.out
man:V:
rc ./manweb
push:V:
rsync -e ssh -avz --delete $PLAN9/man/ swtch:www/swtch.com/plan9port/man
rsync -e ssh unix.html swtch:www/swtch.com/plan9port/unix/index.html
rsync -e ssh main.html swtch:www/swtch.com/plan9port/nindex.html
@{cd ../unix/man && mk push}
@{cd ../unix && mk push}

BIN
dist/spaceglenda100.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

234
dist/unix.html vendored Normal file
View File

@ -0,0 +1,234 @@
<html>
<!--
Edit ./^$/,s/<table border=0 cellspacing=0 cellpadding=0 width=100%/<Table/g
Edit ./^$/,s/<Table/<table border=0 cellspacing=0 cellpadding=0 width=100%/g
-->
<head>
<base href="http://swtch.com/plan9port/unix/">
<title>Unix Software from Plan 9</title>
</head>
<body bgcolor=#ffffff>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td><td width=20>
<tr><td><td>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<center>
<font size=+1><b>Unix Software from Plan 9</b></font>
</center>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
These are ports of <a href="http://plan9.bell-labs.com/plan9">Plan 9</a>'s
UTF-8, formatted print, buffered I/O, and regular expression
libraries, along with mk, a simple replacement for make.
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>supported systems</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Digital Unix OSF1 <font size=-1>(Alpha)</font>,
Linux <font size=-1>(x86 and PowerPC)</font>,
FreeBSD <font size=-1>(x86)</font>,
NetBSD <font size=-1>(x86)</font>,
Mac OS X <font size=-1>(Power PC)</font>,
OpenBSD <font size=-1>(x86)</font>,
SunOS <font size=-1>(Sparc)</font>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>installation</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Links to source tgzs are below.
On supported systems, extract and <font size=+1><tt>make install</tt></font>.
The default installation target is <font size=+1><tt>/usr/local</tt></font>. To install elsewhere,
<font size=+1><tt>make PREFIX=/usr/elsewhere install</tt></font>.
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
On unsupported systems, you will need to create
<font size=+1><tt>Make.<i>YourOS</i>-<i>YourArch</i></tt></font>.
See the existing ones for examples.
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>libutf</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Libutf is a port of Plan 9's support library for UTF-8 and Unicode.
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>manual:</font>
<!-- [ 9 man -w `{nm /usr/local/lib/libutf.a | awk '$2=="T" {print $3}'} ]-->
<a href="man/isalpharune3.html"><i>isalpharune</i>(3)</a>,
<a href="man/rune3.html"><i>rune</i>(3)</a>,
<a href="man/runestrcat3.html"><i>runestrcat</i>(3)</a>,
<a href="man/utf7.html"><i>utf</i>(7)</a>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>download:</font> <a href="libutf.tgz">libutf.tgz</a> <font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/unix/libutf.tgz">checksums</a>)</font>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>license: original <a href="license-bl.txt">Bell Labs MIT-like</a>
or <a href="http://plan9.bell-labs.com/plan9dist/license.html">Lucent Public License</a></font>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>libfmt</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Libfmt is a port of Plan 9's formatted print library.
As a base it provides all the syntax of ANSI C's printf but adds
the ability for client programs to install new print verbs.
One such print verb (installed by default) is <font size=+1><tt>%r</tt></font>, which prints
the system error string.
Instead of <font size=+1><tt>perror("foo")</tt></font>, you can write
<font size=+1><tt>fprint(2, "foo: %r\n");</tt></font>.
This is especially nice when you write verbs to format the
data structures used by your particular programs.
Needs libutf.
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>manual:</font>
<!-- [ 9 man -w `{nm /usr/local/lib/libfmt.a | awk '$2=="T" {print $3}'} ]-->
<a href="man/print3.html"><i>print</i>(3)</a>,
<a href="man/fmtinstall3.html"><i>fmtinstall</i>(3)</a>,
<a href="man/quote3.html"><i>quote</i>(3)</a>,
<a href="man/fmtstrtod3.html"><i>fmtstrtod</i>(3)</a>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>download:</font> <a href="libfmt.tgz">libfmt.tgz</a> <font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/unix/libfmt.tgz">checksums</a>)</font>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>License: original <a href="license-bl.txt">Bell Labs MIT-like</a>
or <a href="http://plan9.bell-labs.com/plan9dist/license.html">Lucent Public License</a></font>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>libbio</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Libbio is a port of Plan 9's buffered I/O library.
It provides most of the same functionality as stdio or sfio,
but with a simpler interface and smaller footprint.
Needs libutf and libfmt.
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>manual:</font>
<a href="man/bio3.html"><i>bio</i>(3)</a>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>download:</font> <a href="libbio.tgz">libbio.tgz</a> <font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/unix/libbio.tgz">checksums</a>)</font>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>License: <a href="license-vn.txt">Vita Nuova Free-for-All</a>
or <a href="http://plan9.bell-labs.com/plan9dist/license.html">Lucent Public License</a></font>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>libregexp9</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Libregexp9 is a port of Plan 9's Unicode-capable regular expression library.
It is small and simple and provides the traditional extended regular
expressions (without modern complications like
<font size=+1><tt>{}</tt></font> and various <font size=+1><tt>\x</tt></font> character classes).
It supports Unicode via wide character or UTF-8 encoding.
Needs libutf and libfmt.
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>manual:</font>
<a href="man/regexp93.html"><i>regexp9</i>(3)</a>,
<a href="man/regexp97.html"><i>regexp9</i>(7)</a>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>download:</font> <a href="libregexp9.tgz">libregexp9.tgz</a> <font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/unix/libregexp9.tgz">checksums</a>)</font>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>License: <a href="license-vn.txt">Vita Nuova Free-for-All</a>
or <a href="http://plan9.bell-labs.com/plan9dist/license.html">Lucent Public License</a></font>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>mk</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Mk is a simple replacement for <i>make</i>.
Needs libutf, libfmt, libbio, and libregexp9.
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>manual:</font>
<a href="man/mk1.html"><i>mk</i>(1)</a>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>download:</font> <a href="mk.tgz">mk.tgz</a> <font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/unix/mk.tgz">checksums</a>)</font>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>License: <a href="license-vn.txt">Vita Nuova Free-for-All</a>
or <a href="http://plan9.bell-labs.com/plan9dist/license.html">Lucent Public License</a></font>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>one with everything</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Includes mk and all the libraries.
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=10><td></table>
<font size=-1>download:</font> <a href="mk-with-libs.tgz">mk-with-libs.tgz</a> <font size=-1>(<a href="/cgi-bin/info.cgi?file=/plan9port/unix/mk-with-libs.tgz">checksums</a>)</font>
</table>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr height=20><td></table>
<b>contact</b>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=10><td width=20><td>
<tr><td><td>
Russ Cox <font size=-1>(<a href="mailto:rsc@swtch.com">rsc@swtch.com</a>)
</table>
<tr height=10><td>
<tr><td><td><center><a href=".."><img src="../dist/spaceglenda100.png" border=1 alt="Space Glenda"></a></center>
<tr height=10><td>
</table>
</body>
</html>

View File

@ -4,7 +4,9 @@
extern "C" {
#endif
#ifdef AUTOLIB
AUTOLIB(bio)
#endif
#include <sys/types.h> /* for off_t */
#include <fcntl.h> /* for O_RDONLY, O_WRONLY */

View File

@ -4,7 +4,9 @@
extern "C" {
#endif
#ifdef AUTOLIB
AUTOLIB(regexp9)
#endif
#include <utf.h>

45
man/index.html Normal file
View File

@ -0,0 +1,45 @@
<html>
<head>
<title>Manual - 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 - Plan 9 from User Space</b>
</center>
<tr height=10><td>
<tr><td valign=top><a href="man1/index.html">Section 1</a><td>commands
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="man3/index.html">Section 3</a><td>C library functions
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="man4/index.html">Section 4</a><td>file servers
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="man7/index.html">Section 7</a><td>file formats, protocols, and conventions
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="man9/index.html">Section 9P</a><td>the Plan 9 file protocol
</table>
</center>
<td width=20>
</table>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=5><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>
</body>
</html>

100
man/man1/9.html Normal file
View File

@ -0,0 +1,100 @@
<head>
<title>9(1) - 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>9(1)</b><td align=right><b>9(1)</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>
9 &ndash; run Plan 9 commands<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>9</font></tt> <i>cmd</i> [ <i>args</i> ... ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>. 9<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>
Because Plan 9 supplies commands with the same name as but different
behavior than many basic Unix system commands (e.g., <tt><font size=+1>grep</font></tt>, <tt><font size=+1>sed</font></tt>,
<tt><font size=+1>mkdir</font></tt>, <tt><font size=+1>rm</font></tt>), it is not recommended to run with the Plan 9 bin directory
ahead of the system directories.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9</i> is a shell script that sets up a Plan 9 environment and runs
<i>cmd .</i> It sets <tt><font size=+1>$PLAN9</font></tt> and adds <tt><font size=+1>$PLAN9/bin</font></tt> to the beginning of <tt><font size=+1>$PATH</font></tt>
before running <i>cmd</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If run with no arguments, <tt><font size=+1>9</font></tt> does not do anything. This is so that
it can be invoked from <i>sh</i>-style shells using <tt><font size=+1>. 9</font></tt> in order to make
the current shell start running in the Plan 9 environment.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Search for greek in the password file:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>$ 9 grep '[&#945;&#8722;&#950;]' /etc/passwd<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Start an <a href="../man1/rc.html"><i>rc</i>(1)</a> with the Plan 9 commands in the path before the
system commands.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>9 rc<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/bin/9<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/intro.html"><i>intro</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>

172
man/man1/9c.html Normal file
View File

@ -0,0 +1,172 @@
<head>
<title>9c(1) - 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>9C(1)</b><td align=right><b>9C(1)</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>
9c, 9a, 9l, 9ar &ndash; C compiler, assembler, linker, archiver<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>9c</font></tt> [ <tt><font size=+1>&#8722;I</font></tt> <i>path</i> ] [ <tt><font size=+1>&#8722;D</font></tt> <i>name</i> ] <i>file</i> ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>9a</font></tt> <i>file</i> ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>9l</font></tt> [ <i>-o target</i> ] <i>object</i> ... [ <i>library</i> ... ] [ <tt><font size=+1>&#8722;L</font></tt><i>path</i> ... ] [ <tt><font size=+1>&#8722;l</font></tt><i>name</i>
... ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>9ar</font></tt> <i>key</i> [ <i>posname</i> ] <i>afile</i> [ <i>file</i> ... ]<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>
These programs are shell scripts that invoke the appropriate standard
tools for the current operating system and architecture. One can
use them to write portable recipes for mkfiles.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9c</i> compiles the named C <i>files</i> into object files for the current
system. The system C compiler is invoked with warnings enabled.
The <tt><font size=+1>&#8722;I</font></tt> option adds <i>path</i> to the include path, and the <tt><font size=+1>&#8722;D</font></tt> option
defines <i>name</i> in the C preprocessor. <i>9c</i> always defines the symbol
<tt><font size=+1>PLAN9PORT</font></tt> defined in the C preprocessor and adds
<tt><font size=+1>$PLAN9/include</font></tt> to the include path.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9c</i> also defines <tt><font size=+1>__sun__</font></tt> on SunOS systems and <tt><font size=+1>__Linux26__</font></tt> on Linux
systems with 2.6-series kernels.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9a</i> assembles the named files into object files for the current
system. Unlike some system assemblers, it does <i>not</i> promise to
run the C preprocessor on the source files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9l</i> links the named object files and libraries to create the target
executable. Each <tt><font size=+1>&#8722;l</font></tt> option specifies that a library named <tt><font size=+1>lib</font></tt><i>name</i><tt><font size=+1>.a</font></tt>
be found and linked. The <tt><font size=+1>&#8722;L</font></tt> option adds directories to the library
search path. <i>9l</i> invokes the system linker with <tt><font size=+1>$PLAN9/lib</font></tt> already
on the library search path.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9l</i> searches the named objects and libraries for symbols of the
form <tt><font size=+1>__p9l_autolib_</font></tt><i>name</i>, which it takes as indication that it
should link <tt><font size=+1>$PLAN9/lib/lib</font></tt><i>name</i><tt><font size=+1>.a</font></tt> as well. It also examines such
libraries to find their own dependencies. A single <tt><font size=+1>&#8722;l</font></tt> option at
the beginning of the command line disables this
behavior. The symbol <tt><font size=+1>__p9l_autolib_</font></tt><i>name</i> is added to an object
file by the macro <tt><font size=+1>AUTOLIB( name )</font></tt>, defined in <tt><font size=+1>&lt;u.h&gt;.</font></tt> Header files
associated with libraries contain <tt><font size=+1>AUTOLIB</font></tt> annotations; ordinary
programs need not use them. Due to shortcomings in the implementation,
a source file may not contain the
same <tt><font size=+1>AUTOLIB</font></tt> statement multiple times.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9ar</i> maintains object file archives called libraries. The exact
set of valid command keys varies from system to system, but <i>9ar</i>
always provides the following key characters:<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete <i>files</i> from the archive file.<br>
<tt><font size=+1>r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace <i>files</i> in the archive file, or add them if missing.<br>
<tt><font size=+1>t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List a table of contents of the archive. If names are given,
only those files are listed.<br>
<tt><font size=+1>x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extract the named files. If no names are given, all files in
the archive are extracted. In neither case does <tt><font size=+1>x</font></tt> alter the archive
file.<br>
<tt><font size=+1>v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verbose. Give a file-by-file description of the making of a new
archive file from the old archive and the constituent files. With
<tt><font size=+1>t</font></tt>, give a long listing of all information about the files, somewhat
like a listing by <a href="../man1/ls.html"><i>ls</i>(1)</a>, showing<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>
<tt><font size=+1>mode uid/gid size date name<br>
</font></tt>
</table>
</table>
<tt><font size=+1>c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create. Normally <i>9ar</i> will create a new archive when <i>afile</i> does
not exist, and give a warning. Option <tt><font size=+1>c</font></tt> discards any old contents
and suppresses the warning.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When a <tt><font size=+1>d</font></tt>, <tt><font size=+1>r</font></tt>, or <tt><font size=+1>m</font></tt> <i>key</i> is specified, <i>9ar</i> inserts a table of contents,
required by the linker, at the front of the library. The table
of contents is rebuilt whenever the archive is modified.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>9c file1.c file2.c file3.c<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Compile three C source files.<br>
</table>
<tt><font size=+1>9a file4.s<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Assemble one assembler source file.<br>
</table>
<tt><font size=+1>9ar rvc lib.a file[12].o<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Archive the first two object files into a library.<br>
</table>
<tt><font size=+1>9l &#8722;o prog file3.o file4.o lib.a<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Link the final two object files and any necessary objects from
the library into an executable.<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/bin<br>
</font></tt>
</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>

122
man/man1/9p.html Normal file
View File

@ -0,0 +1,122 @@
<head>
<title>9p(1) - 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>9P(1)</b><td align=right><b>9P(1)</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>
9p &ndash; read and write files on a 9P server<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>9p</font></tt> [ <tt><font size=+1>&#8722;a</font></tt> <i>addr</i> ] <tt><font size=+1>read</font></tt> <i>path<br>
</i><tt><font size=+1>9p</font></tt> [ <tt><font size=+1>&#8722;a</font></tt> <i>addr</i> ] <tt><font size=+1>readfd</font></tt> <i>path
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>9p</font></tt> [ <tt><font size=+1>&#8722;a</font></tt> <i>addr</i> ] <tt><font size=+1>write</font></tt> <i>path<br>
</i><tt><font size=+1>9p</font></tt> [ <tt><font size=+1>&#8722;a</font></tt> <i>addr</i> ] <tt><font size=+1>writefd</font></tt> <i>path
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>9p</font></tt> [ <tt><font size=+1>&#8722;a</font></tt> <i>addr</i> ] <tt><font size=+1>stat</font></tt> <i>path<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>
<i>9p</i> is a trivial 9P client that can access a single file on a 9P
server. It can be useful for manual interaction with a 9P server
or for accessing simple 9P services from within shell scripts.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The first argument is a command, one of:<br>
<tt><font size=+1>read</font></tt>print the contents of <i>path</i> to standard output<br>
<tt><font size=+1>write<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
write data on standard input to <i>path<br>
</i>
</table>
<tt><font size=+1>readfd</font></tt>, <tt><font size=+1>writefd<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
like <tt><font size=+1>read</font></tt> and <tt><font size=+1>write</font></tt> but use <i>openfd</i>(9p) instead of <i>open</i>; this masks
errors and is mainly useful for debugging the implementation of
<i>openfd<br>
</i>
</table>
<tt><font size=+1>stat</font></tt>execute <i>stat (9p)</i> on <i>path</i> and print the result
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9p</i> dials <i>address</i> to connect to the 9P server. If the <tt><font size=+1>&#8722;a</font></tt> option
is not given, <i>9p</i> requires the <i>path</i> to be of the form <i>service</i><tt><font size=+1>/</font></tt><i>subpath</i>;
it connects to the Unix domain socket <i>service</i> in the name space
directory (see <a href="../man4/intro.html"><i>intro</i>(4)</a>) and then accesses <i>subpath</i>.<br>
</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>
To update <a href="../man4/plumber.html"><i>plumber</i>(4)</a>&#8217;s copy of your plumbing rules after editing
<tt><font size=+1>$HOME/lib/plumbing</font></tt>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>cat $HOME/lib/plumbing | 9p write plumb/rules<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
To display the contents of the current <a href="../man4/acme.html"><i>acme</i>(4)</a> window:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>9p read acme/$winid/body<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/9p.c<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="../man4/intro.html"><i>intro</i>(4)</a>, <i>intro</i>(9p), <a href="../man3/9pclient.html"><i>9pclient</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>

259
man/man1/9term.html Normal file
View File

@ -0,0 +1,259 @@
<head>
<title>9term(1) - 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>9TERM(1)</b><td align=right><b>9TERM(1)</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>
9term &ndash; terminal windows<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>9term</font></tt> [ <tt><font size=+1>&#8722;as</font></tt> ] [ <tt><font size=+1>&#8722;f</font></tt> <i>font</i> ] [ <i>cmd</i> ... ]<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>
<i>9term</i> is a terminal window program for the X Window System, providing
an interface similar to that used on Plan 9.<br>
<p><font size=+1><b>Command </b></font><br>
The <i>9term</i> command starts a new window.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;a</font></tt> flag causes button 2 to send the selection immediately,
like acme. Otherwise button 2 brings up a menu, described below.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;s</font></tt> option initializes windows so that text scrolls; the default
is not to scroll.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <i>font</i> argument to <tt><font size=+1>&#8722;f</font></tt> names a font used to display text, both
in <i>9term</i>&#8217;s menus and as a default for any programs running in
its windows; it also establishes the environment variable <tt><font size=+1>$font</font></tt>.
If <tt><font size=+1>&#8722;f</font></tt> is not given, <i>9term</i> uses the imported value of <tt><font size=+1>$font</font></tt> if
set; otherwise it uses the graphics system default.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9term</i> runs the given command in the window, or <tt><font size=+1>$SHELL</font></tt> if no command
is given.<br>
<p><font size=+1><b>Text windows </b></font><br>
Characters typed on the keyboard collect in the window to form
a long, continuous document.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There is always some <i>selected text</i>, a contiguous string marked
on the screen by reversing its color. If the selected text is
a null string, it is indicated by a hairline cursor between two
characters. The selected text may be edited by mousing and typing.
Text is selected by pointing and clicking button 1 to make a null-
string selection, or by pointing, then sweeping with button 1
pressed. Text may also be selected by double-clicking: just inside
a matched delimiter-pair with one of <tt><font size=+1>{[(&lt;`'&quot;</font></tt> on the left and <tt><font size=+1>}])&gt;`'&quot;</font></tt>
on the right, it selects all text within the pair; at the beginning
or end of a line, it selects the line; within or at the
edge of an alphanumeric word, it selects the word.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Characters typed on the keyboard replace the selected text; if
this text is not empty, it is placed in a <i>snarf buffer</i> common
to all windows but distinct from that of <a href="../man1/sam.html"><i>sam</i>(1)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Programs access the text in the window at a single point maintained
automatically by <i>9term</i>. The <i>output point</i> is the location in the
text where the next character written by a program to the terminal
will appear; afterwards, the output point is the null string beyond
the new character. The output point is also the location
in the text of the next character that will be read (directly
from the text in the window, not from an intervening buffer) by
a program. Since Unix does not make it possible to know when a
program is reading the terminal, lines are sent as they are completed
(when the user types a newline character).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In general there is text in the window after the output point,
usually placed there by typing but occasionally by the editing
operations described below. A pending read of the terminal will
block until the text after the output point contains a newline,
whereupon the read may acquire the text, up to and including the
newline. After the read, as described above, the output point
will be at the beginning of the next line of text. In normal circumstances,
therefore, typed text is delivered to programs a line at a time.
Changes made by typing or editing before the text is read will
not be seen by the program reading it. Because of the
Unix issues mentioned above, a line of text is only editable until
it is completed with a newline character, or when hold mode (see
below) is enabled.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Even when there are newlines in the output text, <i>9term</i> will not
honor reads if the window is in <i>hold mode</i>, which is indicated
by a white cursor and blue text and border. The ESC character
toggles hold mode. Some programs automatically turn on hold mode
to simplify the editing of multi-line text; type ESC when done
to allow <i>mail</i> to read the text.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An EOT character (control-D) behaves exactly like newline except
that it is not delivered to a program when read. Thus on an empty
line an EOT serves to deliver an end-of-file indication: the read
will return zero characters. The BS character (control-H) erases
the character before the selected text. The ETB character
(control-W) erases any nonalphanumeric characters, then the alphanumeric
word just before the selected text. &#8216;Alphanumeric&#8217; here means
non-blanks and non-punctuation. The NAK character (control-U)
erases the text after the output point, and not yet read by a
program, but not more than one line. All these
characters are typed on the keyboard and hence replace the selected
text; for example, typing a BS with a word selected places the
word in the snarf buffer, removes it from the screen, and erases
the character before the word.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An ACK character (control-F) or Insert character triggers file
name completion for the preceding string (see <a href="../man3/complete.html"><i>complete</i>(3)</a>).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Text may be moved vertically within the window. A scroll bar on
the left of the window shows in its clear portion what fragment
of the total output text is visible on the screen, and in its
gray part what is above or below view; it measures characters,
not lines. Mousing inside the scroll bar moves text: clicking
button 1
with the mouse pointing inside the scroll bar brings the line
at the top of the window to the cursor&#8217;s vertical location; button
3 takes the line at the cursor to the top of the window; button
2, treating the scroll bar as a ruler, jumps to the indicated
portion of the stored text. Holding a button pressed in the scroll
bar will
cause the text to scroll continuously until the button is released.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Typing down-arrow scrolls forward one third of a window, and up-arrow
scrolls back. Typing page-down scrolls forward two thirds of a
window, and page-up scrolls back. Typing Home scrolls to the top
of the window; typing End scrolls to the end.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The DEL character sends an <tt><font size=+1>interrupt</font></tt> note to all processes in
the window&#8217;s process group. Unlike the other characters, the DEL
and arrow keys do not affect the selected text. The left (right)
arrow key moves the selection to one character before (after)
the current selection.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9term</i> relies on the kernel&#8217;s terminal processing to handle EOT
and DEL, so the terminal must be set up with EOT as the &#8220;eof&#8221;
character and DEL as the &#8220;intr&#8221; character. <i>9term</i> runs <a href="../man1/stty.html"><i>stty</i>(1)</a>
to establish this when the terminal is created.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Normally, written output to a window blocks when the text reaches
the end of the screen and the terminal buffer fills; a button
2 menu item toggles scrolling.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>9term</i> changes behavior according to the terminal settings of the
running programs. Most programs run with echo enabled. In this
mode, <i>9term</i> displays and allows editing of the input. Some programs,
typically those reading passwords, run with echo disabled. In
this mode, <i>9term</i> passes keystrokes through directly,
without echoing them or buffering until a newline character. These
heuristics work well in many cases, but there are a few common
ones where they fall short. First, programs using the GNU readline
library typically disable terminal echo and perform echoing themselves.
The most common example is the shell
<a href="../man1/bash.html"><i>bash</i>(1)</a>. Disabling the use of readline with &#8220;<tt><font size=+1>set +o emacs</font></tt>&#8221; [<i>sic</i>]
usually restores the desired behavior. Second, remote terminal
programs such as <a href="../man1/ssh.html"><i>ssh</i>(1)</a> typically run with echo disabled, relying
on the remote system to echo characters as desired. Plan 9&#8217;s <i>ssh</i>
has a <tt><font size=+1>&#8722;C</font></tt> flag to disable this, leaving the terminal in
&#8220;cooked&#8221; mode. For similar situations on Unix, <i>9term</i>&#8217;s button
2 menu has an entry to toggle the forced use of cooked mode, despite
the terminal settings. In such cases, it is useful to run &#8220;<tt><font size=+1>stty
&#8722;echo</font></tt>&#8221; on the remote system to avoid seeing your input twice.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Editing operations are selected from a menu on button 2. The <tt><font size=+1>cut</font></tt>
operation deletes the selected text from the screen and puts it
in the snarf buffer; <tt><font size=+1>snarf</font></tt> copies the selected text to the buffer
without deleting it; <tt><font size=+1>paste</font></tt> replaces the selected text with the
contents of the buffer; and <tt><font size=+1>send</font></tt> copies the snarf buffer to
just after the output point, adding a final newline if missing.
<tt><font size=+1>Paste</font></tt> will sometimes and <tt><font size=+1>send</font></tt> will always place text after the
output point; the text so placed will behave exactly as described
above. Therefore when pasting text containing newlines after the
output point, it may be prudent to turn on hold mode first.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>plumb</font></tt> menu item sends the contents of the selection (not the
snarf buffer) to the <i>plumber</i> (see <a href="../man1/plumb.html"><i>plumb</i>(1)</a>). If the selection
is empty, it sends the white-space-delimited text containing the
selection (typing cursor). A typical use of this feature is to
tell the editor to find the source of an error by plumbing the
file and
line information in a compiler&#8217;s diagnostic.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Each <i>9term</i> listens for connections on a Unix socket. When a client
connects, the <i>9term</i> writes the window contents to the client and
then hangs up. <i>9term</i> installs the name of this socket in the environment
as <tt><font size=+1>$text9term</font></tt> before running <i>cmd</i>.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/9term<br>
</font></tt>
</table>
<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 should be a program to toggle the current window&#8217;s hold
mode.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Unix makes everything harder.<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/wintext.html"><i>wintext</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>

486
man/man1/acid.html Normal file
View File

@ -0,0 +1,486 @@
<head>
<title>acid(1) - 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>ACID(1)</b><td align=right><b>ACID(1)</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>
acid, acidtypes &ndash; debugger<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>acid</font></tt> [ <tt><font size=+1>&#8722;l</font></tt> <i>library</i> ] [ <tt><font size=+1>&#8722;wq</font></tt> ] [ <tt><font size=+1>&#8722;m</font></tt> <i>machine</i> ] [ <i>pid</i> | <i>core</i> ] [ <i>textfile</i>
]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>acidtypes</font></tt> [ <tt><font size=+1>&#8722;p</font></tt> <i>prefix</i> ] <i>file</i> ...<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>
<i>Acid</i> is a programmable symbolic debugger. It can inspect one or
more processes that share an address space. A program to be debugged
may be specified by the process id of a running or defunct process,
or by the name of the program&#8217;s text file (<tt><font size=+1>a.out</font></tt> by default).
At the prompt, <i>acid</i> will store function definitions
or print the value of expressions. Options are<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allow the textfile to be modified.<br>
<tt><font size=+1>&#8722;q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print variable renamings at startup.<br>
<tt><font size=+1>&#8722;l</font></tt> <i>library</i>&nbsp;&nbsp;&nbsp;&nbsp;Load from <i>library</i> at startup; see below.<br>
<tt><font size=+1>&#8722;m</font></tt> <i>machine</i>&nbsp;&nbsp;&nbsp;Assume instructions are for the given CPU type (see
<a href="../man3/mach.html"><i>mach</i>(3)</a>) instead of using the executable header to select the
CPU type.<br>
<tt><font size=+1>&#8722;k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug the kernel state for the process, rather than the user
state.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
At startup, <i>acid</i> obtains standard function definitions from the
library file <tt><font size=+1>/usr/local/plan9/acid/port</font></tt>, architecture-dependent
functions from <tt><font size=+1>/usr/local/plan9/acid/$objtype</font></tt>, user-specified
functions from <tt><font size=+1>$home/lib/acid</font></tt>, and further functions from <tt><font size=+1>&#8722;l</font></tt> files.
Definitions in any file may
override previously defined functions. If the function <i>acidinit</i>()
is defined, it will be invoked after all modules have been loaded.
Then the function <i>acidmap</i>() will be invoked if defined. <tt><font size=+1>/usr/local/plan9/acid/port</font></tt>
provides a definition of <i>acidmap</i> that attaches all the shared
libraries being used by the target
process and then runs <i>acidtypes</i> (<i>q.v.</i>) to create <i>acid</i> functions
for examining data structures.<br>
<p><font size=+1><b>Language </b></font><br>
Symbols of the program being debugged become integer variables
whose values are addresses. Contents of addresses are obtained
by indirection. Local variables are qualified by function name,
for example <tt><font size=+1>main:argv</font></tt>. When program symbols conflict with <i>acid</i>
words, distinguishing <tt><font size=+1>$</font></tt> signs are prefixed. Such
renamings are reported at startup; option <tt><font size=+1>&#8722;q</font></tt> suppresses them.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Variable types (<i>integer, float, list, string</i>) and formats are
inferred from assignments. Truth values false/true are attributed
to zero/nonzero integers or floats and to empty/nonempty lists
or strings. Lists are sequences of expressions surrounded by <tt><font size=+1>{}</font></tt>
and separated by commas.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Expressions are much as in C, but yield both a value and a format.
Casts to complex types are allowed. Lists admit the following
operators, with subscripts counted from 0.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>head</font></tt> <i>list<br>
</i><tt><font size=+1>tail</font></tt> <i>list<br>
</i><tt><font size=+1>append</font></tt> <i>list</i><tt><font size=+1>,</font></tt> <i>element<br>
</i><tt><font size=+1>delete</font></tt> <i>list</i><tt><font size=+1>,</font></tt> <i>subscript
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
</table>
Format codes are the same as in <a href="../man1/db.html"><i>db</i>(1)</a>. Formats may be attached
to (unary) expressions with <tt><font size=+1>\</font></tt>, e.g. <tt><font size=+1>(32*7)\D</font></tt>. There are two indirection
operators, <tt><font size=+1>*</font></tt> to address a core image, <tt><font size=+1>@</font></tt> to address a text file.
The type and format of the result are determined by the format
of the operand, whose type must be integer.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Statements are<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>if</font></tt> <i>expr</i> <tt><font size=+1>then</font></tt> <i>statement</i> [ <tt><font size=+1>else</font></tt> <i>statement</i> ]<br>
<tt><font size=+1>while</font></tt> <i>expr</i> <tt><font size=+1>do</font></tt> <i>statement<br>
</i><tt><font size=+1>loop</font></tt> <i>expr</i><tt><font size=+1>,</font></tt> <i>expr</i> <tt><font size=+1>do</font></tt> <i>statement<br>
</i><tt><font size=+1>defn</font></tt> <i>name</i><tt><font size=+1>(</font></tt><i>args</i><tt><font size=+1>) {</font></tt> <i>statement</i> <tt><font size=+1>}<br>
defn</font></tt> <i>name<br>
name</i><tt><font size=+1>(</font></tt><i>args</i><tt><font size=+1>)<br>
builtin</font></tt> <i>name</i><tt><font size=+1>(</font></tt><i>args</i><tt><font size=+1>)<br>
local</font></tt> <i>name<br>
</i><tt><font size=+1>return</font></tt> <i>expr<br>
</i><tt><font size=+1>whatis</font></tt> [ <i>name</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
The statement <tt><font size=+1>defn</font></tt> <i>name</i> clears the definition for <i>name</i>. A <tt><font size=+1>defn</font></tt>
may override a built-in function; prefixing a function call with
<tt><font size=+1>builtin</font></tt> ignores any overriding <tt><font size=+1>defn</font></tt>, forcing the use of the built-in
function.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Here is a partial list of functions; see the manual for a complete
list.<br>
<tt><font size=+1>stk()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print a stack trace for current process.<br>
<tt><font size=+1>lstk()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print a stack trace with values of local variables.<br>
<tt><font size=+1>gpr()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print general registers. Registers can also be accessed by
name, for example <tt><font size=+1>*R0</font></tt>.<br>
<tt><font size=+1>spr()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print special registers such as program counter and stack
pointer.<br>
<tt><font size=+1>fpr()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print floating-point registers.<br>
<tt><font size=+1>regs()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <tt><font size=+1>spr();gpr()</font></tt>.<br>
<tt><font size=+1>fmt(</font></tt><i>expr</i><tt><font size=+1>,</font></tt><i>format</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>
Expression <i>expr</i> with format given by the character value of expression
<i>format</i>.<br>
</table>
</table>
<tt><font size=+1>src(</font></tt><i>address</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print 10 lines of source around the program address.<br>
<tt><font size=+1>Bsrc(</font></tt><i>address</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Get the source line for the program address into
a window of a running <a href="../man1/sam.html"><i>sam</i>(1)</a> and select it.<br>
<tt><font size=+1>line(</font></tt><i>address</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print source line nearest to the program address.<br>
<tt><font size=+1>source()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List current source directories.<br>
<tt><font size=+1>addsrcdir(</font></tt><i>string</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>
Add a source directory to the list.<br>
</table>
</table>
<tt><font size=+1>filepc(</font></tt><i>where</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;Convert a string of the form <i>sourcefile</i><tt><font size=+1>:</font></tt><i>linenumber</i>
to a machine address.<br>
<tt><font size=+1>pcfile(</font></tt><i>address</i><tt><font size=+1>)</font></tt>Convert a machine address to a source file name.<br>
<tt><font size=+1>pcline(</font></tt><i>address</i><tt><font size=+1>)</font></tt>Convert a machine address to a source line number.<br>
<tt><font size=+1>bptab()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List breakpoints set in the current process.<br>
<tt><font size=+1>bpset(</font></tt><i>address</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;Set a breakpoint in the current process at the given
address. (Doesn&#8217;t work on Unix yet.)<br>
<tt><font size=+1>bpdel(</font></tt><i>address</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;Delete a breakpoint from the current process.<br>
<tt><font size=+1>cont()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Continue execution of current process and wait for it to
stop.<br>
<tt><font size=+1>step()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Execute a single machine instruction in the current process.
(Doesn&#8217;t work on Unix yet.)<br>
<tt><font size=+1>func()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step repeatedly until after a function return.<br>
<tt><font size=+1>stopped(</font></tt><i>pid</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;This replaceable function is called automatically
when the given process stops. It normally prints the program counter
and returns to the prompt.<br>
<tt><font size=+1>asm(</font></tt><i>address</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disassemble 30 machine instructions beginning at the
given address.<br>
<tt><font size=+1>mem(</font></tt><i>address</i><tt><font size=+1>,</font></tt><i>string</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>
Print a block of memory interpreted according to a string of format
codes.<br>
</table>
</table>
<tt><font size=+1>dump(</font></tt><i>address</i><tt><font size=+1>,</font></tt><i>n</i><tt><font size=+1>,</font></tt><i>string</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>
Like <tt><font size=+1>mem</font></tt>(), repeated for <i>n</i> consecutive blocks.<br>
</table>
</table>
<tt><font size=+1>print(</font></tt><i>expr</i><tt><font size=+1>,</font></tt><i>...</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;Print the values of the expressions.<br>
<tt><font size=+1>newproc(</font></tt><i>arguments</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>
Start a new process with arguments given as a string and halt
at the first instruction.<br>
</table>
</table>
<tt><font size=+1>new()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like <i>newproc</i>(), but take arguments (except <tt><font size=+1>argv[0]</font></tt>) from
string variable <tt><font size=+1>progargs</font></tt>.<br>
<tt><font size=+1>win()</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like <i>new</i>(), but run the process in a separate window.<br>
<tt><font size=+1>start(</font></tt><i>pid</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start a stopped process.<br>
<tt><font size=+1>kill(</font></tt><i>pid</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kill the given process.<br>
<tt><font size=+1>setproc(</font></tt><i>pid</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Make the given process current.<br>
<tt><font size=+1>rc(</font></tt><i>string</i><tt><font size=+1>)</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Escape to the shell, <a href="../man1/rc.html"><i>rc</i>(1)</a>, to execute the command string.<br>
<tt><font size=+1>include(</font></tt><i>string</i><tt><font size=+1>)</font></tt>Read acid commands from the named file.<br>
<tt><font size=+1>includepipe(</font></tt><i>string</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>
Run the command string, reading its standard output as acid commands.<br>
</table>
</table>
<p><font size=+1><b>Shared library segments </b></font><br>
When a pid or core file is specified on the command line, <i>acid</i>
will, as part of its startup, determine the set of shared libraries
in use by the process image and map those at appropriate locations.
If <i>acid</i> is started without a pid or core file and is subsequently
attached to a process via <tt><font size=+1>setproc</font></tt>, the shared library maps
can be initialized by calling <tt><font size=+1>dynamicmap()</font></tt>.<br>
<p><font size=+1><b>Type information </b></font><br>
Unix compilers conventionally include detailed type information
in the debugging symbol section of binaries. The external program
<tt><font size=+1>acidtypes</font></tt> extracts this information and formats it as <i>acid</i> program
text. Once the shared libraries have been mapped, the default
<i>acid</i> startup invokes <tt><font size=+1>acidtypes</font></tt> (via
<tt><font size=+1>includepipe</font></tt>) on the set of currently mapped text files. The function
<tt><font size=+1>acidtypes()</font></tt> can be called to rerun the command after changing
the set of mapped text files.<br>
<p><font size=+1><b>Acid Libraries </b></font><br>
There are a number of <i>acid</i> &#8216;libraries&#8217; that provide higher-level
debugging facilities. One notable example is <i>trump</i>, which uses
<i>acid</i> to trace memory allocation. <i>Trump</i> requires starting <i>acid</i>
on the program, either by attaching to a running process or by
executing <tt><font size=+1>new()</font></tt> on a binary (perhaps after setting <tt><font size=+1>progargs</font></tt>),
stopping the process, and then running <tt><font size=+1>trump()</font></tt> to execute the
program under the scaffolding. The output will be a trace of the
memory allocation and free calls executed by the program. When
finished tracing, stop the process and execute <tt><font size=+1>untrump()</font></tt> followed
by <tt><font size=+1>cont()</font></tt> to resume execution.
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Start to debug <tt><font size=+1>/bin/ls</font></tt>; set some breakpoints; run up to the first
one (this example doesn&#8217;t work on Unix yet):<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>% acid /bin/ls<br>
/bin/ls: mips plan 9 executable<br>
/sys/lib/acid/port<br>
/sys/lib/acid/mips<br>
acid: new()<br>
70094: system call &nbsp;&nbsp;&nbsp;_main &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD &nbsp;&nbsp;&nbsp;$&#8722;0x14,R29<br>
70094: breakpoint &nbsp;&nbsp;&nbsp;&nbsp;main+0x4 &nbsp;&nbsp;&nbsp;MOVW R31,0x0(R29)<br>
acid: pid<br>
70094<br>
acid: argv0 = **main:argv\s<br>
acid: whatis argv0<br>
integer variable format s<br>
acid: *argv0<br>
/bin/ls<br>
acid: bpset(ls)<br>
acid: cont()<br>
70094: breakpoint &nbsp;&nbsp;&nbsp;ls &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD &nbsp;&nbsp;&nbsp;$&#8722;0x16c8,R29<br>
acid: <br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Display elements of a linked list of structures:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>complex Str { 'D' 0 val; 'X' 4 next; };<br>
s = *headstr;<br>
while s != 0 do{<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
complex Str s;<br>
print(s.val, &quot;\n&quot;);<br>
s = s.next;<br>
</table>
}<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Note the use of the <tt><font size=+1>.</font></tt> operator instead of <tt><font size=+1>&#8722;&gt;</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Display an array of bytes declared in C as <tt><font size=+1>char array[]</font></tt>.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>*(array\s)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
This example gives <tt><font size=+1>array</font></tt> string format, then prints the string
beginning at the address (in <i>acid</i> notation) <tt><font size=+1>*array</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Trace the system calls executed by <a href="../man1/ls.html"><i>ls</i>(1)</a> (neither does this one):<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>% acid &#8722;l truss /bin/ls<br>
/bin/ls:386 plan 9 executable<br>
/sys/lib/acid/port<br>
/sys/lib/acid/kernel<br>
/sys/lib/acid/truss<br>
/sys/lib/acid/386<br>
acid: progargs = &quot;&#8722;l lib/profile&quot;<br>
acid: new()<br>
acid: truss()<br>
open(&quot;#c/pid&quot;, 0)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
return value: 3<br>
</table>
pread(3, 0x7fffeeac, 20, &#8722;1)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
return value: 12<br>
data: &quot; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;166 &quot;<br>
</table>
...<br>
stat(&quot;lib/profile&quot;, 0x0000f8cc, 113)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
return value: 65<br>
</table>
open(&quot;/env/timezone&quot;, 0)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
return value: 3<br>
</table>
pread(3, 0x7fffd7c4, 1680, &#8722;1)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
return value: 1518<br>
data: &quot;EST &#8722;18000 EDT &#8722;14400<br>
9943200 &nbsp;&nbsp;&nbsp;&nbsp;25664400 &nbsp;&nbsp;&nbsp;&nbsp;41392800 &nbsp;&nbsp;&nbsp;&nbsp;57718800 &nbsp;&nbsp;&nbsp;&nbsp;73447200 &nbsp;&nbsp;&nbsp;&nbsp;89168400<br>
104896800 &nbsp;&nbsp;&nbsp;...&quot;<br>
</table>
close(3)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
return value: 0<br>
</table>
pwrite(1, &quot;&#8722;&#8722;rw&#8722;rw&#8722;r&#8722;&#8722; M 9 rob rob 2519 Mar 22 10:29 lib/profile<br>
&quot;, 54, &#8722;1)<br>
&#8722;&#8722;rw&#8722;rw&#8722;r&#8722;&#8722; M 9 rob rob 2519 Mar 22 10:29 lib/profile<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
return value: 54<br>
</table>
...<br>
166: breakpoint &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_exits+0x5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INTB $0x40<br>
acid: cont()<br>
</font></tt>
</table>
</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/acid/$objtype<br>
/usr/local/plan9/acid/port<br>
/usr/local/plan9/acid/kernel<br>
/usr/local/plan9/acid/trump<br>
/usr/local/plan9/acid/truss<br>
$home/lib/acid<br>
</font></tt>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/acid<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/mk.html"><i>mk</i>(1)</a>, <a href="../man1/db.html"><i>db</i>(1)</a><br>
Phil Winterbottom, &#8220;Acid Manual&#8221;.<br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
At termination, kill commands are proposed for processes that
are still active.<br>
</table>
<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 is no way to redirect the standard input and standard output
of a new process.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Source line selection near the beginning of a file may pick an
adjacent file.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
With the extant stepping commands, one cannot step through instructions
outside the text segment and it is hard to debug across process
forks.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Breakpoints do not work yet. Therefore, commands such as <tt><font size=+1>step</font></tt>,
<tt><font size=+1>new</font></tt>, and <tt><font size=+1>truss</font></tt> do not work either. <tt><font size=+1>New</font></tt> in particular will need
some help to cope with dynamic libraries.<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>

481
man/man1/acme.html Normal file
View File

@ -0,0 +1,481 @@
<head>
<title>acme(1) - 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>ACME(1)</b><td align=right><b>ACME(1)</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>
acme, win, awd &ndash; interactive text windows<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>acme</font></tt> [ <tt><font size=+1>&#8722;f</font></tt> <i>varfont</i> ] [ <tt><font size=+1>&#8722;F</font></tt> <i>fixfont</i> ] [ <tt><font size=+1>&#8722;c</font></tt> <i>ncol</i> ] [ <tt><font size=+1>&#8722;br</font></tt> ] [ <tt><font size=+1>&#8722;l</font></tt> <i>file</i>
| <i>file</i> ... ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>win</font></tt> [ <i>command</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>awd</font></tt> [ <i>label</i> ]<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>
<i>Acme</i> manages windows of text that may be edited interactively
or by external programs. The interactive interface uses the keyboard
and mouse; external programs use a set of files served by <i>acme</i>;
these are discussed in <a href="../man4/acme.html"><i>acme</i>(4)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Any named <i>files</i> are read into <i>acme</i> windows before <i>acme</i> accepts
input. With the <tt><font size=+1>&#8722;l</font></tt> option, the state of the entire system is loaded
from <i>file</i>, which should have been created by a <tt><font size=+1>Dump</font></tt> command (q.v.),
and subsequent <i>file</i> names are ignored. Plain files display as
text; directories display as columnated lists of the
names of their components, as in <tt><font size=+1>ls &#8722;p directory|mc</font></tt> except that
the names of subdirectories have a slash appended.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;f</font></tt> (<tt><font size=+1>&#8722;F</font></tt>) option sets the main font, usually variable-pitch
(alternate, usually fixed-pitch); the default is <tt><font size=+1>/usr/local/plan9/font/lucidasans/euro.8.font</font></tt>
(<tt><font size=+1>.../lucm/unicode.9.font</font></tt>). Tab intervals are set to the width
of 4 (or the value of <tt><font size=+1>$tabstop</font></tt>) numeral zeros in the appropriate
font.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<p><font size=+1><b>Windows </b></font><br>
<i>Acme</i> windows are in two parts: a one-line <i>tag</i> above a multi-line
<i>body</i>. The body typically contains an image of a file, as in <a href="../man1/sam.html"><i>sam</i>(1)</a>,
or the output of a program, as in an <a href="../man1/rio.html"><i>rio</i>(1)</a> window. The tag contains
a number of blank-separated words, followed by a vertical bar
character, followed by anything. The first word is the
name of the window, typically the name of the associated file
or directory, and the other words are commands available in that
window. Any text may be added after the bar; examples are strings
to search for or commands to execute in that window. Changes to
the text left of the bar will be ignored, unless the result is
to change the name of the window.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If a window holds a directory, the name (first word of the tag)
will end with a slash.<br>
<p><font size=+1><b>Scrolling </b></font><br>
Each window has a scroll bar to the left of the body. The scroll
bar behaves much as in <a href="../man1/sam.html"><i>sam</i>(1)</a> or <a href="../man1/rio.html"><i>rio</i>(1)</a> except that scrolling
occurs when the button is pressed, rather than released, and continues
as long as the mouse button is held down in the scroll bar. For
example, to scroll slowly through a file, hold button 3
down near the top of the scroll bar. Moving the mouse down the
scroll bar speeds up the rate of scrolling. (The experimental
option <tt><font size=+1>&#8722;r</font></tt> reverses the scrolling behavior of buttons 1 and 3,
to behave more like <a href="../man1/xterm.html"><i>xterm</i>(1)</a>.)<br>
<p><font size=+1><b>Layout </b></font><br>
<i>Acme</i> windows are arranged in columns. By default, it creates two
columns when starting; this can be overridden with the <tt><font size=+1>&#8722;c</font></tt> option.
Placement is automatic but may be adjusted using the <i>layout box</i>
in the upper left corner of each window and column. Pressing and
holding any mouse button in the box drags the
associated window or column. For windows, just clicking in the
layout box grows the window in place: button 1 grows it a little,
button 2 grows it as much as it can, still leaving all other tags
in that column visible, and button 3 takes over the column completely,
temporarily hiding other windows in the column. (They
will return <i>en masse</i> if any of them needs attention.) The layout
box in a window is normally white; when it is black in the center,
it records that the file is &#8216;dirty&#8217;: <i>acme</i> believes it is modified
from its original contents.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Tags exist at the top of each column and across the whole display.
<i>Acme</i> pre-loads them with useful commands. Also, the tag across
the top maintains a list of executing long-running commands.<br>
<p><font size=+1><b>Typing </b></font><br>
The behavior of typed text is similar to that in <a href="../man1/rio.html"><i>rio</i>(1)</a> except
that the characters are delivered to the tag or body under the
mouse; there is no &#8216;click to type&#8217;. (The experimental option <tt><font size=+1>&#8722;b</font></tt>
causes typing to go to the most recently clicked-at or made window.)
The usual backspacing conventions apply. As in <a href="../man1/sam.html"><i>sam</i>(1)</a> but not
<i>rio</i>, the ESC key selects the text typed since the last mouse action,
a feature particularly useful when executing commands. A side
effect is that typing ESC with text already selected is identical
to a <tt><font size=+1>Cut</font></tt> command (<i>q.v.</i>).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Most text, including the names of windows, may be edited uniformly.
The only exception is that the command names to the left of the
bar in a tag are maintained automatically; changes to them are
repaired by <i>acme</i>.<br>
<p><font size=+1><b>Directory context </b></font><br>
Each window&#8217;s tag names a directory: explicitly if the window
holds a directory; implicitly if it holds a regular file (e.g.
the directory <tt><font size=+1>/adm</font></tt> if the window holds <tt><font size=+1>/adm/users</font></tt>). This directory
provides a <i>context</i> for interpreting file names in that window.
For example, the string <tt><font size=+1>users</font></tt> in a window labeled <tt><font size=+1>/adm/</font></tt> or
<tt><font size=+1>/adm/keys</font></tt> will be interpreted as the file name <tt><font size=+1>/adm/users</font></tt>. The
directory is defined purely textually, so it can be a non-existent
directory or a real directory associated with a non-existent file
(e.g. <tt><font size=+1>/adm/not&#8722;a&#8722;file</font></tt>). File names beginning with a slash are
assumed to be absolute file names.
<p><font size=+1><b>Errors </b></font><br>
Windows whose names begin with <tt><font size=+1>&#8722;</font></tt> or <tt><font size=+1>+</font></tt> conventionally hold diagnostics
and other data not directly associated with files. A window labeled
<tt><font size=+1>+Errors</font></tt> receives all diagnostics produced by <i>acme</i> itself. Diagnostics
from commands run by <i>acme</i> appear in a window named <i>directory</i><tt><font size=+1>/+Errors</font></tt>
where <i>directory</i> is
identified by the context of the command. These error windows
are created when needed.<br>
<p><font size=+1><b>Mouse button 1 </b></font><br>
Mouse button 1 selects text just as in <a href="../man1/sam.html"><i>sam</i>(1)</a> or <a href="../man1/rio.html"><i>rio</i>(1)</a><i>,</i> including
the usual double-clicking conventions.<br>
<p><font size=+1><b>Mouse button 2 </b></font><br>
By an action similar to selecting text with button 1, button 2
indicates text to execute as a command. If the indicated text
has multiple white-space-separated words, the first is the command
name and the second and subsequent are its arguments. If button
2 is &#8216;clicked&#8217;--indicates a null string--<i>acme expands</i> the
indicated text to find a command to run: if the click is within
button-1-selected text, <i>acme</i> takes that selection as the command;
otherwise it takes the largest string of valid file name characters
containing the click. Valid file name characters are alphanumerics
and <tt><font size=+1>_ . &#8722; + /</font></tt>. This behavior is similar to double-clicking
with button 1 but, because a null command is meaningless, only
a single click is required.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Some commands, all by convention starting with a capital letter,
are <i>built-ins</i> that are executed directly by <i>acme</i>:<br>
<tt><font size=+1>Cut</font></tt>&nbsp;&nbsp;&nbsp;Delete most recently selected text and place in snarf buffer.<br>
<tt><font size=+1>Del</font></tt>&nbsp;&nbsp;&nbsp;Delete window. If window is dirty, instead print a warning;
a second <tt><font size=+1>Del</font></tt> will succeed.<br>
<tt><font size=+1>Delcol<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Delete column and all its windows, after checking that windows
are not dirty.<br>
</table>
<tt><font size=+1>Delete<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Delete window without checking for dirtiness.<br>
</table>
<tt><font size=+1>Dump</font></tt>Write the state of <i>acme</i> to the file name, if specified, or
<tt><font size=+1>$home/acme.dump</font></tt> by default.<br>
<tt><font size=+1>Edit</font></tt>Treat the argument as a text editing command in the style
of <a href="../man1/sam.html"><i>sam</i>(1)</a>. The full <tt><font size=+1>Sam</font></tt> language is implemented except for the
commands <tt><font size=+1>k</font></tt>, <tt><font size=+1>n</font></tt>, <tt><font size=+1>q</font></tt>, and <tt><font size=+1>!</font></tt>. The <tt><font size=+1>=</font></tt> command is slightly different:
it includes the file name and gives only the line address unless
the command is explicitly <tt><font size=+1>=#</font></tt>. The &#8216;current window&#8217; for the
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
command is the body of the window in which the <tt><font size=+1>Edit</font></tt> command is
executed. Usually the <tt><font size=+1>Edit</font></tt> command would be typed in a tag; longer
commands may be prepared in a scratch window and executed, with
<tt><font size=+1>Edit</font></tt> itself in the current window, using the 2-1 chord described
below.
</table>
<tt><font size=+1>Exit</font></tt>Exit <i>acme</i> after checking that windows are not dirty.<br>
<tt><font size=+1>Font</font></tt>With no arguments, change the font of the associated window
from fixed-spaced to proportional-spaced or <i>vice versa</i>. Given
a file name argument, change the font of the window to that stored
in the named file. If the file name argument is prefixed by <tt><font size=+1>var</font></tt>
(<tt><font size=+1>fix</font></tt>), also set the default proportional-spaced
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
(fixed-spaced) font for future use to that font. Other existing
windows are unaffected.<br>
</table>
<tt><font size=+1>Get</font></tt>&nbsp;&nbsp;&nbsp;Load file into window, replacing previous contents (after checking
for dirtiness as in <tt><font size=+1>Del</font></tt>). With no argument, use the existing file
name of the window. Given an argument, use that file but do not
change the window&#8217;s file name.<br>
<tt><font size=+1>ID</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print window ID number (<i>q.v.</i>).<br>
<tt><font size=+1>Incl</font></tt>When opening &#8216;include&#8217; files (those enclosed in <tt><font size=+1>&lt;&gt;</font></tt>) with button
3, <i>acme</i> searches in directories <tt><font size=+1>/$objtype/include</font></tt> and <tt><font size=+1>/sys/include</font></tt>.
<tt><font size=+1>Incl</font></tt> adds its arguments to a supplementary list of include directories,
analogous to the <tt><font size=+1>&#8722;I</font></tt> option to the compilers. This list is per-window
and is inherited when
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
windows are created by actions in that window, so <i>Incl</i> is most
usefully applied to a directory containing relevant source. With
no arguments, <i>Incl</i> prints the supplementary list. This command
is largely superseded by plumbing (see <a href="../man7/plumb.html"><i>plumb</i>(7)</a>).<br>
</table>
<tt><font size=+1>Kill</font></tt>Send a <tt><font size=+1>kill</font></tt> note to <i>acme</i>-initiated commands named as arguments.<br>
<tt><font size=+1>Local<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
In the Plan 9 <i>acme</i>, this prefix causes a command to be run in
<i>acme</i>&#8217;s<i>own</i> file name space and environment variable group. On Unix
this is impossible. <tt><font size=+1>Local</font></tt> is recognized as a prefix, but has no
effect on the command being executed.<br>
</table>
<tt><font size=+1>Load</font></tt>Restore the state of <i>acme</i> from a file (default <tt><font size=+1>$home/acme.dump</font></tt>)
created by the <tt><font size=+1>Dump</font></tt> command.<br>
<tt><font size=+1>Look</font></tt>Search in body for occurrence of literal text indicated by
the argument or, if none is given, by the selected text in the
body.<br>
<tt><font size=+1>New</font></tt>&nbsp;&nbsp;&nbsp;Make new window. With arguments, load the named files into
windows.<br>
<tt><font size=+1>Newcol<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Make new column.<br>
</table>
<tt><font size=+1>Paste<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Replace most recently selected text with contents of snarf buffer.<br>
</table>
<tt><font size=+1>Put</font></tt>&nbsp;&nbsp;&nbsp;Write window to the named file. With no argument, write to
the file named in the tag of the window.<br>
<tt><font size=+1>Putall<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Write all dirty windows whose names indicate existing regular
files.<br>
</table>
<tt><font size=+1>Redo</font></tt>Complement of <tt><font size=+1>Undo</font></tt>.<br>
<tt><font size=+1>Send</font></tt>Append selected text or snarf buffer to end of body; used
mainly with <i>win</i>.<br>
<tt><font size=+1>Snarf<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Place selected text in snarf buffer.<br>
</table>
<tt><font size=+1>Sort</font></tt>Arrange the windows in the column from top to bottom in lexicographical
order based on their names.<br>
<tt><font size=+1>Tab</font></tt>&nbsp;&nbsp;&nbsp;Set the width of tab stops for this window to the value of
the argument, in units of widths of the zero character. With no
arguments, it prints the current value.<br>
<tt><font size=+1>Undo</font></tt>Undo last textual change or set of changes.<br>
<tt><font size=+1>Zerox<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Create a copy of the window containing most recently selected
text.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
A common place to store text for commands is in the tag; in fact
<i>acme</i> maintains a set of commands appropriate to the state of the
window to the left of the bar in the tag.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the text indicated with button 2 is not a recognized built-in,
it is executed as a shell command. For example, indicating <tt><font size=+1>date</font></tt>
with button 2 runs <a href="../man1/date.html"><i>date</i>(1)</a>. The standard and error outputs of
commands are sent to the error window associated with the directory
from which the command was run, which will be created if
necessary. For example, in a window <tt><font size=+1>/etc/passwd</font></tt> executing <tt><font size=+1>pwd</font></tt>
will produce the output <tt><font size=+1>/etc</font></tt> in a (possibly newly-created) window
labeled <tt><font size=+1>/etc/+Errors</font></tt>; in a window containing <tt><font size=+1>/home/rob/sam/sam.c</font></tt>
executing <tt><font size=+1>mk</font></tt> will run <a href="../man1/mk.html"><i>mk</i>(1)</a> in <tt><font size=+1>/home/rob/sam</font></tt>, producing output
in a window labeled
<tt><font size=+1>/home/rob/sam/+Errors</font></tt>. The environment of such commands contains
the variable <tt><font size=+1>$%</font></tt> with value set to the filename of the window in
which the command is run, and <tt><font size=+1>$winid</font></tt> set to the window&#8217;s id number
(see <a href="../man4/acme.html"><i>acme</i>(4)</a>).<br>
<p><font size=+1><b>Mouse button 3 </b></font><br>
Pointing at text with button 3 instructs <i>acme</i> to locate or acquire
the file, string, etc. described by the indicated text and its
context. This description follows the actions taken when button
3 is released after sweeping out some text. In the description,
<i>text</i> refers to the text of the original sweep or, if it was null,
the
result of applying the same expansion rules that apply to button
2 actions.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the text names an existing window, <i>acme</i> moves the mouse cursor
to the selected text in the body of that window. If the text names
an existing file with no associated window, <i>acme</i> loads the file
into a new window and moves the mouse there. If the text is a
file name contained in angle brackets, <i>acme</i> loads the
indicated include file from the directory appropriate to the suffix
of the file name of the window holding the text. (The <tt><font size=+1>Incl</font></tt> command
adds directories to the standard list.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the text begins with a colon, it is taken to be an address,
in the style of <a href="../man1/sam.html"><i>sam</i>(1)</a>, within the body of the window containing
the text. The address is evaluated, the resulting text highlighted,
and the mouse moved to it. Thus, in <i>acme</i>, one must type <tt><font size=+1>:/regexp</font></tt>
or <tt><font size=+1>:127</font></tt> not just <tt><font size=+1>/regexp</font></tt> or <tt><font size=+1>127</font></tt>. (There is an easier
way to locate literal text; see below.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the text is a file name followed by a colon and an address,
<i>acme</i> loads the file and evaluates the address. For example, clicking
button 3 anywhere in the text <tt><font size=+1>file.c:27</font></tt> will open <tt><font size=+1>file.c</font></tt>, select
line 27, and put the mouse at the beginning of the line. The rules
about Error files, directories, and so on all combine
to make this an efficient way to investigate errors from compilers,
etc.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the text is not an address or file, it is taken to be literal
text, which is then searched for in the body of the window in
which button 3 was clicked. If a match is found, it is selected
and the mouse is moved there. Thus, to search for occurrences
of a word in a file, just click button 3 on the word. Because
of the rule of
using the selection as the button 3 action, subsequent clicks
will find subsequent occurrences without moving the mouse.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In all these actions, the mouse motion is not done if the text
is a null string within a non-null selected string in the tag,
so that (for example) complex regular expressions may be selected
and applied repeatedly to the body by just clicking button 3 over
them.<br>
<p><font size=+1><b>Chords of mouse buttons </b></font><br>
Several operations are bound to multiple-button actions. After
selecting text, with button 1 still down, pressing button 2 executes
<tt><font size=+1>Cut</font></tt> and button 3 executes <tt><font size=+1>Paste</font></tt>. After clicking one button, the
other undoes the first; thus (while holding down button 1) 2 followed
by 3 is a <tt><font size=+1>Snarf</font></tt> that leaves the file undirtied; 3
followed by 2 is a no-op. These actions also apply to text selected
by double-clicking because the double-click expansion is made
when the second click starts, not when it ends.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Commands may be given extra arguments by a mouse chord with buttons
2 and 1. While holding down button 2 on text to be executed as
a command, clicking button 1 appends the text last pointed to
by button 1 as a distinct final argument. For example, to search
for literal <tt><font size=+1>text</font></tt> one may execute <tt><font size=+1>Look text</font></tt> with
button 2 or instead point at <tt><font size=+1>text</font></tt> with button 1 in any window,
release button 1, then execute <tt><font size=+1>Look</font></tt>, clicking button 1 while 2
is held down.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When an external command (e.g. <a href="../man1/echo.html"><i>echo</i>(1)</a>) is executed this way,
the extra argument is passed as expected and an environment variable
<tt><font size=+1>$acmeaddr</font></tt> is created that holds, in the form interpreted by button
3, the fully-qualified address of the extra argument.<br>
<p><font size=+1><b>Support programs </b></font><br>
<i>Win</i> creates a new <i>acme</i> window and runs a <i>command</i> (default <tt><font size=+1>$SHELL</font></tt>)
in it, turning the window into something analogous to an <a href="../man1/rio.html"><i>rio</i>(1)</a>
window. Executing text in a <i>win</i> window with button 2 is similar
to using <tt><font size=+1>Send</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Awd</i> loads the tag line of its window with the directory in which
it&#8217;s running, suffixed <tt><font size=+1>&#8722;</font></tt><i>label</i> (default <tt><font size=+1>rc</font></tt>); it is intended to
be executed by a <tt><font size=+1>cd</font></tt> function for use in <i>win</i> windows. An example
definition is<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>fn cd { builtin cd $1 &amp;&amp; awd $sysname }<br>
</font></tt>
</table>
<p><font size=+1><b>Applications and guide files </b></font><br>
In the directory <tt><font size=+1>/acme</font></tt> live several subdirectories, each corresponding
to a program or set of related programs that employ <i>acme&#8217;s</i> user
interface. Each subdirectory includes source, binaries, and a
<tt><font size=+1>readme</font></tt> file for further information. It also includes a <tt><font size=+1>guide</font></tt>,
a text file holding sample commands to invoke the
programs. The idea is to find an example in the guide that best
matches the job at hand, edit it to suit, and execute it.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Whenever a command is executed by <i>acme</i>, the default search path
includes the directory of the window containing the command and
its subdirectory <tt><font size=+1>$cputype</font></tt>. The program directories in <tt><font size=+1>/acme</font></tt> contain
appropriately labeled subdirectories of binaries, so commands
named in the guide files will be found
automatically when run. Also, <i>acme</i> binds the directories <tt><font size=+1>/acme/bin</font></tt>
and <tt><font size=+1>/acme/bin/$cputype</font></tt> to the end of <tt><font size=+1>/bin</font></tt> when it starts; this
is where <i>acme</i>-specific programs such as <i>win</i> and <i>awd</i> reside.<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>$home/acme.dump</font></tt>&nbsp;&nbsp;&nbsp;default file for <tt><font size=+1>Dump</font></tt> and <tt><font size=+1>Load</font></tt>; also where state
is written if <i>acme</i> dies or is killed unexpectedly, e.g. by deleting
its window.<br>
<tt><font size=+1>/acme/*/guide</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template files for applications<br>
<tt><font size=+1>/acme/*/readme</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;informal documentation for applications<br>
<tt><font size=+1>/acme/*/src</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source for applications<br>
<tt><font size=+1>/acme/*/mips</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MIPS-specific binaries for applications<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/acme<br>
/usr/local/plan9/src/cmd/9term/win.c<br>
/usr/local/plan9/bin/awd<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="../man4/acme.html"><i>acme</i>(4)</a><br>
Rob Pike, <i>Acme: A User Interface for Programmers.<br>
</i>
</table>
<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>
With the <tt><font size=+1>&#8722;l</font></tt> option or <tt><font size=+1>Load</font></tt> command, the recreation of windows
under control of external programs such as <i>win</i> is just to rerun
the command; information may be lost.<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>

332
man/man1/acmeevent.html Normal file
View File

@ -0,0 +1,332 @@
<head>
<title>acmeevent(1) - 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>ACMEEVENT(1)</b><td align=right><b>ACMEEVENT(1)</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>
acmeevent, acme.rc &ndash; shell script support for acme clients<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>9p read acme/acme/$winid/event | acmeevent
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
<tt><font size=+1>. /usr/local/plan9/lib/acme.rc
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
<tt><font size=+1>newwindow
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
<tt><font size=+1>winread</font></tt> <i>file
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>winwrite</font></tt> <i>file
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>winctl</font></tt> <i>cmd
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>windump</font></tt> [ <i>dumpdir</i> | <tt><font size=+1>&#8722;</font></tt> ] [ <i>dumpcmd</i> | <tt><font size=+1>&#8722;</font></tt> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>winname</font></tt> <i>name
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>windel</font></tt> [ <tt><font size=+1>sure</font></tt> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>winwriteevent</font></tt> <i>c1 c2 q0 q1</i> [ <i>eq0 eq1 flag textlen text chordarg
chordaddr</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>wineventloop<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>
<i>Acmeevent</i> and <i>acme.rc</i> make it easy to write simple <a href="../man1/acme.html"><i>acme</i>(1)</a> client
programs as shell scripts.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Acme</i> clients read the <tt><font size=+1>event</font></tt> files (see <a href="../man4/acme.html"><i>acme</i>(4)</a>) for the windows
they control, reacting to the events. The events are presented
in a format that is easy to read with C programs but hard to read
with shell scripts.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Acmeevent</i> reads an <a href="../man4/acme.html"><i>acme</i>(4)</a> event stream from standard input, printing
a shell-friendly version of the events, one per line, on standard
output. Each output line from <i>acmeevent</i> has the form:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>event</font></tt> <i>c1 c2 q0 q1 eq0 eq1 flag textlen text chordarg chordaddr
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
</table>
The fields are:<br>
<i>c1</i>&nbsp;&nbsp;&nbsp;&nbsp;A character indicating the origin or cause of the action. The
possible causes are: a write to the body or tag file (<tt><font size=+1>E</font></tt>), a write
to the window&#8217;s other files (<tt><font size=+1>F</font></tt>), input via the keyboard (<tt><font size=+1>K</font></tt>), and
input via the mouse (<tt><font size=+1>M</font></tt>).<br>
<i>c2</i>&nbsp;&nbsp;&nbsp;&nbsp;A character indicating the type of action. The possible types
are: text deleted from the body (<tt><font size=+1>D</font></tt>), text deleted from the tag
(<tt><font size=+1>d</font></tt>), text inserted in the body (<tt><font size=+1>I</font></tt>), text inserted in the tag (<tt><font size=+1>i</font></tt>),
a button 3 action in the body (<tt><font size=+1>L</font></tt>), a button 3 action in the tag
(<tt><font size=+1>l</font></tt>), a button 2 action in the body (<tt><font size=+1>X</font></tt>), and a button 2 action
in the
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
tag (<tt><font size=+1>x</font></tt>).<br>
</table>
<i>q0</i>, <i>q1</i>The character addresses of the action.<br>
<i>eq0</i>, <i>q1<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The expanded character addresses of the action. If the text indicated
by <i>q0</i>, <i>q1</i> is a null string that has a non-null expansion, <i>eq0</i>,
<i>eq1</i> are the addresses of the expansion. Otherwise they are the
same as <i>q0</i>, <i>q1</i>.<br>
</table>
<i>flag&nbsp;&nbsp;&nbsp;Flag</i> is a bitwise OR (reported decimally) of the following:
1 if the text indicated is recognized as an <i>acme</i> built-in command;
2 if the text indicated is a null string that has a non-null expansion
(see <i>eq0</i>, <i>eq1</i> above); 8 if the command has an extra (chorded)
argument (see <i>chordarg</i> below). <i>Flag</i> remains from the
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<a href="../man4/acme.html"><i>acme</i>(4)</a> event format. Because <i>eq0</i>, <i>eq1</i>, and <i>chordarg</i> are explicit
in each event (unlike in <a href="../man4/acme.html"><i>acme</i>(4)</a> events), <i>flag</i> can usually be
ignored.<br>
</table>
<i>textlen<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The length of the action text (or its expansion) for button 2
and button 3 events in characters.<br>
</table>
<i>text</i>&nbsp;&nbsp;&nbsp;If <i>textlen</i> is less than 256 chracters, <i>text</i> is the action
text itself. Otherwise it is an empty string and must be read
from the <tt><font size=+1>data</font></tt> file.<br>
<i>chordarg<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The chorded argument for an action.<br>
</table>
<i>chordorigin<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
If the chord argument is in the body of a named window, <i>chordorigin</i>
specifies the full address of the argument, as in <tt><font size=+1>/etc/group:#123,#234</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
To experiment with <i>acmeevent</i>, create an empty window in <i>acme</i> (using
<i>New</i>),<i>type<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>9p read acme/$winid/event | acmeevent<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
inside it, and execute it. Actions performed on the window will
be printed as events in the <tt><font size=+1>+Errors</font></tt> window.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Acme.rc</i> is a library of <a href="../man1/rc.html"><i>rc</i>(1)</a> shell functions useful for writing
acme clients.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Newwindow</i> creates a new acme window and sets <tt><font size=+1>$winid</font></tt> to the new
window&#8217;s id. The other commands all use <tt><font size=+1>$winid</font></tt> to determine which
window to operate on.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Winread</i> prints the current window&#8217;s <i>file</i> to standard output. It
is equivalent to <tt><font size=+1>cat /mnt/acme/acme/$winid/</font></tt><i>file</i> on Plan 9. Similarly,
<i>winwrite</i> writes standard input to the current window&#8217;s <i>file</i>. <i>Winread</i>
and <i>winwrite</i> are useful mainly in building more complex functions.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Winctl</i> writes <i>cmd</i> to the window&#8217;s <tt><font size=+1>ctl</font></tt> file. The most commonly-used
command is <tt><font size=+1>clean</font></tt>, which marks the window as clean. See <a href="../man4/acme.html"><i>acme</i>(4)</a>
for a full list of commands.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Windump</i> sets the window&#8217;s dump directory and dump command (see
<a href="../man4/acme.html"><i>acme</i>(4)</a>). If either argument is omitted or is <tt><font size=+1>&#8722;</font></tt>, that argument
is not set.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Winname</i> sets the name displayed in the window&#8217;s tag.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Windel</i> simulates the <tt><font size=+1>Del</font></tt> command. If the argument <tt><font size=+1>sure</font></tt> is given,
it simulates the <tt><font size=+1>Delete</font></tt> command.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Winwriteevent</i> writes an event to the window&#8217;s event file. The
event is in the format produced by <i>acmeevent</i>. Only the first four
arguments are necessary: the rest are ignored. Event handlers
should call <i>winwriteevent</i> to pass unhandled button 2 or button
3 events back to <i>acme</i> for processing.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Wineventloop</i> executes the current window&#8217;s event file, as output
by <i>acmeevent</i>. It returns when the window has been deleted. Before
running <i>wineventloop ,</i> clients must define a shell function named
<tt><font size=+1>event</font></tt>, which will be run for each incoming event, as <i>rc</i> executes
the output of <i>acmeevent</i>. A typical event function
need only worry about button 2 and button 3 events. Those events
not handled should be sent back to <i>acme</i> with <i>winwriteevent</i>.<br>
</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>
<i>Adict</i>, a dictionary browser, is implemented using <i>acmeevent</i> and
<i>acme.rc</i>. The <i>event</i> handler is:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>fn event {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
switch($1$2){<br>
case Mx MX &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# button 2 &#8722; pass back to acme<br>
winwriteevent $*<br>
case Ml ML &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# button 3 &#8722; open new window on dictionary or entry<br>
{<br>
if(~ $dict NONE)<br>
dictwin /adict/$7/ $7<br>
if not<br>
dictwin /adict/$dict/$7 $dict $7<br>
} &amp;<br>
}<br>
</table>
}<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Note that the button 3 handler starts a subshell in which to run
<i>dictwin</i>. That subshell will create a new window, set its name,
possibly fill the window with a dictionary list or dictionary
entry, mark the window as clean, and run the event loop:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>fn dictwin {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
newwindow<br>
winname $1<br>
dict=$2<br>
if(~ $dict NONE)<br>
dict &#8722;d '?' &gt;[2=1] | sed 1d | winwrite body<br>
if(~ $#* 3)<br>
dict &#8722;d $dict $3 &gt;[2=1] | winwrite body<br>
winctl clean<br>
wineventloop<br>
</table>
}<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
The script starts with an initial window:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>dictwin /adict/ NONE<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Button 3 clicking on a dictionary name in the initial window will
create a new empty window for that dictionary. Typing and button
3 clicking on a word in that window will create a new window with
the dictionary&#8217;s entry for that word.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
See <tt><font size=+1>/usr/local/plan9/bin/adict</font></tt> for the full implementation.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/acmeevent.c<br>
/usr/local/plan9/lib/acme.rc<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/acme.html"><i>acme</i>(1)</a>, <a href="../man4/acme.html"><i>acme</i>(4)</a>, <a href="../man1/rc.html"><i>rc</i>(1)</a><br>
</table>
<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 is more that could be done to ease the writing of complicated
clients.<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>

159
man/man1/ascii.html Normal file
View File

@ -0,0 +1,159 @@
<head>
<title>ascii(1) - 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>ASCII(1)</b><td align=right><b>ASCII(1)</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>
ascii, unicode &ndash; interpret ASCII, Unicode characters<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>ascii</font></tt> [ <tt><font size=+1>&#8722;8</font></tt> ] [ <tt><font size=+1>&#8722;oxdb</font></tt><i>n</i> ] [ <tt><font size=+1>&#8722;nct</font></tt> ] [ <i>text</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>unicode</font></tt> [ <tt><font size=+1>&#8722;nt</font></tt> ] <i>hexmin</i><tt><font size=+1>&#8722;</font></tt><i>hexmax
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>unicode</font></tt> [ <tt><font size=+1>&#8722;t</font></tt> ] <i>hex</i> [ ... ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>unicode</font></tt> [ <tt><font size=+1>&#8722;n</font></tt> ] <i>characters
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>look</font></tt> <i>hex</i> <tt><font size=+1>/usr/local/plan9/lib/unicode<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>
<i>Ascii</i> prints the ASCII values corresponding to characters and
<i>vice versa</i>; under the <tt><font size=+1>&#8722;8</font></tt> option, the ISO Latin-1 extensions (codes
0200-0377) are included. The values are interpreted in a settable
numeric base; <tt><font size=+1>&#8722;o</font></tt> specifies octal, <tt><font size=+1>&#8722;d</font></tt> decimal, <tt><font size=+1>&#8722;x</font></tt> hexadecimal (the
default), and <tt><font size=+1>&#8722;b</font></tt><i>n</i> base <i>n</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
With no arguments, <i>ascii</i> prints a table of the character set in
the specified base. Characters of <i>text</i> are converted to their
ASCII values, one per line. If, however, the first <i>text</i> argument
is a valid number in the specified base, conversion goes the opposite
way. Control characters are printed as two- or three-character
mnemonics. Other options are:<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Force numeric output.<br>
<tt><font size=+1>&#8722;c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Force character output.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Convert from numbers to running text; do not interpret control
characters or insert newlines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Unicode</i> is similar; it converts between UTF and character values
from the Unicode Standard (see <a href="../man7/utf.html"><i>utf</i>(7)</a>). If given a range of hexadecimal
numbers, <i>unicode</i> prints a table of the specified Unicode characters
-- their values and UTF representations. Otherwise it translates
from UTF to numeric value or vice versa, depending
on the appearance of the supplied text; the <tt><font size=+1>&#8722;n</font></tt> option forces numeric
output to avoid ambiguity with numeric characters. If converting
to UTF , the characters are printed one per line unless the <tt><font size=+1>&#8722;t</font></tt>
flag is set, in which case the output is a single string containing
only the specified characters. Unlike <i>ascii</i>, <i>unicode</i> treats
no characters specially.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The output of <i>ascii</i> and <i>unicode</i> may be unhelpful if the characters
printed are not available in the current font.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The file <tt><font size=+1>/usr/local/plan9/lib/unicode</font></tt> contains a table of characters
and descriptions, sorted in hexadecimal order, suitable for <a href="../man1/look.html"><i>look</i>(1)</a>
on the lower case <i>hex</i> values of characters.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>ascii &#8722;d<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the ASCII table base 10.<br>
</table>
<tt><font size=+1>unicode p<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the hex value of &#8216;p&#8217;.<br>
</table>
<tt><font size=+1>unicode 2200&#8722;22f1<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print a table of miscellaneous mathematical symbols.<br>
</table>
<tt><font size=+1>look 039 /usr/local/plan9/lib/unicode<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
See the start of the Greek alphabet&#8217;s encoding in the Unicode
Standard.<br>
</table>
</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/lib/unicode<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
table of characters and descriptions.<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/ascii.c<br>
/usr/local/plan9/src/cmd/unicode.c<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/look.html"><i>look</i>(1)</a>, <a href="../man1/tcs.html"><i>tcs</i>(1)</a>, <a href="../man7/utf.html"><i>utf</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>

125
man/man1/astro.html Normal file
View File

@ -0,0 +1,125 @@
<head>
<title>astro(1) - 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>ASTRO(1)</b><td align=right><b>ASTRO(1)</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>
astro &ndash; print astronomical information<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>astro</font></tt> [ <tt><font size=+1>&#8722;dlpsatokm</font></tt> ] [ <tt><font size=+1>&#8722;c</font></tt> n ] [ <tt><font size=+1>&#8722;C</font></tt> d ] [ <tt><font size=+1>&#8722;e</font></tt> <i>obj1 obj2</i> ]<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>
<i>Astro</i> reports upcoming celestial events, by default for 24 hours
starting now. The options are:<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read the starting date. A prompt gives the input format.<br>
<tt><font size=+1>l</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read the north latitude, west longitude, and elevation of the
observation point. A prompt gives the input format. If <tt><font size=+1>l</font></tt> is missing,
the initial position is read from the file <tt><font size=+1>/usr/local/plan9/sky/here</font></tt>.<br>
<tt><font size=+1>c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report for <i>n</i> (default 1) successive days.<br>
<tt><font size=+1>C</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used with <tt><font size=+1>&#8722;c</font></tt>, set the interval to <tt><font size=+1>d</font></tt> days (or fractions of days).<br>
<tt><font size=+1>e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Report distance between the centers of objects, in arc seconds,
during eclipses or occultations involving <i>obj1</i> and <i>obj2</i>.<br>
<tt><font size=+1>p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the positions of objects at the given time rather than
searching for interesting conjunctions. For each, the name is
followed by the right ascension (hours, minutes, seconds), declination
(degrees, minutes, seconds), azimuth (degrees), elevation (degrees),
and semidiameter (arc seconds). For the sun and
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
moon, the magnitude is also printed. The first line of output
presents the date and time, sidereal time, and the latitude, longitude,
and elevation.<br>
</table>
<tt><font size=+1>s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print output in English words suitable for speech synthesizers.<br>
<tt><font size=+1>a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Include a list of artificial earth satellites for interesting
events. (There are no orbital elements for the satellites, so
this option is not usable.)<br>
<tt><font size=+1>t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read &#916;T from standard input. &#916;T is the difference between ephemeris
and universal time (seconds) due to the slowing of the earth&#8217;s
rotation. &#916;T is normally calculated from an empirical formula.
This option is needed only for very accurate timing of occultations,
eclipses, etc.<br>
<tt><font size=+1>o</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search for stellar occultations.<br>
<tt><font size=+1>k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print times in local time (&#8216;kitchen clock&#8217;) as described in the
<tt><font size=+1>timezone</font></tt> environment variable.<br>
<tt><font size=+1>m</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Includes a single comet in the list of objects. This is modified
(in the source) to refer to an approaching comet but in steady
state usually refers to the last interesting comet (currently
Hale-Bopp, C/1995 O1).<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/sky/estartab<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
ecliptic star data<br>
</table>
<tt><font size=+1>/usr/local/plan9/sky/here<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
default latitude (N), longitude (W), and elevation (meters)<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/astro<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/scat.html"><i>scat</i>(1)</a><br>
</table>
<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>
The <tt><font size=+1>k</font></tt> option reverts to GMT outside of 1970-2036.<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>

63
man/man1/basename.html Normal file
View File

@ -0,0 +1,63 @@
<head>
<title>basename(1) - 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>BASENAME(1)</b><td align=right><b>BASENAME(1)</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>
basename &ndash; strip file name affixes<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>basename</font></tt> [ <tt><font size=+1>&#8722;d</font></tt> ] <i>string</i> [ <i>suffix</i> ]<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>
<i>Basename</i> deletes any prefix ending in slash (<tt><font size=+1>/</font></tt>) and the <i>suffix</i>,
if present in <i>string</i>, from <i>string</i>, and prints the result on the
standard output.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;d</font></tt> option instead prints the directory component, that is,
<i>string</i> up to but not including the final slash. If the string
contains no slash, a period and newline are printed.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/basename.c<br>
</font></tt>
</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>

272
man/man1/bc.html Normal file
View File

@ -0,0 +1,272 @@
<head>
<title>bc(1) - 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>BC(1)</b><td align=right><b>BC(1)</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>
bc &ndash; arbitrary-precision arithmetic language<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>bc</font></tt> [ <tt><font size=+1>&#8722;c</font></tt> ] [ <tt><font size=+1>&#8722;l</font></tt> ] [ <tt><font size=+1>&#8722;s</font></tt> ] [ <i>file ...</i> ]<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>
<i>Bc</i> is an interactive processor for a language that resembles C
but provides arithmetic on numbers of arbitrary length with up
to 100 digits right of the decimal point. It takes input from
any files given, then reads the standard input. The <tt><font size=+1>&#8722;l</font></tt> argument
stands for the name of an arbitrary precision math library. The
<tt><font size=+1>&#8722;s
</font></tt>argument suppresses the automatic display of calculation results;
all output is via the <tt><font size=+1>print</font></tt> command.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The following syntax for <i>bc</i> programs is like that of C; <i>L</i> means
letter <tt><font size=+1>a</font></tt>-<tt><font size=+1>z</font></tt>, <i>E</i> means expression, <i>S</i> means statement.<br>
Lexical<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>
comments are enclosed in <tt><font size=+1>/* */<br>
</font></tt>newlines end statements<br>
</table>
</table>
Names<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>
simple variables: <i>L<br>
</i>array elements: <i>L</i><tt><font size=+1>[</font></tt><i>E</i><tt><font size=+1>]<br>
</font></tt>The words <tt><font size=+1>ibase</font></tt>, <tt><font size=+1>obase</font></tt>, and <tt><font size=+1>scale<br>
</font></tt>
</table>
</table>
Other operands<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>
arbitrarily long numbers with optional sign and decimal point.<br>
<tt><font size=+1>(</font></tt><i>E</i><tt><font size=+1>)<br>
sqrt(</font></tt><i>E</i><tt><font size=+1>)<br>
length(</font></tt><i>E</i><tt><font size=+1>)<br>
</font></tt>number of significant decimal digits<br>
<tt><font size=+1>scale(</font></tt><i>E</i><tt><font size=+1>)<br>
</font></tt>number of digits right of decimal point<br>
<i>L</i><tt><font size=+1>(</font></tt><i>E</i><tt><font size=+1>,</font></tt><i>...</i><tt><font size=+1>,</font></tt><i>E</i><tt><font size=+1>)<br>
</font></tt>function call<br>
</table>
</table>
Operators<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>
<tt><font size=+1>+ &nbsp;&nbsp;&nbsp;&#8722; &nbsp;&nbsp;&nbsp;* &nbsp;&nbsp;&nbsp;/ &nbsp;&nbsp;&nbsp;% &nbsp;&nbsp;&nbsp;^ </font></tt> (<tt><font size=+1>%</font></tt> is remainder; <tt><font size=+1>^</font></tt> is power)<br>
<tt><font size=+1>++ &nbsp;&nbsp;&nbsp;&#8722;&#8722; <br>
== &nbsp;&nbsp;&nbsp;&lt;= &nbsp;&nbsp;&nbsp;&gt;= &nbsp;&nbsp;&nbsp;!= &nbsp;&nbsp;&nbsp;&lt; &nbsp;&nbsp;&nbsp;&gt;<br>
= &nbsp;&nbsp;&nbsp;+= &nbsp;&nbsp;&nbsp;&#8722;= &nbsp;&nbsp;&nbsp;*= &nbsp;&nbsp;&nbsp;/= &nbsp;&nbsp;&nbsp;%= &nbsp;&nbsp;&nbsp;^=<br>
</font></tt>
</table>
</table>
Statements<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>
<i>E<br>
</i><tt><font size=+1>{</font></tt> <i>S</i> <tt><font size=+1>;</font></tt> ... <tt><font size=+1>;</font></tt> <i>S</i> <tt><font size=+1>}<br>
print</font></tt> <i>E<br>
</i><tt><font size=+1>if (</font></tt> <i>E</i> <tt><font size=+1>)</font></tt> <i>S<br>
</i><tt><font size=+1>while (</font></tt> <i>E</i> <tt><font size=+1>)</font></tt> <i>S<br>
</i><tt><font size=+1>for (</font></tt> <i>E</i> <tt><font size=+1>;</font></tt> <i>E</i> <tt><font size=+1>;</font></tt> <i>E</i> <tt><font size=+1>)</font></tt> <i>S<br>
</i>null statement<br>
<tt><font size=+1>break<br>
quit<br>
&quot;</font></tt>text<tt><font size=+1>&quot;<br>
</font></tt>
</table>
</table>
Function definitions<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>
<tt><font size=+1>define</font></tt> <i>L</i> <tt><font size=+1>(</font></tt> <i>L</i> <tt><font size=+1>,</font></tt> ... <tt><font size=+1>,</font></tt> <i>L</i> <tt><font size=+1>){<br>
auto</font></tt> <i>L</i> <tt><font size=+1>,</font></tt> ... <tt><font size=+1>,</font></tt> <i>L<br>
S</i> <tt><font size=+1>;</font></tt> ... <tt><font size=+1>;</font></tt> <i>S<br>
</i><tt><font size=+1>return</font></tt> <i>E
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>}<br>
</font></tt>
</table>
</table>
Functions in<tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&#8722;l</font></tt> math library<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>
<tt><font size=+1>s(</font></tt><i>x</i><tt><font size=+1>)</font></tt>sine<br>
<tt><font size=+1>c(</font></tt><i>x</i><tt><font size=+1>)</font></tt>cosine<br>
<tt><font size=+1>e(</font></tt><i>x</i><tt><font size=+1>)</font></tt>exponential<br>
<tt><font size=+1>l(</font></tt><i>x</i><tt><font size=+1>)</font></tt>log<br>
<tt><font size=+1>a(</font></tt><i>x</i><tt><font size=+1>)</font></tt>arctangent<br>
<tt><font size=+1>j(</font></tt><i>n, x</i><tt><font size=+1>)<br>
</font></tt>Bessel function<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
</table>
All function arguments are passed by value.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The value of an expression at the top level is printed unless
the main operator is an assignment or the <tt><font size=+1>&#8722;s</font></tt> command line argument
is given. Text in quotes, which may include newlines, is always
printed. Either semicolons or newlines may separate statements.
Assignment to <tt><font size=+1>scale</font></tt> influences the number of digits to
be retained on arithmetic operations in the manner of <a href="../man1/dc.html"><i>dc</i>(1)</a>. Assignments
to <tt><font size=+1>ibase</font></tt> or <tt><font size=+1>obase</font></tt> set the input and output number radix respectively.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The same letter may be used as an array, a function, and a simple
variable simultaneously. All variables are global to the program.
Automatic variables are pushed down during function calls. In
a declaration of an array as a function argument or automatic
variable empty square brackets must follow the array name.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Bc</i> is actually a preprocessor for <a href="../man1/dc.html"><i>dc</i>(1)</a>, which it invokes automatically,
unless the <tt><font size=+1>&#8722;c</font></tt> (compile only) option is present. In this case the
<i>dc</i> input is sent to the standard output instead.<br>
</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>
Define a function to compute an approximate value of the exponential.
Use it to print 10 values. (The exponential function in the library
gives better answers.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>scale = 20<br>
define e(x) {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
auto a, b, c, i, s<br>
a = 1<br>
b = 1<br>
s = 1<br>
for(i=1; 1; i++) {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
a *= x<br>
b *= i<br>
c = a/b<br>
if(c == 0) return s<br>
s += c<br>
</table>
}<br>
</table>
}<br>
for(i=1; i&lt;=10; i++) print e(i)<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>/usr/local/plan9/lib/bclib</font></tt> mathematical library<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/bc.y<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/dc.html"><i>dc</i>(1)</a>, <a href="../man1/hoc.html"><i>hoc</i>(1)</a><br>
</table>
<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>
No <tt><font size=+1>&amp;&amp;</font></tt>, <tt><font size=+1>||</font></tt>, or <tt><font size=+1>!</font></tt> operators.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <tt><font size=+1>for</font></tt> statement must have all three <tt><font size=+1>E</font></tt>s.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <tt><font size=+1>quit</font></tt> is interpreted when read, not when executed.<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>

95
man/man1/bundle.html Normal file
View File

@ -0,0 +1,95 @@
<head>
<title>bundle(1) - 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>BUNDLE(1)</b><td align=right><b>BUNDLE(1)</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>
bundle &ndash; collect files for distribution<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>bundle</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>
<i>Bundle</i> writes on its standard output a shell script for <a href="../man1/rc.html"><i>rc</i>(1)</a>
or a Bourne shell which, when executed, will recreate the original
<i>files</i>. Its main use is for distributing small numbers of text
files by <a href="../man1/mail.html"><i>mail</i>(1)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Although less refined than standard archives from <i>9ar</i> (see <a href="../man1/9c.html"><i>9c</i>(1)</a>)
or <a href="../man1/tar.html"><i>tar</i>(1)</a>, a <i>bundle</i> file is self-documenting and complete; little
preparation is required on the receiving machine.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>bundle mkfile *.[ch] | mail kremvax!boris<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Send a makefile to Boris together with related <tt><font size=+1>.c</font></tt> and <tt><font size=+1>.h</font></tt> files.
Upon receiving the mail, Boris may save the file sans postmark,
say in <tt><font size=+1>gift/horse</font></tt>, then do<br>
</table>
<tt><font size=+1>cd gift; sh horse; mk<br>
</font></tt>
</table>
<p><font size=+1><b>SOURCE </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/bin/bundle<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>
<i>9ar</i> (in <a href="../man1/9c.html"><i>9c</i>(1)</a>), <a href="../man1/tar.html"><i>tar</i>(1)</a>, <a href="../man1/mail.html"><i>mail</i>(1)</a><br>
</table>
<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>
<i>Bundle</i> will not create directories and is unsatisfactory for non-text
files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Beware of gift horses.<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>

81
man/man1/cal.html Normal file
View File

@ -0,0 +1,81 @@
<head>
<title>cal(1) - 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>CAL(1)</b><td align=right><b>CAL(1)</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>
cal &ndash; print calendar<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>cal</font></tt> [ <i>month</i> ] [ <i>year</i> ]<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>
<i>Cal</i> prints a calendar. <i>Month</i> is either a number from 1 to 12,
a lower case month name, or a lower case three-letter prefix of
a month name. <i>Year</i> can be between 1 and 9999. If either <i>month</i>
or <i>year</i> is omitted, the current month or year is used. If only
one argument is given, and it is a number larger than 12, a
calendar for all twelve months of the given year is produced;
otherwise a calendar for just one month is printed. The calendar
produced is that for England and her colonies.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Try<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>cal sep 1752<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/cal.c<br>
</font></tt>
</table>
<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>
The year is always considered to start in January even though
this is historically naive.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Beware that <tt><font size=+1>cal 90</font></tt> refers to the early Christian era, not the
20th century.<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>

82
man/man1/calendar.html Normal file
View File

@ -0,0 +1,82 @@
<head>
<title>calendar(1) - 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>CALENDAR(1)</b><td align=right><b>CALENDAR(1)</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>
calendar &ndash; print upcoming events<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>calendar</font></tt> [ <tt><font size=+1>&ndash;y</font></tt> ] [ <tt><font size=+1>&ndash;p days</font></tt> ] [ <i>file ...</i> ]<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>
<i>Calendar</i> reads the named files, default <tt><font size=+1>$HOME/lib/calendar</font></tt>, and
writes to standard output any lines containing today&#8217;s or tomorrow&#8217;s
date. Examples of recognized date formats are &quot;4/11&quot;, &quot;April 11&quot;,
&quot;Apr 11&quot;, &quot;11 April&quot;, and &quot;11 Apr&quot;. All comparisons are case insensitive.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the <tt><font size=+1>&ndash;y</font></tt> flag is given, an attempt is made to match on year too.
In this case, dates of the forms listed above will be accepted
if they are followed by the current year (or last two digits thereof)
or not a year &#8212; digits not followed by white space or non-digits.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the <tt><font size=+1>&ndash;p</font></tt> flag is given, its argument is the number of days ahead
to match dates. This flag is not repeatable, and it performs no
special processing at the end of the week.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
On Friday and Saturday, events through Monday are printed.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
To have your calendar mailed to you every day, use <a href="../man8/cron.html"><i>cron</i>(8)</a>.<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>$HOME/lib/calendar</font></tt>&nbsp;&nbsp;&nbsp;personal calendar<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/calendar.c<br>
</font></tt>
</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>

126
man/man1/cat.html Normal file
View File

@ -0,0 +1,126 @@
<head>
<title>cat(1) - 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>CAT(1)</b><td align=right><b>CAT(1)</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>
cat, read, nobs &ndash; catenate files<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>cat</font></tt> [ <i>file ...</i> ]<br>
<tt><font size=+1>read</font></tt> [ <tt><font size=+1>&#8722;m</font></tt> ] [ <tt><font size=+1>&#8722;n</font></tt> <i>nline</i> ] [ <i>file ...</i> ]<br>
<tt><font size=+1>nobs</font></tt> [ <i>file ...</i> ]<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>
<i>Cat</i> reads each <i>file</i> in sequence and writes it on the standard
output. Thus<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>cat file
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
prints a file and<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>cat file1 file2 &gt;file3
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
concatenates the first two files and places the result on the
third.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If no <i>file</i> is given, <i>cat</i> reads from the standard input. Output
is buffered in blocks matching the input.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Read</i> copies to standard output exactly one line from the named
<i>file</i>, default standard input. It is useful in interactive <a href="../man1/rc.html"><i>rc</i>(1)</a>
scripts.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;m</font></tt> flag causes it to continue reading and writing multiple
lines until end of file; <tt><font size=+1>&#8722;n</font></tt> causes it to read no more than <i>nline</i>
lines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Read</i> always executes a single <tt><font size=+1>write</font></tt> for each line of input, which
can be helpful when preparing input to programs that expect line-at-a-time
data. It never reads any more data from the input than it prints
to the output.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Nobs</i> copies the named files to standard output except that it
removes all backspace characters and the characters that precede
them. It is useful to use as <tt><font size=+1>$PAGER</font></tt> with the Unix version of <a href="../man1/man.html"><i>man</i>(1)</a>
when run inside a <i>win</i> (see <a href="../man1/acme.html"><i>acme</i>(1)</a>) window.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/cat.c<br>
/usr/local/plan9/src/cmd/read.c<br>
/usr/local/plan9/bin/nobs<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/cp.html"><i>cp</i>(1)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>Read</i> exits with status <tt><font size=+1>eof</font></tt> on end of file or, in the <tt><font size=+1>&#8722;n</font></tt> case,
if it doesn&#8217;t read <i>nlines</i> lines.<br>
</table>
<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>
Beware of <tt><font size=+1>cat a b &gt;a</font></tt> and <tt><font size=+1>cat a b &gt;b</font></tt>, which destroy input files before
reading them.<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>

65
man/man1/cleanname.html Normal file
View File

@ -0,0 +1,65 @@
<head>
<title>cleanname(1) - 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>CLEANNAME(1)</b><td align=right><b>CLEANNAME(1)</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>
cleanname &ndash; clean a path name<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>cleanname</font></tt> [ <tt><font size=+1>&#8722;d</font></tt> <i>pwd</i> ] <i>names ...<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>
For each file name argument, <i>cleanname</i>, by lexical processing
only, prints the shortest equivalent string that names the same
(possibly hypothetical) file. It eliminates multiple and trailing
slashes, and it lexically interprets <tt><font size=+1>.</font></tt> and <tt><font size=+1>..</font></tt> directory components
in the name. If the <tt><font size=+1>&#8722;d</font></tt> option is present, unrooted names are
prefixed with <i>pwd</i><tt><font size=+1>/</font></tt> before processing.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/cleanname.c<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/cleanname.html"><i>cleanname</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>

61
man/man1/clog.html Normal file
View File

@ -0,0 +1,61 @@
<head>
<title>clog(1) - 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>CLOG(1)</b><td align=right><b>CLOG(1)</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>
auxclog &ndash; create date-stamped console log<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>auxclog</font></tt> <i>console logfile<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>
<i>Auxclog</i> opens the file <i>console</i> and writes every line read from
it, prefixed by the ASCII time, to the file <i>logfile</i>.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/auxclog.c<br>
</font></tt>
</table>
<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>
Should be named <i>aux/clog</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>

84
man/man1/cmp.html Normal file
View File

@ -0,0 +1,84 @@
<head>
<title>cmp(1) - 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>CMP(1)</b><td align=right><b>CMP(1)</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>
cmp &ndash; compare two files<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>cmp</font></tt> [ <tt><font size=+1>&#8722;lsL</font></tt> ] <i>file1 file2</i> [ <i>offset1</i> [ <i>offset2</i> ] ]<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 two files are compared. A diagnostic results if the contents
differ, otherwise there is no output.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The options are:<br>
<tt><font size=+1>l</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the byte number (decimal) and the differing bytes (hexadecimal)
for each difference.<br>
<tt><font size=+1>s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print nothing for differing files, but set the exit status.<br>
<tt><font size=+1>L</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the line number of the first differing byte.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If offsets are given, comparison starts at the designated byte
position of the corresponding file. Offsets that begin with <tt><font size=+1>0x</font></tt>
are hexadecimal; with <tt><font size=+1>0</font></tt>, octal; with anything else, decimal.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/cmp.c<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/diff.html"><i>diff</i>(1)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
If a file is inaccessible or missing, the exit status is <tt><font size=+1>open</font></tt>.
If the files are the same, the exit status is empty (true). If
they are the same except that one is longer than the other, the
exit status is <tt><font size=+1>EOF</font></tt>. Otherwise <i>cmp</i> reports the position of the
first disagreeing byte and the exit status is <tt><font size=+1>differ</font></tt>.
</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>

92
man/man1/colors.html Normal file
View File

@ -0,0 +1,92 @@
<head>
<title>colors(1) - 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>COLORS(1)</b><td align=right><b>COLORS(1)</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>
colors, cmapcube &ndash; display color map<br>
</table>
<p><font size=+1><b>SYNOPSIS </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>
<tt><font size=+1>colors</font></tt> [ <tt><font size=+1>&#8722;r &#8722;x</font></tt> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>cmapcube</font></tt> [ <tt><font size=+1>&#8722;nbw</font></tt> ]<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>
<i>Colors</i> presents a grid showing the colors in the RGBV color map
(see <a href="../man7/color.html"><i>color</i>(7)</a>).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Clicking mouse button 1 over a color in the grid will display
the map index for that color, its red, green, and blue components,
and the 32-bit hexadecimal color value as defined in <a href="../man3/allocimage.html"><i>allocimage</i>(3)</a>.
If the <tt><font size=+1>&#8722;x</font></tt> option is specified, the components will also be listed
in hexadecimal.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;r</font></tt> option instead shows, in the same form, a grey-scale ramp.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A menu on mouse button 3 contains a single entry, to exit the
program.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Cmapcube</i> presents the same colors but in a 3-dimensional cube.
Dragging with button 1 rotates the cube. Clicking on a color with
button 2 displays the map index for that color. Clicking button
3 exits.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;n</font></tt> option disables drawing of the color squares. The <tt><font size=+1>&#8722;b</font></tt> and
<tt><font size=+1>&#8722;w</font></tt> options set the background (default grey) to black or white.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/draw/colors.c<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="../man7/color.html"><i>color</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>

79
man/man1/comm.html Normal file
View File

@ -0,0 +1,79 @@
<head>
<title>comm(1) - 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>COMM(1)</b><td align=right><b>COMM(1)</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>
comm &ndash; select or reject lines common to two sorted files<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>comm</font></tt> [ <tt><font size=+1>&#8722;123</font></tt> ] <i>file1 file2<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>
<i>Comm</i> reads <i>file1</i> and <i>file2</i>, which are in lexicographical order,
and produces a three column output: lines only in <i>file1</i>; lines
only in <i>file2</i>; and lines in both files. The file name <tt><font size=+1>&#8722;</font></tt> means
the standard input.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Flag <tt><font size=+1>1</font></tt>, <tt><font size=+1>2</font></tt>, or <tt><font size=+1>3</font></tt> suppresses printing of the corresponding column.<br>
</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>
<tt><font size=+1>comm &#8722;12 file1 file2<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print lines common to two sorted files.<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/comm.c<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/sort.html"><i>sort</i>(1)</a>, <a href="../man1/cmp.html"><i>cmp</i>(1)</a>, <a href="../man1/diff.html"><i>diff</i>(1)</a>, <a href="../man1/uniq.html"><i>uniq</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>

83
man/man1/core.html Normal file
View File

@ -0,0 +1,83 @@
<head>
<title>core(1) - 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>CORE(1)</b><td align=right><b>CORE(1)</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>
core &ndash; print information about dead processes<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>core</font></tt> [ <i>dir</i> | <i>corefile</i> ]...<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>
<i>Core</i> prints information about dead processes that have been saved
as core dumps.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Core reads its arguments in order. If a directory is encountered,
<i>core</i> reads every core file named <tt><font size=+1>core.*</font></tt> or <tt><font size=+1>*.core</font></tt> in that directory.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
For each core file read, <i>core</i> prints the date and time the core
was generated, the command that generated it, and a short stack
trace at the time of the core dump.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If no arguments are given, <i>core</i> searches the directory <tt><font size=+1>$COREDIR</font></tt>
for core files; if <tt><font size=+1>$COREDIR</font></tt> is not set, <i>core</i> searches the current
directory.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/core.c<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/acid.html"><i>acid</i>(1)</a>, <a href="../man1/db.html"><i>db</i>(1)</a>, <a href="../man5/core.html"><i>core</i>(5)</a><br>
</table>
<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>
<i>Core</i> has not been written.<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>

127
man/man1/crop.html Normal file
View File

@ -0,0 +1,127 @@
<head>
<title>crop(1) - 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>CROP(1)</b><td align=right><b>CROP(1)</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>
crop, iconv &ndash; frame, crop, and convert image<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>crop</font></tt> [ <tt><font size=+1>&#8722;c</font></tt> <i>red green blue</i> ] [ <tt><font size=+1>&#8722;i</font></tt> <i>n</i> | <tt><font size=+1>&#8722;x</font></tt> <i>dx</i> | <tt><font size=+1>&#8722;y</font></tt> <i>dy</i> | <tt><font size=+1>&#8722;r</font></tt> <i>minx miny
maxx maxy</i> ] [ <tt><font size=+1>&#8722;t</font></tt> <i>tx ty</i> ] [ <tt><font size=+1>&#8722;b</font></tt> <i>red green blue</i> ] [ <i>file</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>iconv</font></tt> [ <tt><font size=+1>&#8722;u</font></tt> ] [ <tt><font size=+1>&#8722;c</font></tt> <i>chandesc</i> ] [ <i>file</i> ]<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>
<i>Crop</i> reads an <a href="../man7/image.html"><i>image</i>(7)</a> file (default standard input), crops it,
and writes it as a compressed <a href="../man7/image.html"><i>image</i>(7)</a> file to standard output.
There are two ways to specify a crop, by color value or by geometry.
They may be combined in a single run of <i>crop</i>, in which case the
color value crop will be done first.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;c</font></tt> option takes a red-green-blue triplet as described in <a href="../man3/color.html"><i>color</i>(3)</a>.
(For example, white is <tt><font size=+1>255 255 255</font></tt>.) The corresponding color is
used as a value to be cut from the outer edge of the picture;
that is, the image is cropped to remove the maximal outside rectangular
strip in which every pixel has the specified color.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;i</font></tt> option insets the image rectangle by a constant amount,
<i>n</i>, which may be negative to generate extra space around the image.
The <tt><font size=+1>&#8722;x</font></tt> and <tt><font size=+1>&#8722;y</font></tt> options are similar, but apply only to the <i>x</i> or
<i>y</i> coordinates of the image.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;r</font></tt> option specifies an exact rectangle.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;t</font></tt> option specifies that the image&#8217;s coordinate system should
be translated by <i>tx</i>, <i>ty</i> as the last step of processing.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;b</font></tt> option specifies a background color to be used to fill
around the image if the cropped image is larger than the original,
such as if the <tt><font size=+1>&#8722;i</font></tt> option is given a negative argument. This can
be used to draw a monochrome frame around the image. The default
color is black.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Iconv</i> changes the format of pixels in the image <i>file</i> (default
standard input) and writes the resulting image to standard output.
Pixels in the image are converted according to the channel descriptor
<i>chandesc</i>, (see <a href="../man7/image.html"><i>image</i>(7)</a>). For example, to convert a 4-bit-per-pixel
grey-scale image to an 8-bit-per-pixel color-mapped
image, <i>chandesc</i> should be <tt><font size=+1>m8</font></tt>. If <i>chandesc</i> is not given, the format
is unchanged. The output image is by default compressed; the <tt><font size=+1>&#8722;u</font></tt>
option turns off the compression.<br>
</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>
To crop white edges off the picture and add a ten-pixel pink border,<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>crop &#8722;c 255 255 255 &#8722;i &#8722;10 &#8722;b 255 150 150 imagefile &gt; cropped<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/draw/crop.c<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="../man7/image.html"><i>image</i>(7)</a>, <a href="../man3/color.html"><i>color</i>(3)</a><br>
</table>
<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>
<i>Iconv</i> should be able to do Floyd-Steinberg error diffusion or
dithering when converting to small image depths.<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>

75
man/man1/date.html Normal file
View File

@ -0,0 +1,75 @@
<head>
<title>date(1) - 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>DATE(1)</b><td align=right><b>DATE(1)</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>
date &ndash; date and time<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>date</font></tt> [ <i>option</i> ] [ <i>seconds</i> ]<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>
Print the date, in the format
<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>
<tt><font size=+1>Tue Aug 16 17:03:52 CDT 1977
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
The options are<br>
<tt><font size=+1>&#8722;u</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Report Greenwich Mean Time (GMT) rather than local time.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Report the date as the number of seconds since the epoch, 00:00:00
GMT, January 1, 1970.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The conversion from Greenwich Mean Time to local time depends
on the <tt><font size=+1>$timezone</font></tt> environment variable; see <a href="../man3/ctime.html"><i>ctime</i>(3)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the optional argument <i>seconds</i> is present, it is used as the
time to convert rather than the real time.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/date.c<br>
</font></tt>
</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>

548
man/man1/db.html Normal file
View File

@ -0,0 +1,548 @@
<head>
<title>db(1) - 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>DB(1)</b><td align=right><b>DB(1)</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>
db &ndash; debugger<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>db</font></tt> [ <i>option ...</i> ] [ <i>textfile</i> ] [ <i>pid</i> | <i>corefile</i> ]<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>
<i>Db</i> is a general purpose debugging program. It may be used to examine
files and to provide a controlled environment for the execution
of programs.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <i>textfile</i> is a file containing the text and initialized data
of an executable program. A <i>pid</i> or <i>corefile</i> specifies the memory
image of a process. A <i>pid</i> gives the id of an executing process
to be accessed via <a href="../man2/ptrace.html"><i>ptrace</i>(2)</a>. A <i>corefile</i> specifies the name of
a core dump (see <a href="../man5/core.html"><i>core</i>(5)</a> on your system of choice) containing
the
memory image of a terminated process. This manual refers to the
memory image specified by <i>pid</i> or <i>corefile</i> as a <i>memfile</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <i>map</i> associated with each <i>textfile</i> or <i>memfile</i> supports accesses
to instructions and data in the file; see &#8216;Addresses&#8217;.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An argument consisting entirely of digits is assumed to be a process
id; otherwise, it is the name of a <i>textfile</i> or <i>corefile</i>. When
a <i>textfile</i> is given, the textfile map is associated with it. If
only a <i>memfile</i> is given, the textfile map is derived from the
corresponding <i>textfile</i>, if it can be determined (this varies from
system to
system). When a <i>memfile</i> is given, the memfile map is associated
with it; otherwise the map is undefined and accesses to it are
not permitted.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Commands to <i>db</i> are read from the standard input and responses
are to the standard output. The options are<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Open <i>textfile</i> and <i>memfile</i> for writing as well as reading.<br>
<tt><font size=+1>&#8722;I</font></tt><i>path<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Directory in which to look for relative path names in <tt><font size=+1>$&lt;</font></tt> and <tt><font size=+1>$&lt;&lt;</font></tt>
commands.<br>
</table>
<tt><font size=+1>&#8722;m</font></tt><i>machine<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Assume instructions are for the given CPU type (possible names
include <tt><font size=+1>386</font></tt> and <tt><font size=+1>powerpc</font></tt>; adding the suffix <tt><font size=+1>&#8722;co</font></tt> as in <tt><font size=+1>386&#8722;co</font></tt> and
<tt><font size=+1>powerpc&#8722;co</font></tt> selects disassembly in the manufacturer&#8217;s syntax, if
available, rather than the default Plan 9 syntax).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
Most <i>db</i> commands have the following form:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
[<i>address</i>] [<tt><font size=+1>,</font></tt> <i>count</i>] [<i>command</i>]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
If <i>address</i> is present then the current position, called &#8216;dot&#8217;,
is set to <i>address</i>. Initially dot is set to 0. Most commands are
repeated <i>count</i> times with dot advancing between repetitions. The
default <i>count</i> is 1. <i>Address</i> and <i>count</i> are expressions. Multiple
commands on one line must be separated by <tt><font size=+1>;</font></tt>.
<p><font size=+1><b>Expressions </b></font><br>
Expressions are evaluated as long <i>ints</i>.<br>
<tt><font size=+1>.</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The value of dot.<br>
<tt><font size=+1>+</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The value of dot incremented by the current increment.<br>
<tt><font size=+1>^</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The value of dot decremented by the current increment.<br>
<tt><font size=+1>&quot;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The last <i>address</i> typed.<br>
<i>integer<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A number, in decimal radix by default. The prefixes <tt><font size=+1>0</font></tt> and <tt><font size=+1>0o</font></tt> and
<tt><font size=+1>0O</font></tt> (zero oh) force interpretation in octal radix; the prefixes
<tt><font size=+1>0t</font></tt> and <tt><font size=+1>0T</font></tt> force interpretation in decimal radix; the prefixes
<tt><font size=+1>0x</font></tt>, <tt><font size=+1>0X</font></tt>, and <tt><font size=+1>#</font></tt> force interpretation in hexadecimal radix. Thus
<tt><font size=+1>020</font></tt>, <tt><font size=+1>0o20</font></tt>, <tt><font size=+1>0t16</font></tt>, and <tt><font size=+1>#10</font></tt> all represent sixteen.
</table>
<i>integer</i><tt><font size=+1>.</font></tt><i>fraction<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A single-precision floating point number.<br>
</table>
<tt><font size=+1>'</font></tt><i>c</i><tt><font size=+1>'</font></tt>&nbsp;&nbsp;&nbsp;The 16-bit value of a character. <tt><font size=+1>\</font></tt> may be used to escape a
<tt><font size=+1>'</font></tt>.<br>
<tt><font size=+1>&lt;</font></tt><i>name<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The value of <i>name</i>, which is a register name. The register names
are those printed by the <tt><font size=+1>$r</font></tt> command.<br>
</table>
<i>symbol<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A <i>symbol</i> is a sequence of upper or lower case letters, underscores
or digits, not starting with a digit. <tt><font size=+1>\</font></tt> may be used to escape
other characters. The location of the <i>symbol</i> is calculated from
the symbol table in <i>textfile</i>.<br>
</table>
<i>routine</i><tt><font size=+1>.</font></tt><i>name<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The address of the variable <i>name</i> in the specified C routine. Both
<i>routine</i> and <i>name</i> are <i>symbols</i>. If <i>name</i> is omitted the value is
the address of the most recently activated stack frame corresponding
to <i>routine</i>; if <i>routine</i> is omitted, the active procedure is assumed.<br>
</table>
<i>file</i><tt><font size=+1>:</font></tt><i>integer<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The address of the instruction corresponding to the source statement
at the indicated line number of the file. If the source line contains
no executable statement, the address of the instruction associated
with the nearest executable source line is returned. Files begin
at line 1. If multiple files of the same name
are loaded, an expression of this form resolves to the first file
encountered in the symbol table.<br>
</table>
<tt><font size=+1>(</font></tt><i>exp</i><tt><font size=+1>)<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The value of the expression <i>exp</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<i>Monadic operators<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>*</font></tt><i>exp</i>&nbsp;&nbsp;&nbsp;The contents of the location addressed by <i>exp</i> in <i>memfile</i>.<br>
<tt><font size=+1>@</font></tt><i>exp</i>&nbsp;&nbsp;&nbsp;The contents of the location addressed by <i>exp</i> in <i>textfile</i>.<br>
<tt><font size=+1>&#8722;</font></tt><i>exp</i>&nbsp;&nbsp;&nbsp;Integer negation.<br>
<tt><font size=+1>~</font></tt><i>exp</i>&nbsp;&nbsp;&nbsp;Bitwise complement.<br>
<tt><font size=+1>%</font></tt><i>exp</i>&nbsp;&nbsp;&nbsp;When used as an <i>address</i>, <i>exp</i> is an offset into the segment
named <i>ublock</i>; see &#8216;Addresses&#8217;.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<i>Dyadic operators</i> are left-associative and are less binding than
monadic operators.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>e1</i><tt><font size=+1>+</font></tt><i>e2</i>Integer addition.<br>
<i>e1</i><tt><font size=+1>&#8722;</font></tt><i>e2</i>Integer subtraction.<br>
<i>e1</i><tt><font size=+1>*</font></tt><i>e2</i>Integer multiplication.<br>
<i>e1</i><tt><font size=+1>%</font></tt><i>e2</i>Integer division.<br>
<i>e1</i><tt><font size=+1>&amp;</font></tt><i>e2</i>Bitwise conjunction.<br>
<i>e1</i><tt><font size=+1>|</font></tt><i>e2</i>Bitwise disjunction.<br>
<i>e1</i><tt><font size=+1>#</font></tt><i>e2E1</i> rounded up to the next multiple of <i>e2</i>.<br>
</table>
<p><font size=+1><b>Commands </b></font><br>
Most commands have the following syntax:<br>
<tt><font size=+1>?</font></tt><i>f</i>&nbsp;&nbsp;&nbsp;&nbsp;Locations starting at <i>address</i> in <i>textfile</i> are printed according
to the format <i>f</i>.<br>
<tt><font size=+1>/</font></tt><i>f</i>&nbsp;&nbsp;&nbsp;&nbsp;Locations starting at <i>address</i> in <i>memfile</i> are printed according
to the format <i>f</i>.<br>
<tt><font size=+1>=</font></tt><i>f</i>&nbsp;&nbsp;&nbsp;&nbsp;The value of <i>address</i> itself is printed according to the format
<i>f</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <i>format</i> consists of one or more characters that specify a style
of printing. Each format character may be preceded by a decimal
integer that is a repeat count for the format character. If no
format is given then the last format is used.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Most format letters fetch some data, print it, and advance (a
local copy of) dot by the number of bytes fetched. The total number
of bytes in a format becomes the <i>current</i>increment<i>.<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>o</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print two-byte integer in octal.<br>
<tt><font size=+1>O</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print four-byte integer in octal.<br>
<tt><font size=+1>q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print two-byte integer in signed octal.<br>
<tt><font size=+1>Q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print four-byte integer in signed octal.<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print two-byte integer in decimal.<br>
<tt><font size=+1>D</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print four-byte integer in decimal.<br>
<tt><font size=+1>V</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print eight-byte integer in decimal.<br>
<tt><font size=+1>Z</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print eight-byte integer in unsigned decimal.<br>
<tt><font size=+1>x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print two-byte integer in hexadecimal.<br>
<tt><font size=+1>X</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print four-byte integer in hexadecimal.<br>
<tt><font size=+1>Y</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print eight-byte integer in hexadecimal.<br>
<tt><font size=+1>u</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print two-byte integer in unsigned decimal.<br>
<tt><font size=+1>U</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print four-byte integer in unsigned decimal.<br>
<tt><font size=+1>f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print as a single-precision floating point number.<br>
<tt><font size=+1>F</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print double-precision floating point.<br>
<tt><font size=+1>b</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the addressed byte in hexadecimal.<br>
<tt><font size=+1>c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the addressed byte as an ASCII character.<br>
<tt><font size=+1>C</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the addressed byte as a character. Printable ASCII characters
are represented normally; others are printed in the form <tt><font size=+1>\xnn</font></tt>.<br>
<tt><font size=+1>s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the addressed characters, as a UTF string, until a zero
byte is reached. Advance dot by the length of the string, including
the zero terminator.<br>
<tt><font size=+1>S</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print a string using the escape convention (see <tt><font size=+1>C</font></tt> above).<br>
<tt><font size=+1>r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print as UTF the addressed two-byte integer (rune).<br>
<tt><font size=+1>R</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print as UTF the addressed two-byte integers as runes until a
zero rune is reached. Advance dot by the length of the string,
including the zero terminator.<br>
<tt><font size=+1>i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print as machine instructions. Dot is incremented by the size
of the instruction.<br>
<tt><font size=+1>I</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As <tt><font size=+1>i</font></tt> above, but print the machine instructions in an alternate
form if possible.<br>
<tt><font size=+1>M</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the addressed machine instruction in a machine-dependent
hexadecimal form.<br>
<tt><font size=+1>a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the value of dot in symbolic form. Dot is unaffected.<br>
<tt><font size=+1>A</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the value of dot in hexadecimal. Dot is unaffected.<br>
<tt><font size=+1>z</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the function name, source file, and line number corresponding
to dot (textfile only). Dot is unaffected.<br>
<tt><font size=+1>p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the addressed value in symbolic form. Dot is advanced by
the size of a machine address.<br>
<tt><font size=+1>t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When preceded by an integer, tabs to the next appropriate tab
stop. For example, <tt><font size=+1>8t</font></tt> moves to the next 8-space tab stop. Dot
is unaffected.<br>
<tt><font size=+1>n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print a newline. Dot is unaffected.<br>
<tt><font size=+1>&quot;</font></tt>...<tt><font size=+1>&quot;</font></tt>&nbsp;&nbsp;&nbsp;Print the enclosed string. Dot is unaffected.<br>
<tt><font size=+1>^</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dot is decremented by the current increment. Nothing is printed.<br>
<tt><font size=+1>+</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dot is incremented by 1. Nothing is printed.<br>
<tt><font size=+1>&#8722;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dot is decremented by 1. Nothing is printed.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
Other commands include:<br>
newline<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Update dot by the current increment. Repeat the previous command
with a <i>count</i> of 1.<br>
</table>
[<tt><font size=+1>?/</font></tt>]<tt><font size=+1>l</font></tt> <i>value mask<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Words starting at dot are masked with <i>mask</i> and compared with <i>value</i>
until a match is found. If <tt><font size=+1>l</font></tt> is used, the match is for a two-byte
integer; <tt><font size=+1>L</font></tt> matches four bytes. If no match is found then dot is
unchanged; otherwise dot is set to the matched location. If <i>mask</i>
is omitted then ~0 is used.
</table>
[<tt><font size=+1>?/</font></tt>]<tt><font size=+1>w</font></tt> <i>value ...<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Write the two-byte <i>value</i> into the addressed location. If the command
is <tt><font size=+1>W</font></tt>, write four bytes.<br>
</table>
[<tt><font size=+1>?/</font></tt>]<tt><font size=+1>m</font></tt> <i>s b e f</i> [<tt><font size=+1>?</font></tt>]<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
New values for (<i>b, e, f</i>) in the segment named <i>s</i> are recorded.
Valid segment names are <i>text</i>, <i>data</i>, or <i>ublock</i>. If less than three
address expressions are given, the remaining parameters are left
unchanged. If the list is terminated by <tt><font size=+1>?</font></tt> or <tt><font size=+1>/</font></tt> then the file (<i>textfile</i>
or <i>memfile</i> respectively) is used for subsequent
requests. For example, <tt><font size=+1>/m?</font></tt> causes <tt><font size=+1>/</font></tt> to refer to <i>textfile</i>.<br>
</table>
<tt><font size=+1>&gt;</font></tt><i>name<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Dot is assigned to the variable or register named.<br>
</table>
<tt><font size=+1>!</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rest of the line is passed to <a href="../man1/rc.html"><i>rc</i>(1)</a> for execution.<br>
<tt><font size=+1>$</font></tt><i>modifier<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Miscellaneous commands. The available <i>modifiers</i> are:<br>
<tt><font size=+1>&lt;</font></tt><i>f</i>&nbsp;&nbsp;&nbsp;&nbsp;Read commands from the file <i>f</i>. If this command is executed in
a file, further commands in the file are not seen. If <i>f</i> is omitted,
the current input stream is terminated. If a <i>count</i> is given, and
is zero, the command is ignored.<br>
<tt><font size=+1>&lt;&lt;</font></tt><i>f</i>&nbsp;&nbsp;&nbsp;Similar to <tt><font size=+1>&lt;</font></tt> except it can be used in a file of commands without
causing the file to be closed. There is a (small) limit to the
number of <tt><font size=+1>&lt;&lt;</font></tt> files that can be open at once.<br>
<tt><font size=+1>&gt;</font></tt><i>f</i>&nbsp;&nbsp;&nbsp;&nbsp;Append output to the file <i>f</i>, which is created if it does not
exist. If <i>f</i> is omitted, output is returned to the terminal.<br>
<tt><font size=+1>?</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print process id, the condition which caused stopping or termination,
the registers and the instruction addressed by <tt><font size=+1>pc</font></tt>. This is the
default if <i>modifier</i> is omitted.<br>
<tt><font size=+1>r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the general registers and the instruction addressed by
<tt><font size=+1>pc</font></tt>. Dot is set to <tt><font size=+1>pc</font></tt>.<br>
<tt><font size=+1>R</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>$r</font></tt>, but include miscellaneous processor control registers
and floating point registers.<br>
<tt><font size=+1>f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print floating-point register values as single-precision floating
point numbers.<br>
<tt><font size=+1>F</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print floating-point register values as double-precision floating
point numbers.<br>
<tt><font size=+1>b</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print all breakpoints and their associated counts and commands.
&#8216;B&#8217; produces the same results.<br>
<tt><font size=+1>c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stack backtrace. If <i>address</i> is given, it specifies the address
of a pair of 32-bit values containing the <tt><font size=+1>sp</font></tt> and <tt><font size=+1>pc</font></tt> of an active
process. This allows selecting among various contexts of a multi-threaded
process. If <tt><font size=+1>C</font></tt> is used, the names and (long) values of all parameters,
automatic and static variables are
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
printed for each active function. If <i>count</i> is given, only the
first <i>count</i> frames are printed.<br>
</table>
<tt><font size=+1>a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attach to the running process whose pid is contained in <i>address</i>.<br>
<tt><font size=+1>e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The names and values of all external variables are printed.<br>
<tt><font size=+1>w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the page width for output to <i>address</i> (default 80).<br>
<tt><font size=+1>q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit from <i>db</i>.<br>
<tt><font size=+1>m</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the address maps.<br>
<tt><font size=+1>k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Simulate kernel memory management.<br>
<tt><font size=+1>M</font></tt><i>machine<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Set the <i>machine</i> type used for disassembling instructions.<br>
</table>
</table>
<tt><font size=+1>:</font></tt><i>modifier<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Manage a subprocess. Available modifiers are:<br>
<tt><font size=+1>h</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Halt an asynchronously running process to allow breakpointing.
Unnecessary for processes created under <i>db</i>, e.g. by <tt><font size=+1>:r</font></tt>.<br>
<tt><font size=+1>b</font></tt><i>c</i>&nbsp;&nbsp;&nbsp;&nbsp;Set breakpoint at <i>address</i>. The breakpoint is executed <i>count</i>&ndash;1
times before causing a stop. Also, if a command <i>c</i> is given it
is executed at each breakpoint and if it sets dot to zero the
breakpoint causes a stop.<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete breakpoint at <i>address</i>.<br>
<tt><font size=+1>r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run <i>textfile</i> as a subprocess. If <i>address</i> is given the program
is entered at that point; otherwise the standard entry point is
used. <i>Count</i> specifies how many breakpoints are to be ignored before
stopping. Arguments to the subprocess may be supplied on the same
line as the command. An argument
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
starting with &lt; or &gt; causes the standard input or output to be established
for the command.<br>
</table>
<tt><font size=+1>c</font></tt><i>s</i>&nbsp;&nbsp;&nbsp;&nbsp;The subprocess is continued. If <i>s</i> is omitted or nonzero, the
subprocess is sent the note that caused it to stop. If 0 is specified,
no note is sent. (If the stop was due to a breakpoint or single-step,
the corresponding note is elided before continuing.) Breakpoint
skipping is the same as for <tt><font size=+1>r</font></tt>.
<tt><font size=+1>s</font></tt><i>s</i>&nbsp;&nbsp;&nbsp;&nbsp;As for <tt><font size=+1>c</font></tt> except that the subprocess is single stepped for <i>count</i>
machine instructions. If a note is pending, it is received before
the first instruction is executed. If there is no current subprocess
then <i>textfile</i> is run as a subprocess as for <tt><font size=+1>r</font></tt>. In this case no
note can be sent; the remainder of the line is
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
treated as arguments to the subprocess.<br>
</table>
<tt><font size=+1>S</font></tt><i>s</i>&nbsp;&nbsp;&nbsp;&nbsp;Identical to <tt><font size=+1>s</font></tt> except the subprocess is single stepped for <i>count</i>
lines of C source. In optimized code, the correspondence between
C source and the machine instructions is approximate at best.<br>
<tt><font size=+1>x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current subprocess, if any, is released by <i>db</i> and allowed
to continue executing normally.<br>
<tt><font size=+1>k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The current subprocess, if any, is terminated.<br>
<tt><font size=+1>n</font></tt><i>c</i>&nbsp;&nbsp;&nbsp;&nbsp;Display the pending notes for the process. If <i>c</i> is specified,
first delete <i>c&#8217;th</i> pending note.<br>
</table>
<p><font size=+1><b>Addresses </b></font><br>
The location in a file or memory image associated with an address
is calculated from a map associated with the file. Each map contains
one or more quadruples (<i>t, f, b, e, o</i>), defining a segment named
<i>t</i> (usually, <i>text</i>, <i>data</i>, or <i>core</i>) in file <i>f</i> mapping addresses in
the range <i>b</i> through <i>e</i> to the part of the file beginning at
offset <i>o</i>. If segments overlap, later segments obscure earlier
ones. An address <i>a</i> is translated to a file address by finding
the last segment in the list for which <i>b</i>&le;<i>a</i>&lt;<i>e</i>; the location in the
file is then <i>address</i>+<i>f</i>&ndash;<i>b</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Usually, the text and initialized data of a program are mapped
by segments called <i>text</i>, <i>data</i>, and <i>bss</i>. Since a program file does
not contain stack data, this data is not mapped. The text segment
is mapped similarly in a normal (i.e., non-kernel) <i>memfile</i>. However,
one or more segments called <i>data</i> provide access to
process memory. This region contains the program&#8217;s static data,
the bss, the heap and the stack.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Sometimes it is useful to define a map with a single segment mapping
the region from 0 to 0xFFFFFFFF; a map of this type allows an
entire file to be examined without address translation.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>$m</font></tt> command dumps the currently active maps. The <tt><font size=+1>?m</font></tt> and <tt><font size=+1>/m</font></tt>
commands modify the segment parameters in the <i>textfile</i> and <i>memfile</i>
maps, respectively.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
To set a breakpoint at the beginning of <tt><font size=+1>write()</font></tt> in extant process
27:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>% db 27<br>
:h<br>
write:b<br>
:c<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
To set a breakpoint at the entry of function <tt><font size=+1>parse</font></tt> when the local
variable <tt><font size=+1>argc</font></tt> in <tt><font size=+1>main</font></tt> is equal to 1:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>parse:b *main.argc&#8722;1=X<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
This prints the value of <tt><font size=+1>argc&#8722;1</font></tt> which as a side effect sets dot;
when <tt><font size=+1>argc</font></tt> is one the breakpoint will fire. Beware that local variables
may be stored in registers; see the BUGS section.<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/acid.html"><i>acid</i>(1)</a><br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/db<br>
</font></tt>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Exit status is 0, unless the last command failed or returned non-zero
status.<br>
</table>
<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>
Examining a local variable with <i>routine.name</i> returns the contents
of the memory allocated for the variable, but with optimization,
variables often reside in registers. Also, on some architectures,
the first argument is always passed in a register.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Variables and parameters that have been optimized away do not
appear in the symbol table, returning the error <i>bad local variable</i>
when accessed by <i>db</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Breakpoints should not be set on instructions scheduled in delay
slots. When a program stops on such a breakpoint, it is usually
impossible to continue its execution.<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>

199
man/man1/dc.html Normal file
View File

@ -0,0 +1,199 @@
<head>
<title>dc(1) - 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>DC(1)</b><td align=right><b>DC(1)</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>
dc &ndash; desk calculator<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>dc</font></tt> [ <i>file</i> ]<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>
<i>Dc</i> is an arbitrary precision desk calculator. Ordinarily it operates
on decimal integers, but one may specify an input base, output
base, and a number of fractional digits to be maintained. The
overall structure of <i>dc</i> is a stacking (reverse Polish) calculator.
If an argument is given, input is taken from that file until its
end, then from the standard input. The following constructions
are recognized:<br>
number<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The value of the number is pushed on the stack. A number is an
unbroken string of the digits <tt><font size=+1>0&#8722;9A&#8722;F</font></tt> or <tt><font size=+1>0&#8722;9a&#8722;f</font></tt>. A hexadecimal
number beginning with a lower case letter must be preceded by
a zero to distinguish it from the command associated with the
letter. It may be preceded by an underscore <tt><font size=+1>_</font></tt> to
input a negative number. Numbers may contain decimal points.<br>
</table>
<tt><font size=+1>+ &nbsp;&nbsp;&nbsp;&#8722; / &nbsp;&nbsp;&nbsp;* &nbsp;&nbsp;&nbsp;% &nbsp;&nbsp;&nbsp;^<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Add <tt><font size=+1>+</font></tt>, subtract <tt><font size=+1>&#8722;</font></tt>, multiply <tt><font size=+1>*</font></tt>, divide <tt><font size=+1>/</font></tt>, remainder <tt><font size=+1>%</font></tt>, or exponentiate
<tt><font size=+1>^</font></tt> the top two values on the stack. The two entries are popped
off the stack; the result is pushed on the stack in their place.
Any fractional part of an exponent is ignored.<br>
</table>
<tt><font size=+1>s</font></tt><i>x<br>
</i><tt><font size=+1>S</font></tt><i>x</i>&nbsp;&nbsp;&nbsp;&nbsp;Pop the top of the stack and store into a register named <i>x</i>,
where <i>x</i> may be any character. Under operation <tt><font size=+1>S</font></tt> register <i>x</i> is
treated as a stack and the value is pushed on it.<br>
<tt><font size=+1>l</font></tt><i>x<br>
</i><tt><font size=+1>L</font></tt><i>x</i>&nbsp;&nbsp;&nbsp;&nbsp;Push the value in register <i>x</i> onto the stack. The register <i>x</i>
is not altered. All registers start with zero value. Under operation
<tt><font size=+1>L</font></tt> register <i>x</i> is treated as a stack and its top value is popped
onto the main stack.<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Duplicate the top value on the stack.<br>
<tt><font size=+1>p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the top value on the stack. The top value remains unchanged.
<tt><font size=+1>P</font></tt> interprets the top of the stack as an text string, removes it,
and prints it.<br>
<tt><font size=+1>f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the values on the stack.<br>
<tt><font size=+1>q<br>
Q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit the program. If executing a string, the recursion level
is popped by two. Under operation <tt><font size=+1>Q</font></tt> the top value on the stack
is popped and the string execution level is popped by that value.<br>
<tt><font size=+1>x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Treat the top element of the stack as a character string and
execute it as a string of <i>dc</i> commands.<br>
<tt><font size=+1>X</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the number on the top of the stack with its scale factor.<br>
<tt><font size=+1>[ ... ]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Put the bracketed text string on the top of the stack.<br>
</table>
<tt><font size=+1>&lt;</font></tt><i>x<br>
</i><tt><font size=+1>&gt;</font></tt><i>x<br>
</i><tt><font size=+1>=</font></tt><i>x</i>&nbsp;&nbsp;&nbsp;&nbsp;Pop and compare the top two elements of the stack. Register
<i>x</i> is executed if they obey the stated relation.<br>
<tt><font size=+1>v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the top element on the stack by its square root. Any
existing fractional part of the argument is taken into account,
but otherwise the scale factor is ignored.<br>
<tt><font size=+1>!</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interpret the rest of the line as a shell command.<br>
<tt><font size=+1>c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear the stack.<br>
<tt><font size=+1>i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top value on the stack is popped and used as the number base
for further input.<br>
<tt><font size=+1>I</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push the input base on the top of the stack.<br>
<tt><font size=+1>o</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top value on the stack is popped and used as the number base
for further output. In bases larger than 10, each &#8216;digit&#8217; prints
as a group of decimal digits.<br>
<tt><font size=+1>O</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push the output base on the top of the stack.<br>
<tt><font size=+1>k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pop the top of the stack, and use that value as a non-negative
scale factor: the appropriate number of places are printed on
output, and maintained during multiplication, division, and exponentiation.
The interaction of scale factor, input base, and output base will
be reasonable if all are changed together.
<tt><font size=+1>z</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push the stack level onto the stack.<br>
<tt><font size=+1>Z</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the number on the top of the stack with its length.<br>
<tt><font size=+1>?</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A line of input is taken from the input source (usually the terminal)
and executed.<br>
<tt><font size=+1>; :</font></tt>&nbsp;&nbsp;&nbsp;Used by <i>bc</i> for array operations.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The scale factor set by <tt><font size=+1>k</font></tt> determines how many digits are kept
to the right of the decimal point. If <i>s</i> is the current scale factor,
<i>sa</i> is the scale of the first operand, <i>sb</i> is the scale of the second,
and <i>b</i> is the (integer) second operand, results are truncated to
the following scales.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>+</font></tt>,<tt><font size=+1>&#8722; </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;max(<i>sa,sb</i>)<br>
<tt><font size=+1>* </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min(<i>sa</i>+<i>sb</i> , max(<i>s,sa,sb</i>))<br>
<tt><font size=+1>/ </font></tt><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s<br>
</i><tt><font size=+1>% </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;so that dividend = divisor*quotient + remainder; remainder has
sign of dividend<br>
<tt><font size=+1>^ </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min(<i>sa</i>&#215;|<i>b</i>|, max(<i>s,sa</i>))<br>
<tt><font size=+1>v </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max(<i>s,sa</i>)<br>
</table>
</table>
<p><font size=+1><b>EXAMPLES </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>
Print the first ten values of <i>n</i>!<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>[la1+dsa*pla10&gt;y]sy<br>
0sa1<br>
lyx<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/dc.c<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/bc.html"><i>bc</i>(1)</a>, <a href="../man1/hoc.html"><i>hoc</i>(1)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>x</i> <tt><font size=+1>is unimplemented</font></tt>, where <i>x</i> is an octal number: an internal error.<br>
&#8216;Out of headers&#8217; for too many numbers being kept around.<br>
&#8216;Nesting depth&#8217; for too many levels of nested execution.<br>
</table>
<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>
When the input base exceeds 16, there is no notation for digits
greater than <tt><font size=+1>F</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Past its time.<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>

102
man/man1/deroff.html Normal file
View File

@ -0,0 +1,102 @@
<head>
<title>deroff(1) - 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>DEROFF(1)</b><td align=right><b>DEROFF(1)</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>
deroff, delatex &ndash; remove formatting requests<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>deroff</font></tt> [ <i>option ...</i> ] <i>file ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>delatex</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>
<i>Deroff</i> reads each file in sequence and removes all <i>nroff</i> and <a href="../man1/troff.html"><i>troff</i>(1)</a>
requests and non-text arguments, backslash constructions, and
constructs of preprocessors such as <a href="../man1/eqn.html"><i>eqn</i>(1)</a>, <a href="../man1/pic.html"><i>pic</i>(1)</a>, and <a href="../man1/tbl.html"><i>tbl</i>(1)</a>.
Remaining text is written on the standard output. <i>Deroff</i> follows
files included by <tt><font size=+1>.so</font></tt> and <tt><font size=+1>.nx</font></tt> commands; if a file has
already been included, a <tt><font size=+1>.so</font></tt> for that file is ignored and a <tt><font size=+1>.nx</font></tt>
terminates execution. If no input file is given, <i>deroff</i> reads
from standard input.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The options are<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Output a word list, one &#8216;word&#8217; (string of letters, digits, and
properly embedded ampersands and apostrophes, beginning with a
letter) per line. Other characters are skipped. Otherwise, the
output follows the original, with the deletions mentioned above.<br>
<tt><font size=+1>&#8722;_</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>&#8722;w</font></tt>, but consider underscores to be alphanumeric rather
than punctuation.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Ignore <tt><font size=+1>.so</font></tt> and <tt><font size=+1>.nx</font></tt> requests.<br>
<tt><font size=+1>&#8722;ms<br>
&#8722;mm</font></tt>&nbsp;&nbsp;&nbsp;Remove titles, attachments, etc., as well as ordinary <i>troff</i>
constructs, from <a href="../man7/ms.html"><i>ms</i>(7)</a> or <i>mm</i> documents.<br>
<tt><font size=+1>&#8722;ml</font></tt>&nbsp;&nbsp;&nbsp;Same as <tt><font size=+1>&#8722;mm</font></tt>, but remove lists as well.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Delatex</i> does for <i>tex</i> and <i>latex</i> (see <a href="../man1/tex.html"><i>tex</i>(1)</a>) files what <tt><font size=+1>deroff
&#8722;wi</font></tt> does for <i>troff</i> files.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/deroff.c<br>
/usr/local/plan9/src/cmd/delatex.lx<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/tex.html"><i>tex</i>(1)</a>, <a href="../man1/spell.html"><i>spell</i>(1)</a><br>
</table>
<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>
These filters are not complete interpreters of <i>troff</i> or <i>tex</i>. For
example, macro definitions containing <tt><font size=+1>\$</font></tt> cause chaos in <i>deroff</i>
when the popular <tt><font size=+1>$$</font></tt> delimiters for <i>eqn</i> are in effect.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Text inside macros is emitted at place of definition, not place
of call.<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>

67
man/man1/dial.html Normal file
View File

@ -0,0 +1,67 @@
<head>
<title>dial(1) - 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>DIAL(1)</b><td align=right><b>DIAL(1)</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>
dial &ndash; connect to a remote service<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>dial</font></tt> [ <tt><font size=+1>&#8722;e</font></tt> ] <i>addr<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>
<i>Dial</i> connects to the network address <i>addr</i> (see <a href="../man3/dial.html"><i>dial</i>(3)</a>) and then
copies data from the connection to standard output, and from standard
input to the connection.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
By default, <i>dial</i> exits when end of file is reached on standard
input or on the network connection. The <tt><font size=+1>&#8722;e</font></tt> flag causes <i>dial</i> to
exit only in response to end of file on the network connection.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/dial.c<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/dial.html"><i>dial</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>

168
man/man1/dict.html Normal file
View File

@ -0,0 +1,168 @@
<head>
<title>dict(1) - 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>DICT(1)</b><td align=right><b>DICT(1)</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>
dict, adict &ndash; dictionary browser<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>dict</font></tt> [ <tt><font size=+1>&#8722;k</font></tt> ] [ <tt><font size=+1>&#8722;d</font></tt> <i>dictname</i> ] [ <tt><font size=+1>&#8722;c</font></tt> <i>command</i> ] [ <i>pattern</i> ] <tt><font size=+1>adict</font></tt> [
<tt><font size=+1>&#8722;d</font></tt> <i>dictname</i> ] [ <i>pattern</i> ]<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>
<i>Dict</i> is a dictionary browser. If a <i>pattern</i> is given on the command
line, <i>dict</i> prints all matching entries; otherwise it repeatedly
accepts and executes commands. The options are<br>
<tt><font size=+1>&#8722;d</font></tt> <i>dictname</i>&nbsp;&nbsp;&nbsp;Use the given dictionary. A list of available dictionaries
is printed by option <tt><font size=+1>&#8722;d?</font></tt>. The default is the first dictionary
on the list that is installed on the system.<br>
<tt><font size=+1>&#8722;c</font></tt> <i>command</i>&nbsp;&nbsp;&nbsp;Execute one command and quit. The command syntax is
described below.<br>
<tt><font size=+1>&#8722;k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print a pronunciation key.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Patterns are regular expressions (see <a href="../man7/regexp.html"><i>regexp</i>(7)</a>), with an implicit
leading <tt><font size=+1>^</font></tt> and trailing <tt><font size=+1>$</font></tt>. Patterns are matched against an index
of headwords and variants, to form a &#8216;match set&#8217;. By default,
both patterns and the index are folded: upper case characters
are mapped into their lower case equivalents, and Latin accented
characters are mapped into their non-accented equivalents. In
interactive mode, there is always a &#8216;current match set&#8217; and a
&#8216;current entry&#8217; within the match set. Commands can change either
or both, as well as print the entries or information about them.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Commands have an address followed by a command letter. Addresses
have the form:<br>
<tt><font size=+1>/</font></tt><i>re</i><tt><font size=+1>/</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the match set to all entries matching the regular expression
<i>re</i>, sorted in dictionary order. Set the current entry to the first
of the match set.<br>
<tt><font size=+1>!</font></tt><i>re</i><tt><font size=+1>!</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>/</font></tt><i>re</i><tt><font size=+1>/</font></tt> but use exact matching, i.e., without case and accent
folding.<br>
<i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An integer <i>n</i> means change the current entry to the <i>n</i>th of the
current match set.<br>
<tt><font size=+1>#</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The integer <i>n</i> is an absolute byte offset into the raw dictionary.
(See the <tt><font size=+1>A</font></tt> command, below.)<br>
<i>addr</i><tt><font size=+1>+</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;After setting the match set and current entry according to
<i>addr</i>, change the match set and current entry to be the next entry
in the dictionary (not necessarily in the match set) after the
current entry.<br>
<i>addr</i><tt><font size=+1>&#8722;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Like <i>addr</i><tt><font size=+1>+</font></tt> but go to previous dictionary entry.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The command letters come in pairs: a lower case and the corresponding
upper case letter. The lower case version prints something about
the current entry only, and advances the current entry to the
next in the match set (wrapping around to the beginning after
the last). The upper case version prints something about
all of the match set and resets the current entry to the beginning
of the set.<br>
<tt><font size=+1>p</font></tt>,<tt><font size=+1>P</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print the whole entry.<br>
<tt><font size=+1>h</font></tt>,<tt><font size=+1>H</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print only the headword(s) of the entry.<br>
<tt><font size=+1>a</font></tt>,<tt><font size=+1>A</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print the dictionary byte offset of the entry.<br>
<tt><font size=+1>r</font></tt>,<tt><font size=+1>R</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print the whole entry in raw format (without translating special
characters, etc.).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If no command letter is given for the first command, <tt><font size=+1>H</font></tt> is assumed.
After an <tt><font size=+1>H</font></tt>, the default command is <tt><font size=+1>p</font></tt>. Otherwise, the default command
is the previous command.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Adict</i> is a dictionary browser for <a href="../man1/acme.html"><i>acme</i>(1)</a>. When run with no arguments,
it creates a new <i>acme</i> window named <tt><font size=+1>/adict/</font></tt> listing the installed
dictionaries. Clicking with button 3 on a dictionary name will
create a new empty window named <tt><font size=+1>/adict/</font></tt><i>dict</i><tt><font size=+1>/.</font></tt> Typing and then
clicking on a pattern in this window will create
a new lookup window named <tt><font size=+1>/adict/</font></tt><i>dict</i><tt><font size=+1>/</font></tt><i>pattern</i> containing the dictionary&#8217;s
definition of <i>pattern</i>. Clicking with button 3 on any word in this
new window will create new lookup windows.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If <i>adict</i> is run with a <i>pattern ,</i> it starts with the <tt><font size=+1>/adict/</font></tt><i>dict</i><tt><font size=+1>/</font></tt><i>pattern</i>
window.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If <i>adict</i> is run with no pattern but with a <tt><font size=+1>&#8722;d</font></tt> option, it starts
with the <tt><font size=+1>/adict/</font></tt><i>dict</i><tt><font size=+1>/</font></tt> window.<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/dict<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
dictionaries<br>
</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="../man7/regexp.html"><i>regexp</i>(7)</a><br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/dict<br>
/usr/local/plan9/bin/adict<br>
</font></tt>
</table>
<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>
A font with wide coverage of the Unicode Standard should be used
for best results. (Try <tt><font size=+1>/usr/local/plan9/font/pelm/unicode.9.font</font></tt>.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the <i>pattern</i> doesn&#8217;t begin with a few literal characters, matching
takes a long time.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The dictionaries are not distributed outside Bell Labs, though
see <tt><font size=+1>/usr/local/plan9/dict/README</font></tt> for information on using free
dictionaries prepared by Project Gutenberg.<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>

141
man/man1/diff.html Normal file
View File

@ -0,0 +1,141 @@
<head>
<title>diff(1) - 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>DIFF(1)</b><td align=right><b>DIFF(1)</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>
diff &ndash; differential file comparator<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>diff</font></tt> [ <tt><font size=+1>&#8722;efmnbwr</font></tt> ] file1 ... file2<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>
<i>Diff</i> tells what lines must be changed in two files to bring them
into agreement. If one file is a directory, then a file in that
directory with basename the same as that of the other file is
used. If both files are directories, similarly named files in
the two directories are compared by the method of <i>diff</i> for text
files and
<a href="../man1/cmp.html"><i>cmp</i>(1)</a> otherwise. If more than two file names are given, then
each argument is compared to the last argument as above. The <tt><font size=+1>&#8722;r</font></tt>
option causes <i>diff</i> to process similarly named subdirectories recursively.
When processing more than one file, <i>diff</i> prefixes file differences
with a single line listing the two differing files, in
the form of a <i>diff</i> command line. The <tt><font size=+1>&#8722;m</font></tt> flag causes this behavior
even when processing single files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The normal output contains lines of these forms:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>n1</i> <tt><font size=+1>a</font></tt> <i>n3,n4<br>
n1,n2</i> <tt><font size=+1>d</font></tt> <i>n3<br>
n1,n2</i> <tt><font size=+1>c</font></tt> <i>n3,n4
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
</table>
These lines resemble <i>ed</i> commands to convert <i>file1</i> into <i>file2</i>.
The numbers after the letters pertain to <i>file2</i>. In fact, by exchanging
&#8216;a&#8217; for &#8216;d&#8217; and reading backward one may ascertain equally how
to convert <i>file2</i> into <i>file1</i>. As in <i>ed</i>, identical pairs where <i>n1</i>
= <i>n2</i> or <i>n3</i> = <i>n4</i> are abbreviated as a single number.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Following each of these lines come all the lines that are affected
in the first file flagged by &#8216;&lt;&#8217;, then all the lines that are affected
in the second file flagged by &#8216;&gt;&#8217;.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;b</font></tt> option causes trailing blanks (spaces and tabs) to be ignored
and other strings of blanks to compare equal. The <tt><font size=+1>&#8722;w</font></tt> option causes
all white-space to be removed from input lines before applying
the difference algorithm.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;n</font></tt> option prefixes each range with <i>file</i><tt><font size=+1>:</font></tt> and inserts a space
around the <tt><font size=+1>a</font></tt>, <tt><font size=+1>c</font></tt>, and <tt><font size=+1>d</font></tt> verbs. The <tt><font size=+1>&#8722;e</font></tt> option produces a script
of <i>a, c</i> and <i>d</i> commands for the editor <i>ed</i>, which will recreate
<i>file2</i> from <i>file1</i>. The <tt><font size=+1>&#8722;f</font></tt> option produces a similar script, not
useful with <i>ed</i>, in the opposite order. It may, however, be useful
as
input to a stream-oriented post-processor.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Except in rare circumstances, <i>diff</i> finds a smallest sufficient
set of file differences.<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>/tmp/diff[12]<br>
</font></tt>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/diff<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/cmp.html"><i>cmp</i>(1)</a>, <a href="../man1/comm.html"><i>comm</i>(1)</a>, <a href="../man1/ed.html"><i>ed</i>(1)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Exit status is the empty string for no differences, <tt><font size=+1>some</font></tt> for some,
and <tt><font size=+1>error</font></tt> for trouble.<br>
</table>
<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>
Editing scripts produced under the <tt><font size=+1>&#8722;e</font></tt> or <tt><font size=+1>&#8722;f</font></tt> option are naive about
creating lines consisting of a single &#8216;.&#8217;.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When running <i>diff</i> on directories, the notion of what is a text
file is open to debate.<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>

88
man/man1/doctype.html Normal file
View File

@ -0,0 +1,88 @@
<head>
<title>doctype(1) - 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>DOCTYPE(1)</b><td align=right><b>DOCTYPE(1)</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>
doctype &ndash; intuit command line for formatting a document<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>doctype</font></tt> [ <tt><font size=+1>&#8722;n</font></tt> ] [ <tt><font size=+1>&#8722;T</font></tt> <i>dev</i> ] [ <i>file</i> ] ...<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>
<i>Doctype</i> examines a <a href="../man1/troff.html"><i>troff</i>(1)</a> input file to deduce the appropriate
text formatting command and prints it on standard output. <i>Doctype</i>
recognizes input for <a href="../man1/troff.html"><i>troff</i>(1)</a>, related preprocessors like <a href="../man1/eqn.html"><i>eqn</i>(1)</a>,
and the <a href="../man7/ms.html"><i>ms</i>(7)</a> and <i>mm</i> macro packages.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;n</font></tt> invokes <i>nroff</i> instead of <i>troff</i>. The <tt><font size=+1>&#8722;T</font></tt> option is passed
to <i>troff</i>.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>eval `{doctype chapter.?} | lp<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Typeset files named <tt><font size=+1>chapter.0</font></tt>, <tt><font size=+1>chapter.1</font></tt>, ...<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/bin/doctype<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/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>, <a href="../man1/grap.html"><i>grap</i>(1)</a>, <a href="../man7/ms.html"><i>ms</i>(7)</a>, <a href="../man7/man.html"><i>man</i>(7)</a><br>
</table>
<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>
In true A.I. style, its best guesses are inspired rather than
accurate.<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>

62
man/man1/echo.html Normal file
View File

@ -0,0 +1,62 @@
<head>
<title>echo(1) - 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>ECHO(1)</b><td align=right><b>ECHO(1)</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>
echo &ndash; print arguments<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>echo</font></tt> [ <tt><font size=+1>&#8722;n</font></tt> ] [ <i>arg ...</i> ]<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>
<i>Echo</i> writes its arguments separated by blanks and terminated by
a newline on the standard output. Option <tt><font size=+1>&#8722;n</font></tt> suppresses the newline.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/echo.c<br>
</font></tt>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
If <i>echo</i> draws an error while writing to standard output, the exit
status is <tt><font size=+1>write error</font></tt>. Otherwise the exit status is empty.<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>

439
man/man1/ed.html Normal file
View File

@ -0,0 +1,439 @@
<head>
<title>ed(1) - 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>ED(1)</b><td align=right><b>ED(1)</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>
ed &ndash; text editor<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>ed</font></tt> [ <tt><font size=+1>&#8722;</font></tt> ] [ <tt><font size=+1>&#8722;o</font></tt> ] [ <i>file</i> ]<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>
<i>Ed</i> is a venerable text editor.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If a <i>file</i> argument is given, <i>ed</i> simulates an <tt><font size=+1>e</font></tt> command (see below)
on that file: it is read into <i>ed&#8217;s</i> buffer so that it can be edited.
The options are<br>
<tt><font size=+1>&#8722;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppress the printing of character counts by <tt><font size=+1>e</font></tt>, <tt><font size=+1>r</font></tt>, and <tt><font size=+1>w</font></tt> commands
and of the confirming <tt><font size=+1>!</font></tt> by <tt><font size=+1>!</font></tt> commands.<br>
<tt><font size=+1>&#8722;o</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;(for output piping) Write all output to the standard error file
except writing by <tt><font size=+1>w</font></tt> commands. If no <i>file</i> is given, make <tt><font size=+1>/dev/stdout</font></tt>
the remembered file; see the <tt><font size=+1>e</font></tt> command below.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Ed</i> operates on a &#8216;buffer&#8217;, a copy of the file it is editing; changes
made in the buffer have no effect on the file until a <tt><font size=+1>w</font></tt> (write)
command is given. The copy of the text being edited resides in
a temporary file called the <i>buffer</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Commands to <i>ed</i> have a simple and regular structure: zero, one,
or two <i>addresses</i> followed by a single character <i>command</i>, possibly
followed by parameters to the command. These addresses specify
one or more lines in the buffer. Missing addresses are supplied
by default.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In general, only one command may appear on a line. Certain commands
allow the addition of text to the buffer. While <i>ed</i> is accepting
text, it is said to be in <i>input mode.</i> In this mode, no commands
are recognized; all input is merely collected. Input mode is left
by typing a period <tt><font size=+1>.</font></tt> alone at the beginning of a line.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Ed</i> supports the <i>regular expression</i> notation described in <a href="../man7/regexp.html"><i>regexp</i>(7)</a>.
Regular expressions are used in addresses to specify lines and
in one command (see <i>s</i> below) to specify a portion of a line which
is to be replaced. If it is desired to use one of the regular
expression metacharacters as an ordinary character, that
character may be preceded by &#8216;<tt><font size=+1>\</font></tt>&#8217;. This also applies to the character
bounding the regular expression (often <tt><font size=+1>/</font></tt>) and to <tt><font size=+1>\</font></tt> itself.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
To understand addressing in <i>ed</i> it is necessary to know that at
any time there is a <i>current line.</i> Generally, the current line
is the last line affected by a command; however, the exact effect
on the current line is discussed under the description of each
command. Addresses are constructed as follows.
1.&nbsp;&nbsp;&nbsp;&nbsp;The character <tt><font size=+1>.</font></tt>, customarily called &#8216;dot&#8217;, addresses the current
line.<br>
2.&nbsp;&nbsp;&nbsp;&nbsp;The character <tt><font size=+1>$</font></tt> addresses the last line of the buffer.<br>
3.&nbsp;&nbsp;&nbsp;&nbsp;A decimal number <i>n</i> addresses the <i>n</i>-th line of the buffer.<br>
4.<tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;'x</font></tt> addresses the line marked with the name <i>x</i>, which must be
a lower-case letter. Lines are marked with the <tt><font size=+1>k</font></tt> command.<br>
5.&nbsp;&nbsp;&nbsp;&nbsp;A regular expression enclosed in slashes ( <tt><font size=+1>/</font></tt>) addresses the
line found by searching forward from the current line and stopping
at the first line containing a string that matches the regular
expression. If necessary the search wraps around to the beginning
of the buffer.<br>
6.&nbsp;&nbsp;&nbsp;&nbsp;A regular expression enclosed in queries <tt><font size=+1>?</font></tt> addresses the line
found by searching backward from the current line and stopping
at the first line containing a string that matches the regular
expression. If necessary the search wraps around to the end of
the buffer.<br>
7.&nbsp;&nbsp;&nbsp;&nbsp;An address followed by a plus sign <tt><font size=+1>+</font></tt> or a minus sign <tt><font size=+1>&#8722;</font></tt> followed
by a decimal number specifies that address plus (resp. minus)
the indicated number of lines. The plus sign may be omitted.<br>
8.&nbsp;&nbsp;&nbsp;&nbsp;An address followed by <tt><font size=+1>+</font></tt> (or <tt><font size=+1>&#8722;</font></tt>) followed by a regular expression
enclosed in slashes specifies the first matching line following
(or preceding) that address. The search wraps around if necessary.
The <tt><font size=+1>+</font></tt> may be omitted, so <tt><font size=+1>0/x/</font></tt> addresses the <i>first</i> line in the
buffer with an <tt><font size=+1>x</font></tt>. Enclosing the regular expression in
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>?</font></tt> reverses the search direction.<br>
</table>
9.&nbsp;&nbsp;&nbsp;&nbsp;If an address begins with <tt><font size=+1>+</font></tt> or <tt><font size=+1>&#8722;</font></tt> the addition or subtraction
is taken with respect to the current line; e.g. <tt><font size=+1>&#8722;5</font></tt> is understood
to mean <tt><font size=+1>.&#8722;5</font></tt>.<br>
10.&nbsp;&nbsp;&nbsp;If an address ends with <tt><font size=+1>+</font></tt> or <tt><font size=+1>&#8722;</font></tt>, then 1 is added (resp. subtracted).
As a consequence of this rule and rule 9, the address <tt><font size=+1>&#8722;</font></tt> refers
to the line before the current line. Moreover, trailing <tt><font size=+1>+</font></tt> and
<tt><font size=+1>&#8722;</font></tt> characters have cumulative effect, so <tt><font size=+1>&#8722;&#8722;</font></tt> refers to the current
line less 2.<br>
11.&nbsp;&nbsp;&nbsp;To maintain compatibility with earlier versions of the editor,
the character <tt><font size=+1>^</font></tt> in addresses is equivalent to <tt><font size=+1>&#8722;</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Commands may require zero, one, or two addresses. Commands which
require no addresses regard the presence of an address as an error.
Commands which accept one or two addresses assume default addresses
when insufficient are given. If more addresses are given than
a command requires, the last one or two
(depending on what is accepted) are used.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Addresses are separated from each other typically by a comma <tt><font size=+1>,</font></tt>.
They may also be separated by a semicolon <tt><font size=+1>;</font></tt>. In this case the
current line is set to the previous address before the next address
is interpreted. If no address precedes a comma or semicolon, line
1 is assumed; if no address follows, the last line of the
buffer is assumed. The second address of any two-address sequence
must correspond to a line following the line corresponding to
the first address.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In the following list of <i>ed</i> commands, the default addresses are
shown in parentheses. The parentheses are not part of the address,
but are used to show that the given addresses are the default.
&#8216;Dot&#8217; means the current line.<br>
(<tt><font size=+1>.</font></tt>)<tt><font size=+1>a<br>
</font></tt>&lt;text&gt;<br>
<tt><font size=+1>.</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read the given text and append it after the addressed line. Dot
is left on the last line input, if there were any, otherwise at
the addressed line. Address <tt><font size=+1>0</font></tt> is legal for this command; text
is placed at the beginning of the buffer.<br>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>b</font></tt>[<tt><font size=+1>+&#8722;</font></tt>][<i>pagesize</i>][<tt><font size=+1>pln</font></tt>]<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Browse. Print a &#8216;page&#8217;, normally 20 lines. The optional <tt><font size=+1>+</font></tt> (default)
or <tt><font size=+1>&#8722;</font></tt> specifies whether the next or previous page is to be printed.
The optional <i>pagesize</i> is the number of lines in a page. The optional
<tt><font size=+1>p</font></tt>, <tt><font size=+1>n</font></tt>, or <tt><font size=+1>l</font></tt> causes printing in the specified format, initially
<tt><font size=+1>p</font></tt>. Pagesize and format are remembered between <tt><font size=+1>b
</font></tt>commands. Dot is left at the last line displayed.<br>
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>c<br>
</font></tt>&lt;text&gt;<br>
<tt><font size=+1>.</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change. Delete the addressed lines, then accept input text to
replace these lines. Dot is left at the last line input; if there
were none, it is left at the line preceding the deleted lines.<br>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>d<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Delete the addressed lines from the buffer. Dot is set to the
line following the last line deleted, or to the last line of the
buffer if the deleted lines had no successor.<br>
</table>
<tt><font size=+1>e</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Edit. Delete the entire contents of the buffer; then read the
named file into the buffer. Dot is set to the last line of the
buffer. The number of characters read is typed. The file name
is remembered for possible use in later <tt><font size=+1>e</font></tt>, <tt><font size=+1>r</font></tt>, or <tt><font size=+1>w</font></tt> commands. If
<i>filename</i> is missing, the remembered name is used.
</table>
<tt><font size=+1>E</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Unconditional <tt><font size=+1>e</font></tt>; see &#8216;<tt><font size=+1>q</font></tt>&#8217; below.<br>
</table>
<tt><font size=+1>f</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the currently remembered file name. If <i>filename</i> is given,
the currently remembered file name is first changed to <i>filename</i>.<br>
</table>
(<tt><font size=+1>1,$</font></tt>)<tt><font size=+1>g/</font></tt><i>regular expression</i><tt><font size=+1>/</font></tt><i>command list<br>
</i>(<tt><font size=+1>1,$</font></tt>)<tt><font size=+1>g/</font></tt><i>regular expression</i><tt><font size=+1>/<br>
</font></tt>(<tt><font size=+1>1,$</font></tt>)<tt><font size=+1>g/</font></tt><i>regular expression<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Global. First mark every line which matches the given <i>regular</i>expression<i>.</i>
Then for every such line, execute the <i>command list</i> with dot initially
set to that line. A single command or the first of multiple commands
appears on the same line with the global command. All lines of
a multi-line list except the last line
must end with <tt><font size=+1>\</font></tt>. The &#8216;<tt><font size=+1>.</font></tt>&#8217; terminating input mode for an <tt><font size=+1>a</font></tt>, <tt><font size=+1>i</font></tt>, <tt><font size=+1>c</font></tt>
command may be omitted if it would be on the last line of the
command list. The commands <tt><font size=+1>g</font></tt> and <tt><font size=+1>v</font></tt> are not permitted in the command
list. Any character other than space or newline may be used instead
of <tt><font size=+1>/</font></tt> to delimit the regular expression.
The second and third forms mean <tt><font size=+1>g/</font></tt><i>regular expression</i><tt><font size=+1>/p</font></tt>.<br>
</table>
(<tt><font size=+1>.</font></tt>)<tt><font size=+1>i<br>
</font></tt>&lt;text&gt;<br>
<tt><font size=+1>.</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Insert the given text before the addressed line. Dot is left
at the last line input, or, if there were none, at the line before
the addressed line. This command differs from the <i>a</i> command only
in the placement of the text.<br>
(<tt><font size=+1>.,.+1</font></tt>)<tt><font size=+1>j<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Join the addressed lines into a single line; intermediate newlines
are deleted. Dot is left at the resulting line.<br>
</table>
(<tt><font size=+1>.</font></tt>)<tt><font size=+1>k</font></tt><i>x</i>Mark the addressed line with name <i>x</i>, which must be a lower-case
letter. The address form <tt><font size=+1>'</font></tt><i>x</i> then addresses this line.<br>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>l<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
List. Print the addressed lines in an unambiguous way: a tab is
printed as <tt><font size=+1>\t</font></tt>, a backspace as <tt><font size=+1>\b</font></tt>, backslashes as <tt><font size=+1>\\</font></tt>, and non-printing
characters as a backslash, an <tt><font size=+1>x</font></tt>, and four hexadecimal digits.
Long lines are folded, with the second and subsequent sub-lines
indented one tab stop. If the last character in
the line is a blank, it is followed by <tt><font size=+1>\n</font></tt>. An <tt><font size=+1>l</font></tt> may be appended,
like <tt><font size=+1>p</font></tt>, to any non-I/O command.<br>
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>m</font></tt><i>a<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Move. Reposition the addressed lines after the line addressed
by <i>a</i>. Dot is left at the last moved line.<br>
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>n<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Number. Perform <tt><font size=+1>p</font></tt>, prefixing each line with its line number and
a tab. An <tt><font size=+1>n</font></tt> may be appended, like <tt><font size=+1>p</font></tt>, to any non-I/O command.<br>
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>p<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the addressed lines. Dot is left at the last line printed.
A <tt><font size=+1>p</font></tt> appended to any non-I/O command causes the then current line
to be printed after the command is executed.<br>
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>P<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
This command is a synonym for <tt><font size=+1>p</font></tt>.<br>
</table>
<tt><font size=+1>q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quit the editor. No automatic write of a file is done. A <tt><font size=+1>q</font></tt> or
<tt><font size=+1>e</font></tt> command is considered to be in error if the buffer has been
modified since the last <tt><font size=+1>w</font></tt>, <tt><font size=+1>q</font></tt>, or <tt><font size=+1>e</font></tt> command.<br>
<tt><font size=+1>Q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quit unconditionally.<br>
(<tt><font size=+1>$</font></tt>)r <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Read in the given file after the addressed line. If no <i>filename</i>
is given, the remembered file name is used. The file name is remembered
if there were no remembered file name already. If the read is
successful, the number of characters read is printed. Dot is left
at the last line read from the file.
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>s</font></tt><i>n</i><tt><font size=+1>/</font></tt><i>regular expression</i><tt><font size=+1>/</font></tt><i>replacement</i><tt><font size=+1>/<br>
</font></tt>(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>s</font></tt><i>n</i><tt><font size=+1>/</font></tt><i>regular expression</i><tt><font size=+1>/</font></tt><i>replacement</i><tt><font size=+1>/g<br>
</font></tt>(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>s</font></tt><i>n</i><tt><font size=+1>/</font></tt><i>regular expression</i><tt><font size=+1>/</font></tt><i>replacement<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Substitute. Search each addressed line for an occurrence of the
specified regular expression. On each line in which <i>n</i> matches
are found (<i>n</i> defaults to 1 if missing), the <i>n</i>th matched string
is replaced by the replacement specified. If the global replacement
indicator <tt><font size=+1>g</font></tt> appears after the command, all subsequent
matches on the line are also replaced. It is an error for the
substitution to fail on all addressed lines. Any character other
than space or newline may be used instead of <tt><font size=+1>/</font></tt> to delimit the
regular expression and the replacement. Dot is left at the last
line substituted. The third form means
<tt><font size=+1>s</font></tt><i>n</i><tt><font size=+1>/</font></tt><i>regular expression</i><tt><font size=+1>/</font></tt><i>replacement</i><tt><font size=+1>/p</font></tt>. The second <tt><font size=+1>/</font></tt> may be omitted
if the replacement is empty.<br>
An ampersand <tt><font size=+1>&amp;</font></tt> appearing in the replacement is replaced by the
string matching the regular expression. The characters <tt><font size=+1>\</font></tt><i>n</i>, where
<i>n</i> is a digit, are replaced by the text matched by the <i>n</i>-th regular
subexpression enclosed between <tt><font size=+1>(</font></tt> and <tt><font size=+1>)</font></tt>. When nested parenthesized
subexpressions are present, <i>n</i> is
determined by counting occurrences of <tt><font size=+1>(</font></tt> starting from the left.<br>
A literal <tt><font size=+1>&amp;</font></tt>, <tt><font size=+1>/</font></tt>, <tt><font size=+1>\</font></tt> or newline may be included in a replacement by
prefixing it with <tt><font size=+1>\</font></tt>.<br>
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>t</font></tt><i>a<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Transfer. Copy the addressed lines after the line addressed by
<i>a</i>. Dot is left at the last line of the copy.<br>
</table>
(<tt><font size=+1>.,.</font></tt>)<tt><font size=+1>u<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Undo. Restore the preceding contents of the first addressed line
(sic), which must be the last line in which a substitution was
made (double sic).<br>
</table>
(<tt><font size=+1>1,$</font></tt>)<tt><font size=+1>v/</font></tt><i>regular expression</i><tt><font size=+1>/</font></tt><i>command list<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
This command is the same as the global command <tt><font size=+1>g</font></tt> except that the
command list is executed with dot initially set to every line
<i>except</i> those matching the regular expression.<br>
</table>
(<tt><font size=+1>1,$</font></tt>)<tt><font size=+1>w</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Write the addressed lines to the given file. If the file does
not exist, it is created with mode 666 (readable and writable
by everyone). If no <i>filename</i> is given, the remembered file name,
if any, is used. The file name is remembered if there were no
remembered file name already. Dot is unchanged. If the write is
successful, the number of characters written is printed.<br>
</table>
(<tt><font size=+1>1,$</font></tt>)<tt><font size=+1>W</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Perform <tt><font size=+1>w</font></tt>, but append to, instead of overwriting, any existing
file contents.<br>
</table>
(<tt><font size=+1>$</font></tt>)<tt><font size=+1>=</font></tt>&nbsp;&nbsp;&nbsp;Print the line number of the addressed line. Dot is unchanged.<br>
<tt><font size=+1>!</font></tt><i>shell command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Send the remainder of the line after the <tt><font size=+1>!</font></tt> to <a href="../man1/rc.html"><i>rc</i>(1)</a> to be interpreted
as a command. Dot is unchanged.<br>
</table>
(<tt><font size=+1>.+1</font></tt>)&lt;newline&gt;<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
An address without a command is taken as a <tt><font size=+1>p</font></tt> command. A terminal
<tt><font size=+1>/</font></tt> may be omitted from the address. A blank line alone is equivalent
to <tt><font size=+1>.+1p</font></tt>; it is useful for stepping through text.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
If an interrupt signal (DEL) is sent, <i>ed</i> prints a <tt><font size=+1>?</font></tt> and returns
to its command level.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When reading a file, <i>ed</i> discards NUL characters and all characters
after the last newline.<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>/tmp/e*<br>
ed.hup</font></tt> work is saved here if terminal hangs up<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/ed.c<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/sam.html"><i>sam</i>(1)</a>, <a href="../man1/sed.html"><i>sed</i>(1)</a>, <a href="../man7/regexp.html"><i>regexp</i>(7)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>?</font></tt><i>name</i> for inaccessible file; <tt><font size=+1>?TMP</font></tt> for temporary file overflow;
<tt><font size=+1>?</font></tt> for errors in commands or other overflows.<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>

203
man/man1/eqn.html Normal file
View File

@ -0,0 +1,203 @@
<head>
<title>eqn(1) - 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>EQN(1)</b><td align=right><b>EQN(1)</b>
<tr><td width=20><td colspan=2>
<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>
delim $$<br>
</table>
</table>
<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>
eqn &ndash; typeset mathematics<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>eqn</font></tt> [ <i>option ...</i> ] [ <i>file ...</i> ]<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>
<i>Eqn</i> is a <a href="../man1/troff.html"><i>troff</i>(1)</a> preprocessor for typesetting mathematics on
a typesetter. Usage is almost always<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>eqn file ... | troff
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
If no files are specified, <i>eqn</i> reads from the standard input.
<i>Eqn</i> prepares output for the typesetter named in the <tt><font size=+1>&#8722;T</font></tt><i>dest</i> option
(default <tt><font size=+1>&#8722;Tutf</font></tt>; see <a href="../man1/troff.html"><i>troff</i>(1)</a>). When run with other preprocessor
filters, <i>eqn</i> usually comes last.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A line beginning with <tt><font size=+1>.EQ</font></tt> marks the start of an equation; the
end of an equation is marked by a line beginning with <tt><font size=+1>.EN</font></tt>. Neither
of these lines is altered, so they may be defined in macro packages
to get centering, numbering, etc. It is also possible to set two
characters as &#8216;delimiters&#8217;; text between delimiters is also
<i>eqn</i> input. Delimiters may be set to characters <i>x</i> and <i>y</i> with the
option <tt><font size=+1>&#8722;d</font></tt><i>xy</i> or (more commonly) with <tt><font size=+1>delim</font></tt> <i>xy</i> between <tt><font size=+1>.EQ</font></tt> and <tt><font size=+1>.EN</font></tt>.
Left and right delimiters may be identical. (They are customarily
taken to be $font L &quot;$$&quot; )$. Delimiters are turned off by <tt><font size=+1>delim
off</font></tt>. All text that is neither between delimiters
nor between <tt><font size=+1>.EQ</font></tt> and <tt><font size=+1>.EN</font></tt> is passed through untouched.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Tokens within <i>eqn</i> are separated by spaces, tabs, newlines, braces,
double quotes, tildes or circumflexes. Braces {} are used for
grouping; generally speaking, anywhere a single character like
<tt><font size=+1>x</font></tt> could appear, a complicated construction enclosed in braces
may be used instead. Tilde <tt><font size=+1>~</font></tt> represents a full space in the
output, circumflex <tt><font size=+1>^</font></tt> half as much.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Subscripts and superscripts are produced with the keywords <tt><font size=+1>sub</font></tt>
and <tt><font size=+1>sup</font></tt>. Thus <tt><font size=+1>x sub i</font></tt> makes $x sub i$, <tt><font size=+1>a sub i sup 2</font></tt> produces
$a sub i sup 2$, and <tt><font size=+1>e sup {x sup 2 + y sup 2}</font></tt> gives $e sup {x
sup 2 + y sup 2}$.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>Over</font></tt> makes fractions: <tt><font size=+1>a over b</font></tt> yields $a over b$.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>Sqrt</font></tt> produces square roots: <tt><font size=+1>1 over sqrt {ax sup 2 +bx+c}</font></tt> results
in $1 over sqrt {ax sup 2 +bx+c}$ .
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The keywords <tt><font size=+1>from</font></tt> and <tt><font size=+1>to</font></tt> introduce lower and upper limits on arbitrary
things: $lim from {n -&gt; inf} sum from 0 to n x sub i$ is made with
<tt><font size=+1>lim from {n &#8722;&gt; inf} sum from 0 to n x sub i</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Left and right brackets, braces, etc., of the right height are
made with <tt><font size=+1>left</font></tt> and <tt><font size=+1>right</font></tt>: <tt><font size=+1>left [ x sup 2 + y sup 2 over alpha
right ] ~=~1</font></tt> produces $left [ x sup 2 + y sup 2 over alpha right
] ~=~1$. The <tt><font size=+1>right</font></tt> clause is optional. Legal characters after
<tt><font size=+1>left</font></tt> and <tt><font size=+1>right</font></tt> are braces, brackets,
bars, <tt><font size=+1>c</font></tt> and <tt><font size=+1>f</font></tt> for ceiling and floor, and <tt><font size=+1>&quot;&quot;</font></tt> for nothing at all (useful
for a right-side-only bracket).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Vertical piles of things are made with <tt><font size=+1>pile</font></tt>, <tt><font size=+1>lpile</font></tt>, <tt><font size=+1>cpile</font></tt>, and
<tt><font size=+1>rpile</font></tt>: <tt><font size=+1>pile {a above b above c}</font></tt> produces $pile {a above b above
c}$. There can be an arbitrary number of elements in a pile. <tt><font size=+1>lpile</font></tt>
left-justifies, <tt><font size=+1>pile</font></tt> and <tt><font size=+1>cpile</font></tt> center, with different vertical
spacing, and <tt><font size=+1>rpile</font></tt> right justifies.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Matrices are made with <tt><font size=+1>matrix</font></tt>: <tt><font size=+1>matrix { lcol { x sub i above y
sub 2 } ccol { 1 above 2 } }</font></tt> produces $matrix { lcol { x sub i
above y sub 2 } ccol { 1 above 2 } }$. In addition, there is <tt><font size=+1>rcol</font></tt>
for a right-justified column.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Diacritical marks are made with <tt><font size=+1>prime</font></tt>, <tt><font size=+1>dot</font></tt>, <tt><font size=+1>dotdot</font></tt>, <tt><font size=+1>hat</font></tt>, <tt><font size=+1>tilde</font></tt>,
<tt><font size=+1>bar</font></tt>, <tt><font size=+1>under</font></tt>, <tt><font size=+1>vec</font></tt>, <tt><font size=+1>dyad</font></tt>, and <tt><font size=+1>under</font></tt>: <tt><font size=+1>x sub 0 sup prime = f(t) bar
+ g(t) under</font></tt> is $x sub 0 sup prime = f(t) bar + g(t) under$, and
<tt><font size=+1>x vec = y dyad</font></tt> is $x vec = y dyad$.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Sizes and fonts can be changed with prefix operators <tt><font size=+1>size</font></tt> <i>n</i>, <tt><font size=+1>size
&plusmn;</font></tt><i>n</i>, <tt><font size=+1>fat</font></tt>, <tt><font size=+1>roman</font></tt>, <tt><font size=+1>italic</font></tt>, <tt><font size=+1>bold</font></tt>, or <tt><font size=+1>font</font></tt> <i>n</i>. Size and fonts can be
changed globally in a document by <tt><font size=+1>gsize</font></tt> <i>n</i> and <tt><font size=+1>gfont</font></tt> <i>n</i>, or by the
command-line arguments <tt><font size=+1>&#8722;s</font></tt><i>n</i> and <tt><font size=+1>&#8722;f</font></tt><i>n</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Normally subscripts and superscripts are reduced by 3 point sizes
from the previous size; this may be changed by the command-line
argument <tt><font size=+1>&#8722;p</font></tt><i>n</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Successive display arguments can be lined up. Place <tt><font size=+1>mark</font></tt> before
the desired lineup point in the first equation; place <tt><font size=+1>lineup</font></tt> at
the place that is to line up vertically in subsequent equations.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Shorthands may be defined or existing keywords redefined with
<tt><font size=+1>define</font></tt>: <tt><font size=+1>define</font></tt> <i>thing</i> <tt><font size=+1>%</font></tt> <i>replacement</i> <tt><font size=+1>%</font></tt> defines a new token called
<i>thing</i> which will be replaced by <i>replacement</i> whenever it appears
thereafter. The <tt><font size=+1>%</font></tt> may be any character that does not occur in
<tt><font size=+1>replacement</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Keywords like <tt><font size=+1>sum</font></tt> ( sum ), <tt><font size=+1>int</font></tt> ( int ), <tt><font size=+1>inf</font></tt> ( inf ), and shorthands
like <tt><font size=+1>&gt;=</font></tt> (&gt;=), <tt><font size=+1>&#8722;&gt;</font></tt> (-&gt;), and <tt><font size=+1>!=</font></tt> ( != ) are recognized. Greek letters
are spelled out in the desired case, as in <tt><font size=+1>alpha</font></tt> or <tt><font size=+1>GAMMA</font></tt>. Mathematical
words like <tt><font size=+1>sin</font></tt>, <tt><font size=+1>cos</font></tt>, <tt><font size=+1>log</font></tt> are made Roman automatically. <a href="../man1/Troff.html"><i>Troff</i>(1)</a>
four-character escapes like <tt><font size=+1>\(lh</font></tt> (<=) can
be used anywhere. Strings enclosed in double quotes &quot; &quot; are passed
through untouched; this permits keywords to be entered as text,
and can be used to communicate with <i>troff</i> when all else fails.<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>/sys/lib/troff/font/devutf</font></tt>&nbsp;&nbsp;&nbsp;font descriptions for PostScript<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/eqn<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/tbl.html"><i>tbl</i>(1)</a><br>
J. F. Ossanna and B. W. Kernighan, &#8220;Troff User&#8217;s Manual&#8221;.<br>
B. W. Kernighan and L. L. Cherry, &#8220;Typesetting Mathematics--User&#8217;s
Guide&#8221;, <i>Unix Research System Programmer&#8217;s Manual,</i> Tenth Edition,
Volume 2.<br>
</table>
<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>
To embolden digits, parens, etc., it is necessary to quote them,
as in <tt><font size=+1>bold &quot;12.3&quot;</font></tt>. delim off<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>

73
man/man1/factor.html Normal file
View File

@ -0,0 +1,73 @@
<head>
<title>factor(1) - 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>FACTOR(1)</b><td align=right><b>FACTOR(1)</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>
factor, primes &ndash; factor a number, generate large primes<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>factor</font></tt> [ <i>number</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>primes</font></tt> [ <i>start</i> [ <i>finish</i> ] ]<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>
<i>Factor</i> prints <i>number</i> and its prime factors, each repeated the
proper number of times. The number must be positive and less than
254 (about 1.8&#215;1016).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If no <i>number</i> is given, <i>factor</i> reads a stream of numbers from the
standard input and factors them. It exits on any input not a positive
integer. Maximum running time is proportional to <i>-/n </i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Primes</i> prints the prime numbers ranging from <i>start</i> to <i>finish</i>,
where <i>start</i> and <i>finish</i> are positive numbers less than 256. If
<i>finish</i> is missing, <i>primes</i> prints without end; if <i>start</i> is missing,
it reads the starting number from the standard input.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/factor.c<br>
/usr/local/plan9/src/cmd/primes.c<br>
</font></tt>
</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>

100
man/man1/fmt.html Normal file
View File

@ -0,0 +1,100 @@
<head>
<title>fmt(1) - 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>FMT(1)</b><td align=right><b>FMT(1)</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>
fmt, htmlfmt &ndash; simple text formatters<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>fmt</font></tt> [ <i>option ...</i> ] [ <i>file ...</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>htmlfmt</font></tt> [ <tt><font size=+1>&#8722;a</font></tt> ] [ <tt><font size=+1>&#8722;c</font></tt> <i>charset</i> ] [ <tt><font size=+1>&#8722;u</font></tt> <i>url</i> ] [ <i>file ...</i> ]<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>
<i>Fmt</i> copies the given <i>files</i> (standard input by default) to its
standard output, filling and indenting lines. The options are<br>
<tt><font size=+1>&#8722;l</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;Output line length is <i>n</i>, including indent (default 70).<br>
<tt><font size=+1>&#8722;w</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;A synonym for <tt><font size=+1>&#8722;l</font></tt>.<br>
<tt><font size=+1>&#8722;i</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;Indent <i>n</i> spaces (default 0).<br>
<tt><font size=+1>&#8722;j</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Do not join short lines: only fold long lines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Empty lines and initial white space in input lines are preserved.
Empty lines are inserted between input files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Fmt</i> is idempotent: it leaves already formatted text unchanged.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Htmlfmt</i> performs a similar service, but accepts as input text
formatted with HTML tags. It accepts <i>fmt</i>&#8217;s <tt><font size=+1>&#8722;l</font></tt> and <tt><font size=+1>&#8722;w</font></tt> flags and
also:<br>
<tt><font size=+1>&#8722;a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Normally <i>htmlfmt</i> suppresses the contents of form fields and
anchors (URLs and image files); this flag causes it to print them,
in square brackets.<br>
<tt><font size=+1>&#8722;c</font></tt> <i>charset<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
change the default character set from iso-8859-1 to <i>charset</i>. This
is the character set assumed if there isn&#8217;t one specified by the
html itself in a &lt;meta&gt; directive.<br>
</table>
<tt><font size=+1>&#8722;u</font></tt> <i>url</i>Use <i>url</i> as the base URL for the document when displaying
anchors; sets <tt><font size=+1>&#8722;a</font></tt><i>.<br>
</i>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/fmt.c
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
<tt><font size=+1>/usr/local/plan9/src/cmd/htmlfmt<br>
</font></tt>
</table>
<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>
<i>Htmlfmt</i> makes no attempt to render the two-dimensional geometry
of tables; it just treats the table entries as plain, to-be-formatted
text.<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>

64
man/man1/fortune.html Normal file
View File

@ -0,0 +1,64 @@
<head>
<title>fortune(1) - 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>FORTUNE(1)</b><td align=right><b>FORTUNE(1)</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>
fortune &ndash; sample lines from a file<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>fortune</font></tt> [ <i>file</i> ]<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>
<i>Fortune</i> prints a one-line aphorism chosen at random. If a <i>file</i>
is specified, the saying is taken from that file; otherwise it
is selected from <tt><font size=+1>/usr/local/plan9/lib/fortunes</font></tt>.<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/lib/fortunes<br>
/usr/local/plan9/lib/fortunes.index</font></tt> fast lookup table, maintained
automatically<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/fortune.c<br>
</font></tt>
</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>

69
man/man1/freq.html Normal file
View File

@ -0,0 +1,69 @@
<head>
<title>freq(1) - 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>FREQ(1)</b><td align=right><b>FREQ(1)</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>
freq &ndash; print histogram of character frequencies<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>freq</font></tt> [ <tt><font size=+1>&#8722;dxocr</font></tt> ] [ <i>file ...</i> ]<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>
<i>Freq</i> reads the given files (default standard input) and prints
histograms of the character frequencies. By default, <i>freq</i> counts
each byte as a character; under the <tt><font size=+1>&#8722;r</font></tt> option it instead counts
UTF sequences, that is, runes.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Each non-zero entry of the table is printed preceded by the byte
value, in decimal, octal, hex, and Unicode character (if printable).
If any options are given, the <tt><font size=+1>&#8722;d</font></tt>, <tt><font size=+1>&#8722;x</font></tt>, <tt><font size=+1>&#8722;o</font></tt>, <tt><font size=+1>&#8722;c</font></tt> flags specify a subset
of value formats: decimal, hex, octal, and character, respectively.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/freq.c<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="../man7/utf.html"><i>utf</i>(7)</a>, <a href="../man1/wc.html"><i>wc</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>

68
man/man1/fsize.html Normal file
View File

@ -0,0 +1,68 @@
<head>
<title>fsize(1) - 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>FSIZE(1)</b><td align=right><b>FSIZE(1)</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>
fsize, mtime &ndash; print file information<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>fsize</font></tt> <i>file ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>mtime</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>
<i>Fsize</i> prints the name and size of each of the files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Mtime</i> prints the name and modification time (in seconds since
the epoch) of each of the files.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/fsize.c<br>
/usr/local/plan9/src/cmd/mtime.c<br>
</font></tt>
</table>
<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>
The output formats of the two programs are different.<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>

232
man/man1/grap.html Normal file
View File

@ -0,0 +1,232 @@
<head>
<title>grap(1) - 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>GRAP(1)</b><td align=right><b>GRAP(1)</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>
grap &ndash; pic preprocessor for drawing graphs<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>grap</font></tt> [ <i>file ...</i> ]<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>
<i>Grap</i> is a <a href="../man1/pic.html"><i>pic</i>(1)</a> preprocessor for drawing graphs on a typesetter.
Graphs are surrounded by the <i>troff</i> &#8216;commands&#8217; <tt><font size=+1>.G1</font></tt> and <tt><font size=+1>.G2</font></tt>. Data
are scaled and plotted, with tick marks supplied automatically.
Commands exist to modify the frame, add labels, override the default
ticks, change the plotting style, define coordinate
ranges and transformations, and include data from files. In addition,
<i>grap</i> provides the same loops, conditionals, and macro processing
that <i>pic</i> does.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>frame ht</font></tt> <i>e</i> <tt><font size=+1>wid</font></tt> <i>e</i> <tt><font size=+1>top dotted</font></tt> <i>...</i>: Set the frame around the graph
to specified <tt><font size=+1>ht</font></tt> and <tt><font size=+1>wid</font></tt>; default is 2 by 3 (inches). The line
<i>styles</i> (<tt><font size=+1>dotted</font></tt>, <tt><font size=+1>dashed</font></tt>, <tt><font size=+1>invis</font></tt>, <tt><font size=+1>solid</font></tt> (default)) of the <i>sides</i> (<tt><font size=+1>top</font></tt>,
<tt><font size=+1>bot</font></tt>, <tt><font size=+1>left</font></tt>, <tt><font size=+1>right</font></tt>) of the frame can be set independently.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>label</font></tt> <i>side </i><tt><font size=+1>&quot;a label&quot; &quot;as a set of strings&quot;</font></tt> <i>adjust</i>: Place label on
specified side; default side is bottom. <i>adjust</i> is <tt><font size=+1>up</font></tt> (or <tt><font size=+1>down
left right</font></tt>) <i>expr</i> to shift default position; <tt><font size=+1>width</font></tt> <i>expr</i> sets the
width explicitly.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>ticks</font></tt> <i>side</i> <tt><font size=+1>in at</font></tt> <i>optname expr, expr, ...</i>: Put ticks on <i>side</i> at
<i>expr, ...,</i> and label with <i>&quot;expr&quot;</i>. If any <i>expr</i> is followed by &quot;...&quot;,
label tick with &quot;...&quot;, and turn off all automatic labels. If &quot;...&quot;
contains <tt><font size=+1>%f</font></tt>&#8217;s, they will be interpreted as <tt><font size=+1>printf</font></tt> formatting instructions
for the tick value. Ticks point <tt><font size=+1>in</font></tt> or <tt><font size=+1>out</font></tt> (default out). Tick
iterator: instead of <tt><font size=+1>at</font></tt> <i>...</i>, use <tt><font size=+1>from</font></tt> <i>expr</i> <tt><font size=+1>to</font></tt> <i>expr</i> <tt><font size=+1>by</font></tt> <i>op expr</i>
where <i>op</i> is optionally <tt><font size=+1>+&#8722;*/</font></tt> for additive or multiplicative steps.
<tt><font size=+1>by</font></tt> can be omitted, to give steps of size 1. If no ticks are requested,
they are supplied automatically; suppress this with <tt><font size=+1>ticks off</font></tt>.
Automatic ticks normally leave a margin of 7% on each
side; set this to anything by <tt><font size=+1>margin =</font></tt> <i>expr</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>grid</font></tt> <i>side linedesc</i> <tt><font size=+1>at</font></tt> <i>optname expr, expr, ...</i>: Draw grids perpendicular
to <i>side</i> in style <i>linedesc</i> at <i>expr, ....</i> Iterators and labels work
as with ticks.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>coord</font></tt> <i>optname</i> <tt><font size=+1>x</font></tt> <i>min, max</i> <tt><font size=+1>y</font></tt> <i>min, max</i> <tt><font size=+1>log x &nbsp;&nbsp;&nbsp;log y</font></tt>: Set range of
coords and optional log scaling on either or both. This overrides
computation of data range. Default value of <i>optname</i> is current
coordinate system (each <tt><font size=+1>coord</font></tt> defines a new coordinate system).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>plot </font></tt><i>&quot;str&quot;</i> <tt><font size=+1>at</font></tt> <i>point</i>; <i>&quot;str&quot;</i> <tt><font size=+1>at</font></tt> <i>point</i>: Put <i>str</i> at <i>point</i>. Text position
can be qualified with <tt><font size=+1>rjust</font></tt>, <tt><font size=+1>ljust</font></tt>, <tt><font size=+1>above</font></tt>, <tt><font size=+1>below</font></tt> after &quot;...&quot;.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>line from</font></tt> <i>point</i> <tt><font size=+1>to</font></tt> <i>point linedesc</i>: Draw line from here to there.
<tt><font size=+1>arrow</font></tt> works in place of <tt><font size=+1>line</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>next</font></tt> <i>optname</i> <tt><font size=+1>at</font></tt> <i>point linedesc</i>: Continue plot of data in <i>optname
to point</i>; default is current.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>draw</font></tt> <i>optname linedesc ...</i>: Set mode for <tt><font size=+1>next</font></tt>: use this style from
now on, and plot &quot;...&quot; at each point (if given).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>new</font></tt> <i>optname linedesc ...</i>: Set mode for <tt><font size=+1>next</font></tt>, but disconnect from
previous.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A list of numbers <i>x y1 y2 y3 ...</i> is treated as <tt><font size=+1>plot bullet at</font></tt>
<i>x,y1</i>; <tt><font size=+1>plot bullet at</font></tt> <i>x,y2</i>; etc., or as <tt><font size=+1>next at</font></tt> <i>x,y1</i> etc., if <tt><font size=+1>draw</font></tt>
is specified. Abscissae of 1,2,3,... are provided if there is
only one input number per line.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A point <i>optname expr, expr</i> maps the point to the named coordinate
system. A <i>linedesc</i> is one of <tt><font size=+1>dot dash invis solid</font></tt> optionally followed
by an expression.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>define</font></tt> <i>name</i> <tt><font size=+1>{</font></tt><i>whatever</i><tt><font size=+1>}</font></tt>: Define a macro. There are macros already
defined for standard plotting symbols like <tt><font size=+1>bullet</font></tt>, <tt><font size=+1>circle</font></tt>, <tt><font size=+1>star</font></tt>,
<tt><font size=+1>plus</font></tt>, etc., in <tt><font size=+1>/usr/local/plan9/lib/grap.defines</font></tt>, which is included
if it exists.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>var</i> <tt><font size=+1>=</font></tt> <i>expr</i>: Evaluate an expression. Operators are <tt><font size=+1>+ &#8722; *</font></tt> and <tt><font size=+1>/</font></tt>.
Functions are <tt><font size=+1>log</font></tt> and <tt><font size=+1>exp</font></tt> (both base 10), <tt><font size=+1>sin</font></tt>, <tt><font size=+1>cos</font></tt>, <tt><font size=+1>sqrt</font></tt>; <tt><font size=+1>rand</font></tt>
returns random number on [0,1); <tt><font size=+1>max(</font></tt><i>e</i><tt><font size=+1>,</font></tt><i>e</i><tt><font size=+1>)</font></tt>, <tt><font size=+1>min(</font></tt><i>e</i><tt><font size=+1>,</font></tt><i>e</i><tt><font size=+1>)</font></tt>, <tt><font size=+1>int(</font></tt><i>e</i><tt><font size=+1>)</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>print</font></tt> <i>expr</i>; <tt><font size=+1>print &quot;</font></tt><i>...</i><tt><font size=+1>&quot;</font></tt>: As a debugging aid, print <i>expr</i> or <i>string</i>
on the standard error.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>copy &quot;</font></tt><i>file name</i><tt><font size=+1>&quot;</font></tt>: Include this file right here.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>copy thru</font></tt> <i>macro</i>: Pass rest of input (until <tt><font size=+1>.G2</font></tt>) through <i>macro</i>,
treating each field (non-blank, or &quot;...&quot;) as an argument. <i>macro</i>
can be the name of a macro previously defined, or the body of
one in place, like <tt><font size=+1>/plot $1 at $2,$3/</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>copy thru</font></tt> <i>macro</i> <tt><font size=+1>until &quot;</font></tt><i>string</i><tt><font size=+1>&quot;</font></tt>: Stop copy when input is <i>string</i> (left-justified).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>pic</font></tt> <i>remainder of line</i>: Copy to output with leading blanks removed.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>graph</font></tt> <i>Name pic-position</i>: Start a new frame, place it at specified
position, e.g., <tt><font size=+1>graph Thing2 with .sw at Thing1.se + (0.1,0)</font></tt>.
<i>Name</i> must be capitalized to keep <i>pic</i> happy.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>.</font></tt><i>anything at beginning of line</i>: Copied verbatim.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>sh %</font></tt><i>anything</i> <tt><font size=+1>%</font></tt>: Pass everything between the <tt><font size=+1>%</font></tt>&#8217;s to the shell;
as with macros, <tt><font size=+1>%</font></tt> may be any character and <i>anything</i> may include
newlines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>#</font></tt> <i>anything</i>: A comment, which is discarded.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Order is mostly irrelevant; no category is mandatory. Any arguments
on the <tt><font size=+1>.G1</font></tt> line are placed on the generated <tt><font size=+1>.PS</font></tt> line for <i>pic</i>.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>.G1<br>
frame ht 1 top invis right invis<br>
coord x 0, 10 y 1, 3 log y<br>
ticks left in at 1 &quot;bottommost tick&quot;, 2,3 &quot;top tick&quot;<br>
ticks bot in from 0 to 10 by 2<br>
label bot &quot;silly graph&quot;<br>
label left &quot;left side label&quot; &quot;here&quot;<br>
grid left dashed at 2.5<br>
copy thru / circle at $1,$2 /<br>
1 1<br>
2 1.5<br>
3 2<br>
4 1.5<br>
10 3<br>
.G2<br>
frame ht 1 top invis right invis<br>
coord x 0, 10 y 1, 3 log y<br>
ticks left in at 1 &quot;bottommost tick&quot;, 2,3 &quot;top tick&quot;<br>
ticks bot in from 0 to 10 by 2<br>
label bot &quot;silly graph&quot;<br>
label left &quot;left side label&quot; &quot;here&quot;<br>
grid left dashed at 2.5<br>
copy thru / circle at $1,$2 /<br>
1 1<br>
2 1.5<br>
3 2<br>
4 1.5<br>
10 3<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>/usr/local/plan9/lib/grap.defines</font></tt>&nbsp;&nbsp;&nbsp;definitions of standard plotting
characters, e.g., bullet<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/grap<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/pic.html"><i>pic</i>(1)</a>, <a href="../man1/troff.html"><i>troff</i>(1)</a><br>
J. L. Bentley and B. W. Kernighan, &#8220;GRAP--A Language for Typesetting
Graphs&#8221;, <i>Unix Research System Programmer&#8217;s Manual,</i> Tenth Edition,
Volume 2.<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>

117
man/man1/graph.html Normal file
View File

@ -0,0 +1,117 @@
<head>
<title>graph(1) - 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>GRAPH(1)</b><td align=right><b>GRAPH(1)</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>
graph &ndash; draw a graph<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>graph</font></tt> [ <i>option ...</i> ]<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>
<i>Graph</i> with no options takes pairs of numbers from the standard
input as abscissas (<i>x</i>-values) and ordinates (<i>y</i>-values) of a graph.
Successive points are connected by straight lines. The graph is
encoded on the standard output for display by <a href="../man1/plot.html"><i>plot</i>(1)</a> filters.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If an ordinate is followed by a nonnumeric string, that string
is printed as a label beginning on the point. Labels may be surrounded
with quotes <tt><font size=+1>&quot; &quot;</font></tt> in which case they may be empty or contain blanks
and numbers; labels never contain newlines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The following options are recognized, each as a separate argument.<br>
<tt><font size=+1>&#8722;a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Supply abscissas automatically; no <i>x</i>-values appear in the input.
Spacing is given by the next argument (default 1). A second optional
argument is the starting point for automatic abscissas (default
0, or 1 with a log scale in <i>x</i>, or the lower limit given by <tt><font size=+1>&#8722;x</font></tt>).<br>
<tt><font size=+1>&#8722;b</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Break (disconnect) the graph after each label in the input.<br>
<tt><font size=+1>&#8722;c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Character string given by next argument is default label for
each point.<br>
<tt><font size=+1>&#8722;g</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Next argument is grid style, 0 no grid, 1 frame with ticks,
2 full grid (default).<br>
<tt><font size=+1>&#8722;l</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Next argument is a legend to title the graph. Grid ranges are
automatically printed as part of the title unless a <tt><font size=+1>&#8722;s</font></tt> option
is present.<br>
<tt><font size=+1>&#8722;m</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Next argument is mode (style) of connecting lines: 0 disconnected,
1 connected. Some devices give distinguishable line styles for
other small integers. Mode &ndash;1 (default) begins with style 1 and
rotates styles for successive curves under option <tt><font size=+1>&#8722;o</font></tt>.<br>
<tt><font size=+1>&#8722;o</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;(Overlay.) The ordinates for <i>n</i> superposed curves appear in the
input with each abscissa value. The next argument is <i>n</i>.<br>
<tt><font size=+1>&#8722;s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Save screen; no new page for this graph.<br>
<tt><font size=+1>&#8722;x l</font></tt>If <tt><font size=+1>l</font></tt> is present, <i>x</i>-axis is logarithmic. Next 1 (or 2) arguments
are lower (and upper) <i>x</i> limits. Third argument, if present, is
grid spacing on <i>x</i> axis. Normally these quantities are determined
automatically.<br>
<tt><font size=+1>&#8722;y l</font></tt>Similarly for <i>y</i>.<br>
<tt><font size=+1>&#8722;e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Make automatically determined <i>x</i> and <i>y</i> scales equal.<br>
<tt><font size=+1>&#8722;h</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Next argument is fraction of space for height.<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Similarly for width.<br>
<tt><font size=+1>&#8722;r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Next argument is fraction of space to move right before plotting.<br>
<tt><font size=+1>&#8722;u</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Similarly to move up before plotting.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Transpose horizontal and vertical axes. (Option <tt><font size=+1>&#8722;a</font></tt> now applies
to the vertical axis.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If a specified lower limit exceeds the upper limit, the axis is
reversed.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/graph<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/plot.html"><i>plot</i>(1)</a>, <a href="../man1/grap.html"><i>grap</i>(1)</a><br>
</table>
<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>
Segments that run out of bounds are dropped, not windowed. Logarithmic
axes may not be reversed. Option <tt><font size=+1>&#8722;e</font></tt> actually makes automatic limits,
rather than automatic scaling, equal.<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>

117
man/man1/grep.html Normal file
View File

@ -0,0 +1,117 @@
<head>
<title>grep(1) - 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>GREP(1)</b><td align=right><b>GREP(1)</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>
grep, g &ndash; search a file for a pattern<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>grep</font></tt> [ <i>option ...</i> ] <i>pattern</i> [ <i>file ...</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>g</font></tt> [ <i>option ...</i> ] <i>pattern</i> [ <i>file ...</i> ]<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>
<i>Grep</i> searches the input <i>files</i> (standard input default) for lines
that match the <i>pattern</i>, a regular expression as defined in <a href="../man7/regexp.html"><i>regexp</i>(7)</a>
with the addition of a newline character as an alternative (substitute
for <tt><font size=+1>|</font></tt>) with lowest precedence. Normally, each line matching the
pattern is &#8216;selected&#8217;, and each selected line is copied to
the standard output. The options are<br>
<tt><font size=+1>&#8722;c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print only a count of matching lines.<br>
<tt><font size=+1>&#8722;h</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Do not print file name tags (headers) with output lines.<br>
<tt><font size=+1>&#8722;e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;The following argument is taken as a <i>pattern</i>. This option makes
it easy to specify patterns that might confuse argument parsing,
such as <tt><font size=+1>&#8722;n</font></tt>.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Ignore alphabetic case distinctions. The implementation folds
into lower case all letters in the pattern and input before interpretation.
Matched lines are printed in their original form.<br>
<tt><font size=+1>&#8722;l</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;(ell) Print the names of files with selected lines; don&#8217;t print
the lines.<br>
<tt><font size=+1>&#8722;L</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print the names of files with no selected lines; the converse
of <tt><font size=+1>&#8722;l</font></tt>.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Mark each printed line with its line number counted in its file.<br>
<tt><font size=+1>&#8722;s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Produce no output, but return status.<br>
<tt><font size=+1>&#8722;v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Reverse: print lines that do not match the pattern.<br>
<tt><font size=+1>&#8722;f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;The pattern argument is the name of a file containing regular
expressions one per line.<br>
<tt><font size=+1>&#8722;b</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Don&#8217;t buffer the output: write each output line as soon as it
is discovered.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Output lines are tagged by file name when there is more than one
input file. (To force this tagging, include <tt><font size=+1>/dev/null</font></tt> as a file
name argument.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Care should be taken when using the shell metacharacters <tt><font size=+1>$*[^|()=\</font></tt>
and newline in <i>pattern</i>; it is safest to enclose the entire expression
in single quotes <tt><font size=+1>'</font></tt>...<tt><font size=+1>'</font></tt>. An expression starting with &#8217;*&#8217; will treat
the rest of the expression as literal characters.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>G</i> invokes grep with <tt><font size=+1>&#8722;n</font></tt> and forces tagging of output lines by file
name. If no files are listed, it searches all files matching<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>*.C *.b *.c *.h *.m *.cc *.java *.py *.tex *.ms<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/grep<br>
/usr/local/plan9/bin/g<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/ed.html"><i>ed</i>(1)</a>, <a href="../man1/awk.html"><i>awk</i>(1)</a>, <a href="../man1/sed.html"><i>sed</i>(1)</a>, <a href="../man1/sam.html"><i>sam</i>(1)</a>, <a href="../man7/regexp.html"><i>regexp</i>(7)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Exit status is null if any lines are selected, or non-null when
no lines are selected or an error occurs.<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>

155
man/man1/gview.html Normal file
View File

@ -0,0 +1,155 @@
<head>
<title>gview(1) - 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>GVIEW(1)</b><td align=right><b>GVIEW(1)</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>
gview &ndash; interactive graph viewer<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>gview</font></tt> [ <tt><font size=+1>&#8722;l</font></tt> <i>logfile</i> ] [ <tt><font size=+1>&#8722;m</font></tt> ] [ <i>file</i> ]<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>
<i>Gview</i> reads polygonal lines or a polygonal line drawing from an
<tt><font size=+1>ASCII</font></tt> input file (which defaults to standard input), and views
it interactively, with commands to zoom in and out, perform simple
editing operations, and display information about points and polylines.
The editing commands can change the color and
thickness of the polylines, delete (or undelete) some of them,
and optionally rotate and move them. It is also possible to generate
an output file that reflects these changes and is in the same
format as the input.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Since the <tt><font size=+1>move</font></tt> and <tt><font size=+1>rotate</font></tt> commands are undesirable when just viewing
a graph, they are only enabled if <i>gview</i> is invoked with the <tt><font size=+1>&#8722;m</font></tt>
option.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Clicking on a polyline with button 1 displays the coordinates
and a <i>t</i> value that tells how far along the polyline. <i>(t</i>=0 at the
first vertex, <i>t</i>=1 at the first vertex, <i>t</i>=1.5 halfway between the
second and third vertices, etc.) The <tt><font size=+1>&#8722;l</font></tt> option generates a log
file that lists all points selected in this manner.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The most important interactive operations are to <i>zoom in</i> by sweeping
out a rectangle, or to <i>zoom out</i> so that everything currently being
displayed shrinks to fit in the swept-out rectangle. Other options
on the button 3 menu are <i>unzoom</i> which restores the coordinate
system to the default state where everything fits on
the screen, <i>recenter</i> which takes a point and makes it the center
of the window, and <i>square up</i> which makes the horizontal and vertical
scale factors equal.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
To take a graph of a function where some part is almost linear
and see how it deviates from a straight line, select two points
on this part of the graph (i.e., select one with button 1 and
then select the other) and then use the <i>slant</i> command on the button
3 menu. This slants the coordinate system so that the line
between the two selected points appears horizontal (but vertical
still means positive <i>y</i>). Then the <i>zoom in</i> command can be used
to accentuate deviations from horizontal. There is also an <i>unslant</i>
command that undoes all of this and goes back to an unslanted
coordinate system.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There is a <i>recolor</i> command on button 3 that lets you select a
color and change everything to have that color, and a similar
command on button 2 that only affects the selected polyline. The
<i>thick</i> or <i>thin</i> command on button 2 changes the thickness of the
selected polyline and there is also an undo command for such
edits.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Finally, button 3 had commands to <i>read</i> a new input file and display
it on top of everything else, <i>restack</i> the drawing order (in case
lines of different color are drawn on top of each other), <i>write</i>
everything into an output file, or <i>exit</i> the program.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Each polyline in an input or output file is a space-delimited
<i>x y</i> coordinate pair on a line by itself, and the polyline is a
sequence of such vertices followed by a label. The label could
be just a blank line or it could be a string in double quotes,
or virtually any text that does not contain spaces and is on a
line by itself. The
label at the end of the last polyline is optional. It is not legal
to have two consecutive labels, since that would denote a zero-vertex
polyline and each polyline must have at least one vertex. (One-vertex
polylines are useful for scatter plots.)<br>
If the label after a polyline can contains the word <tt><font size=+1>Thick</font></tt> or a
color name <tt><font size=+1>(Red</font></tt>, <tt><font size=+1>Pink</font></tt>, <tt><font size=+1>Dkred</font></tt>, <tt><font size=+1>Orange</font></tt>, <tt><font size=+1>Yellow</font></tt>, <tt><font size=+1>Dkyellow</font></tt>, <tt><font size=+1>Green</font></tt>,
<tt><font size=+1>Dkgreen</font></tt>, <tt><font size=+1>Cyan</font></tt>, <tt><font size=+1>Blue</font></tt>, <tt><font size=+1>Ltblue</font></tt>, <tt><font size=+1>Magenta</font></tt>, <tt><font size=+1>Violet</font></tt>, <tt><font size=+1>Gray</font></tt>, <tt><font size=+1>Black</font></tt>, <tt><font size=+1>White</font></tt>),
whichever color name comes first will be used to color the polyline.
</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>
To see a graph of the function <i>y</i>=<i>sin(</i>x<i>)/</i>x generate input with
an awk script and pipe it into <i>gview</i>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>awk 'BEGIN{for(x=.1;x&lt;500;x+=.1)print x,sin(x)/x}' | gview<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/draw/gview.c<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/awk.html"><i>awk</i>(1)</a><br>
</table>
<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>
The user interface for the <i>slant</i> command is counter-intuitive.
Perhaps it would be better to have a scheme for sweeping out a
parallelogram.<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>

135
man/man1/gzip.html Normal file
View File

@ -0,0 +1,135 @@
<head>
<title>gzip(1) - 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>GZIP(1)</b><td align=right><b>GZIP(1)</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>
gzip, gunzip, bzip2, bunzip2, zip, unzip, &ndash; compress and expand
data<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>gzip</font></tt> [<tt><font size=+1>&#8722;cvD</font></tt>[<tt><font size=+1>1&#8722;9</font></tt>]] [<i>file</i> <tt><font size=+1>...</font></tt>]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>gunzip</font></tt> [<tt><font size=+1>&#8722;ctTvD</font></tt>] [<i>file</i> <tt><font size=+1>...</font></tt>]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>bzip2</font></tt> [<tt><font size=+1>&#8722;cvD</font></tt>[<tt><font size=+1>1&#8722;9</font></tt>]] [<i>file</i> <tt><font size=+1>...</font></tt>]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>bunzip2</font></tt> [<tt><font size=+1>&#8722;cvD</font></tt>] [<i>file</i> <tt><font size=+1>...</font></tt>]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>zip</font></tt> [<tt><font size=+1>&#8722;vD</font></tt>[<tt><font size=+1>1&#8722;9</font></tt>]] [<tt><font size=+1>&#8722;f</font></tt> <i>zipfile</i>] <i>file</i> [<tt><font size=+1>...</font></tt>]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>unzip</font></tt> [<tt><font size=+1>&#8722;cistTvD</font></tt>] [<tt><font size=+1>&#8722;f</font></tt> <i>zipfile</i>] <i>[</i>file <tt><font size=+1>...</font></tt>]<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>
<i>Gzip</i> encodes files with a hybrid Lempel-Ziv 1977 and Huffman compression
algorithm known as <tt><font size=+1>deflate</font></tt>. Most of the time, the resulting file
is smaller, and will never be much bigger. Output files are named
by taking the last path element of each file argument and appending
<tt><font size=+1>.gz</font></tt>; if the resulting name ends with
<tt><font size=+1>.tar.gz</font></tt>, it is converted to <tt><font size=+1>.tgz</font></tt> instead. <i>Gunzip</i> reverses the
process. Its output files are named by taking the last path element
of each file argument, converting <tt><font size=+1>.tgz</font></tt> to <tt><font size=+1>.tar.gz</font></tt>, and stripping
any <tt><font size=+1>.gz</font></tt>; the resulting name must be different from the original
name.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Bzip2</i> and <i>bunzip2</i> are similar in interface to <i>gzip</i> and <i>gunzip</i>,
but use a modified Burrows-Wheeler block sorting compression algorithm.
The default suffix for output files is <tt><font size=+1>.bz2</font></tt>, with <tt><font size=+1>.tar.bz2</font></tt> becoming
<tt><font size=+1>.tbz</font></tt>. <i>Bunzip2</i> recognizes the extension <tt><font size=+1>.tbz2</font></tt> as a synonym for
<tt><font size=+1>.tbz</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Zip</i> encodes the named files and places the results into the archive
<i>zipfile</i>, or the standard output if no file is given. <i>Unzip</i> extracts
files from an archive created by <i>zip</i>. If no files are named as
arguments, all of files in the archive are extracted. A directory&#8217;s
name implies all recursively contained files and subdirectories.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
None of these programs removes the original files. If the process
fails, the faulty output files are removed.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The options are:<br>
<tt><font size=+1>&#8722;c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write to standard output rather than creating an output file.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert all archive file names to lower case.<br>
<tt><font size=+1>&#8722;s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Streaming mode. Looks at the file data adjacent to each compressed
file rather than seeking in the central file directory. This is
the mode used by <i>unzip</i> if no <i>zipfile</i> is specified. If <tt><font size=+1>&#8722;s</font></tt> is given,
<tt><font size=+1>&#8722;T</font></tt> is ignored.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List matching files in the archive rather than extracting them.<br>
<tt><font size=+1>&#8722;T</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the output time to that specified in the archive.<br>
<tt><font size=+1>&#8722;1</font></tt> .. <tt><font size=+1>&#8722;9</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the compression level. <tt><font size=+1>&#8722;1</font></tt> is tuned for speed, <tt><font size=+1>&#8722;9</font></tt>
for minimal output size. The best compromise is <tt><font size=+1>&#8722;6</font></tt>, the default.<br>
<tt><font size=+1>&#8722;v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Produce more descriptive output. With <tt><font size=+1>&#8722;t</font></tt>, adds the uncompressed
size in bytes and the modification time to the output. Without
<tt><font size=+1>&#8722;t</font></tt>, prints the names of files on standard error as they are compressed
or decompressed.<br>
<tt><font size=+1>&#8722;D</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Produce debugging output.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/gzip<br>
/usr/local/plan9/src/cmd/bzip2<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/tar.html"><i>tar</i>(1)</a>, <a href="../man1/compress.html"><i>compress</i>(1)</a><br>
</table>
<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>
<i>Unzip</i> can only extract files which are uncompressed or compressed
with the <tt><font size=+1>deflate</font></tt> compression scheme. Recent zip files fall into
this category.<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>

136
man/man1/hoc.html Normal file
View File

@ -0,0 +1,136 @@
<head>
<title>hoc(1) - 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>HOC(1)</b><td align=right><b>HOC(1)</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>
hoc &ndash; interactive floating point language<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>hoc</font></tt> [ <i>file ...</i> ] [ <tt><font size=+1>&#8722;e</font></tt> <i>expression</i> ]<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>
<i>Hoc</i> interprets a simple language for floating point arithmetic,
at about the level of BASIC, with C-like syntax and functions.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The named <i>files</i> are read and interpreted in order. If no <i>file</i>
is given or if <i>file</i> is <tt><font size=+1>&#8722;</font></tt> <i>hoc</i> interprets the standard input. The
<tt><font size=+1>&#8722;e</font></tt> option allows input to <i>hoc</i> to be specified on the command line,
to be treated as if it appeared in a file.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Hoc</i> input consists of <i>expressions</i> and <i>statements</i>. Expressions
are evaluated and their results printed. Statements, typically
assignments and function or procedure definitions, produce no
output unless they explicitly call <i>print</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Variable names have the usual syntax, including <tt><font size=+1>_</font></tt>; the name <tt><font size=+1>_</font></tt>
by itself contains the value of the last expression evaluated.
The variables <tt><font size=+1>E</font></tt>, <tt><font size=+1>PI</font></tt>, <tt><font size=+1>PHI</font></tt>, <tt><font size=+1>GAMMA</font></tt> and <tt><font size=+1>DEG</font></tt> are predefined; the last
is 59.25..., degrees per radian.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Expressions are formed with these C-like operators, listed by
decreasing precedence.<br>
<tt><font size=+1>^</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exponentiation<br>
<tt><font size=+1>! &#8722; ++ &#8722;&#8722;<br>
* / %<br>
+ &#8722;<br>
&gt; &gt;= &lt; &lt;= == !=<br>
&amp;&amp;<br>
||<br>
= += &#8722;= *= /= %=<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
Built in functions are <tt><font size=+1>abs</font></tt>, <tt><font size=+1>acos</font></tt>, <tt><font size=+1>asin</font></tt>, <tt><font size=+1>atan</font></tt> (one argument), <tt><font size=+1>cos</font></tt>,
<tt><font size=+1>cosh</font></tt>, <tt><font size=+1>exp</font></tt>, <tt><font size=+1>int</font></tt>, <tt><font size=+1>log</font></tt>, <tt><font size=+1>log10</font></tt>, <tt><font size=+1>sin</font></tt>, <tt><font size=+1>sinh</font></tt>, <tt><font size=+1>sqrt</font></tt>, <tt><font size=+1>tan</font></tt>, and <tt><font size=+1>tanh</font></tt>. The
function <tt><font size=+1>read(x)</font></tt> reads a value into the variable <tt><font size=+1>x</font></tt> and returns
0 at EOF; the statement <tt><font size=+1>print</font></tt> prints a list of expressions that
may include string constants such as
<tt><font size=+1>&quot;hello\n&quot;</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>
</font></tt>Control flow statements are <tt><font size=+1>if</font></tt>-<tt><font size=+1>else</font></tt>, <tt><font size=+1>while</font></tt>, and <tt><font size=+1>for</font></tt>, with braces
for grouping. Newline ends a statement. Backslash-newline is equivalent
to a space.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Functions and procedures are introduced by the words <tt><font size=+1>func</font></tt> and
<tt><font size=+1>proc</font></tt>; <tt><font size=+1>return</font></tt> is used to return with a value from a function.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>func gcd(a, b) {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
temp = abs(a) % abs(b)<br>
if(temp == 0) return abs(b)<br>
return gcd(b, temp)<br>
</table>
}<br>
for(i=1; i&lt;12; i++) print gcd(i,12)<br>
</font></tt>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/hoc<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/bc.html"><i>bc</i>(1)</a>, <a href="../man1/dc.html"><i>dc</i>(1)</a><br>
B. W. Kernighan and R. Pike, <i>The Unix Programming Environment,</i>
Prentice-Hall, 1984<br>
</table>
<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>
Error recovery is imperfect within function and procedure definitions.<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>

87
man/man1/idiff.html Normal file
View File

@ -0,0 +1,87 @@
<head>
<title>idiff(1) - 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>IDIFF(1)</b><td align=right><b>IDIFF(1)</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>
idiff &ndash; interactive diff<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>idiff</font></tt> [ <tt><font size=+1>&#8722;bw</font></tt> ] <i>file1 file2<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>
<i>Idiff</i> interactively merges <i>file1</i> and <i>file2</i> onto standard output.
Wherever <i>file1</i> and <i>file2</i> differ, <i>idiff</i> displays the differences
in the style of &#8220;<tt><font size=+1>diff &#8722;n</font></tt>&#8221; on standard error and prompts the user
to select a chunk. Valid responses are:<br>
<tt><font size=+1>&lt;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use the chunk from <i>file1</i>.<br>
<tt><font size=+1>&gt;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use the chunk from <i>file2</i>.<br>
<tt><font size=+1>=</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use the diff output itself.<br>
<tt><font size=+1>q&lt;</font></tt>, <tt><font size=+1>q&gt;</font></tt>, <tt><font size=+1>q=<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Use the given response for all future questions.<br>
</table>
<tt><font size=+1>!</font></tt><i>cmd</i>Execute <i>cmd</i> and prompt again.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Idiff</i> invokes <a href="../man1/diff.html"><i>diff</i>(1)</a> to compare the files. The <tt><font size=+1>&#8722;b</font></tt> and <tt><font size=+1>&#8722;w</font></tt> flags,
if passed, are passed to <i>diff</i>.<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>/tmp/idiff.*<br>
</font></tt>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/idiff.c<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/diff.html"><i>diff</i>(1)</a><br>
Kernighan and Pike, <i>The Unix Programming Environment</i>, Prentice-Hall,
1984.<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>

449
man/man1/index.html Normal file
View File

@ -0,0 +1,449 @@
<html>
<head>
<title>Manual Section 1 - 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 1 - Plan 9 from User Space</b>
</center>
<tr height=10><td>
<tr><td valign=top><a href="intro.html">intro(1)</a><td>intro &ndash; introduction to Plan 9 from User Space
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="9.html">9(1)</a><td>9 &ndash; run Plan 9 commands
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="9c.html">9c(1)</a><td>9c, 9a, 9l, 9ar &ndash; C compiler, assembler, linker, archiver
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="9p.html">9p(1)</a><td>9p &ndash; read and write files on a 9P server
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="9term.html">9term(1)</a><td>9term &ndash; terminal windows
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="acid.html">acid(1)</a><td>acid, acidtypes &ndash; debugger
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="acme.html">acme(1)</a><td>acme, win, awd &ndash; interactive text windows
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="acmeevent.html">acmeevent(1)</a><td>acmeevent, acme.rc &ndash; shell script support for acme clients
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="ascii.html">ascii(1)</a><td>ascii, unicode &ndash; interpret ASCII, Unicode characters
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="astro.html">astro(1)</a><td>astro &ndash; print astronomical information
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="basename.html">basename(1)</a><td>basename &ndash; strip file name affixes
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="bc.html">bc(1)</a><td>bc &ndash; arbitrary-precision arithmetic language
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="bundle.html">bundle(1)</a><td>bundle &ndash; collect files for distribution
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="cal.html">cal(1)</a><td>cal &ndash; print calendar
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="calendar.html">calendar(1)</a><td>calendar &ndash; print upcoming events
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="cat.html">cat(1)</a><td>cat, read, nobs &ndash; catenate files
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="cleanname.html">cleanname(1)</a><td>cleanname &ndash; clean a path name
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="clog.html">clog(1)</a><td>auxclog &ndash; create date-stamped console log
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="cmp.html">cmp(1)</a><td>cmp &ndash; compare two files
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="colors.html">colors(1)</a><td>colors, cmapcube &ndash; display color map
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="comm.html">comm(1)</a><td>comm &ndash; select or reject lines common to two sorted files
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="core.html">core(1)</a><td>core &ndash; print information about dead processes
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="crop.html">crop(1)</a><td>crop, iconv &ndash; frame, crop, and convert image
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="date.html">date(1)</a><td>date &ndash; date and time
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="db.html">db(1)</a><td>db &ndash; debugger
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="dc.html">dc(1)</a><td>dc &ndash; desk calculator
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="deroff.html">deroff(1)</a><td>deroff, delatex &ndash; remove formatting requests
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="dial.html">dial(1)</a><td>dial &ndash; connect to a remote service
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="dict.html">dict(1)</a><td>dict, adict &ndash; dictionary browser
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="diff.html">diff(1)</a><td>diff &ndash; differential file comparator
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="doctype.html">doctype(1)</a><td>doctype &ndash; intuit command line for formatting a document
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="echo.html">echo(1)</a><td>echo &ndash; print arguments
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="ed.html">ed(1)</a><td>ed &ndash; text editor
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="eqn.html">eqn(1)</a><td>eqn &ndash; typeset mathematics
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="factor.html">factor(1)</a><td>factor, primes &ndash; factor a number, generate large primes
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="fmt.html">fmt(1)</a><td>fmt, htmlfmt &ndash; simple text formatters
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="fortune.html">fortune(1)</a><td>fortune &ndash; sample lines from a file
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="freq.html">freq(1)</a><td>freq &ndash; print histogram of character frequencies
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="fsize.html">fsize(1)</a><td>fsize, mtime &ndash; print file information
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="grap.html">grap(1)</a><td>grap &ndash; pic preprocessor for drawing graphs
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="graph.html">graph(1)</a><td>graph &ndash; draw a graph
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="grep.html">grep(1)</a><td>grep, g &ndash; search a file for a pattern
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="gview.html">gview(1)</a><td>gview &ndash; interactive graph viewer
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="gzip.html">gzip(1)</a><td>gzip, gunzip, bzip2, bunzip2, zip, unzip, &ndash; compress and expand data
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="hoc.html">hoc(1)</a><td>hoc &ndash; interactive floating point language
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="idiff.html">idiff(1)</a><td>idiff &ndash; interactive diff
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="join.html">join(1)</a><td>join &ndash; relational database operator
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="jpg.html">jpg(1)</a><td>jpg, gif, png, ppm, bmp, yuv, ico, togif, toppm, topng, toico &ndash; view and convert pictures
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="kill.html">kill(1)</a><td>kill, slay, start, stop &ndash; print commands to manipulate processes
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="label.html">label(1)</a><td>label, awd &ndash; set window label
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="lex.html">lex(1)</a><td>lex &ndash; generator of lexical analysis programs
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="look.html">look(1)</a><td>look &ndash; find lines in a sorted list
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="ls.html">ls(1)</a><td>ls, lc &ndash; list contents of directory
<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(1)</a><td>man, lookman, sig &ndash; print or find pages of this 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(1)</a><td>map, mapdemo, mapd &ndash; draw maps on various projections
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="mc.html">mc(1)</a><td>mc &ndash; multicolumn print
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="mk.html">mk(1)</a><td>mk &ndash; maintain (make) related files
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="mkdir.html">mkdir(1)</a><td>mkdir &ndash; make a directory
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="namespace.html">namespace(1)</a><td>namespace &ndash; print name space directory
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="news.html">news(1)</a><td>news &ndash; print news items
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="p.html">p(1)</a><td>p &ndash; paginate
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="page.html">page(1)</a><td>img, psv &ndash; view
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="pic.html">pic(1)</a><td>pic, tpic &ndash; troff and tex preprocessors for drawing pictures
<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(1)</a><td>plot &ndash; graphics filter
<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(1)</a><td>plumb &ndash; send message to plumber
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="pr.html">pr(1)</a><td>pr &ndash; print file
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="proof.html">proof(1)</a><td>proof &ndash; troff output interpreter
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="ps.html">ps(1)</a><td>ps, psu &ndash; process status
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="psfonts.html">psfonts(1)</a><td>psfonts, psdownload &ndash; add necessary fonts to PostScript document for printing
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="pwd.html">pwd(1)</a><td>pwd, pbd &ndash; working directory
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="rc.html">rc(1)</a><td>rc, cd, eval, exec, exit, flag, rfork, shift, wait, whatis, ., ~ &ndash; command language
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="rio.html">rio(1)</a><td>rio &ndash; rio-like Window Manager for X
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="rm.html">rm(1)</a><td>rm &ndash; remove files
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="sam.html">sam(1)</a><td>sam, B, E, sam.save, samterm, samsave &ndash; screen editor with structural regular expressions
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="scat.html">scat(1)</a><td>scat &ndash; sky catalogue and Digitized Sky Survey
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="secstore.html">secstore(1)</a><td>aescbc, secstore, ipso &ndash; secstore commands
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="sed.html">sed(1)</a><td>sed &ndash; stream editor
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="seq.html">seq(1)</a><td>seq &ndash; print sequences of numbers
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="sleep.html">sleep(1)</a><td>sleep &ndash; suspend execution for an interval
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="sort.html">sort(1)</a><td>sort &ndash; sort and/or merge files
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="spell.html">spell(1)</a><td>spell, sprog &ndash; find spelling errors
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="split.html">split(1)</a><td>split &ndash; split a file into pieces
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="src.html">src(1)</a><td>src &ndash; find source code for executable
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="stats.html">stats(1)</a><td>stats, auxstats &ndash; display graphs of system activity
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="strings.html">strings(1)</a><td>strings &ndash; extract printable strings
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="sum.html">sum(1)</a><td>sum, md5sum, sha1sum &ndash; sum and count blocks in a file
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="tail.html">tail(1)</a><td>tail &ndash; deliver the last part of a file
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="tbl.html">tbl(1)</a><td>tbl &ndash; format tables for nroff or troff
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="tcs.html">tcs(1)</a><td>tcs &ndash; translate character sets
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="tee.html">tee(1)</a><td>tee &ndash; pipe fitting
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="test.html">test(1)</a><td>test &ndash; set status according to condition
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="time.html">time(1)</a><td>time &ndash; time a command
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="touch.html">touch(1)</a><td>touch &ndash; set modification date of a file
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="tr.html">tr(1)</a><td>tr &ndash; translate characters
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="tr2post.html">tr2post(1)</a><td>tr2post &ndash; convert troff intermediate to PostScript
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="troff.html">troff(1)</a><td>troff, nroff &ndash; text formatting and typesetting
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="troff2html.html">troff2html(1)</a><td>troff2html &ndash; convert troff output into HTML
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="tweak.html">tweak(1)</a><td>tweak &ndash; edit image files, subfont files, face files, etc.
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="uniq.html">uniq(1)</a><td>uniq &ndash; report repeated lines in a file
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="units.html">units(1)</a><td>units &ndash; conversion program
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="vac.html">vac(1)</a><td>vac &ndash; create a vac archive on Venti
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="wc.html">wc(1)</a><td>wc &ndash; word count
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="web.html">web(1)</a><td>web, wmail &ndash; handle web page, mail message for plumber
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="wintext.html">wintext(1)</a><td>wintext, ", "" &ndash; access text in current window
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="xd.html">xd(1)</a><td>xd &ndash; hex, octal, decimal, or ASCII dump
<tr height=1><td>
<tr height=1><td colspan=2 bgcolor=#cccccc>
<tr height=1><td>
<tr><td valign=top><a href="yacc.html">yacc(1)</a><td>yacc &ndash; yet another compiler-compiler
</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>

221
man/man1/intro.html Normal file
View File

@ -0,0 +1,221 @@
<head>
<title>intro(1) - 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>INTRO(1)</b><td align=right><b>INTRO(1)</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>
intro &ndash; introduction to Plan 9 from User Space<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>
Plan 9 is a distributed computing environment built at Bell Labs
starting in the late 1980s. The system can be obtained from Bell
Labs at <tt><font size=+1>http://plan9.bell&#8722;labs.com/plan9</font></tt> and runs on PCs and a
variety of other platforms. Plan 9 became a convenient platform
for experimenting with new ideas,
applications, and services.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Plan 9 from User Space provides many of the ideas, applications,
and services from Plan 9 on Unix-like systems. It runs on FreeBSD
(x86), Linux (x86 and PowerPC), Mac OS X (PowerPC), OpenBSD (x86),
and SunOS (Sparc).<br>
<p><font size=+1><b>Commands </b></font><br>
Plan 9 from User Space expects its own directory tree, conventionally
<tt><font size=+1>/usr/local/plan9</font></tt>. When programs need to access files in the tree,
they expect the <tt><font size=+1>$PLAN9</font></tt> environment variable to contain the name
of the root of the tree. See <a href="../man1/install.html"><i>install</i>(1)</a> for details about installation.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Many of the familiar Unix commands, for example <a href="../man1/cat.html"><i>cat</i>(1)</a>, <a href="../man1/ls.html"><i>ls</i>(1)</a>,
and <a href="../man1/wc.html"><i>wc</i>(1)</a>, are present, but in their Plan 9 forms: <i>cat</i> takes no
arguments, <i>ls</i> does not columnate its output when printing to a
terminal, and <i>wc</i> counts UTF characters. In some cases, the differences
are quite noticeable: <a href="../man1/grep.html"><i>grep</i>(1)</a> and <a href="../man1/sed.html"><i>sed</i>(1)</a> expect Plan 9
regular expressions (see <a href="../man7/regexp.html"><i>regexp</i>(7)</a>), which are closest to what
Unix calls extended regular expressions. Because of these differences,
it is not recommended to put <tt><font size=+1>$PLAN9/bin</font></tt> before the usual system
<tt><font size=+1>bin</font></tt> directories in your search path. Instead, put it at the end
of your path and use the <a href="../man1/9.html"><i>9</i>(1)</a> script when you want to
invoke the Plan 9 version of a traditional Unix command.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Occasionally the Plan 9 programs have been changed to adapt to
Unix. <a href="../man1/Mk.html"><i>Mk</i>(1)</a> now allows mkfiles to choose their own shell, and
<a href="../man1/rc.html"><i>rc</i>(1)</a> has a <i>ulimit</i> builtin and manages <tt><font size=+1>$PATH</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Many of the graphical programs from Plan 9 are present, including
<a href="../man1/sam.html"><i>sam</i>(1)</a> and <a href="../man1/acme.html"><i>acme</i>(1)</a>. An X11 window manager <a href="../man1/rio.html"><i>rio</i>(1)</a> mimics Plan 9&#8217;s
window system, with command windows implemented by the external
program <a href="../man1/9term.html"><i>9term</i>(1)</a>. Following the style of X Windows, these programs
run in new windows rather than the one in
which they are invoked. They all take a <tt><font size=+1>&#8722;W</font></tt> option to specify the
size and placement of the new window. The argument is one of <i>width</i><tt><font size=+1>x</font></tt><i>height</i>,
<i>width</i><tt><font size=+1>x</font></tt><i>height</i><tt><font size=+1>@</font></tt><i>xmin</i><tt><font size=+1>,</font></tt><i>xmax</i>, or <i>xmin</i><tt><font size=+1>,</font></tt><i>ymin</i><tt><font size=+1>,</font></tt><i>xmax</i><tt><font size=+1>,</font></tt><i>ymax</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <a href="../man4/plumber.html"><i>plumber</i>(4)</a> helps to connect the various Plan 9 programs together,
and fittings like <a href="../man1/web.html"><i>web</i>(1)</a> connect it to external programs such
as web browsers; one can click on a URL in <i>acme</i> and see the page
load in <i>Firefox</i>.<br>
<p><font size=+1><b>User-level file servers </b></font><br>
In Plan 9, user-level file servers present file trees via the
Plan 9 file protocol, 9P. Processes can mount arbitrary file servers
and customize their own name spaces. These facilities are used
to connect programs. Clients interact with file servers by reading
and writing files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
This cannot be done directly on Unix. Instead the servers listen
for 9P connections on Unix domain sockets; clients connect to
these sockets and speak 9P directly using the <a href="../man3/9pclient.html"><i>9pclient</i>(3)</a> library.
<a href="../man4/Intro.html"><i>Intro</i>(4)</a> tells more of the story. The effect is not as clean as
on Plan 9, but it gets the job done and still provides a uniform
and
easy-to-understand mechanism. The <a href="../man1/9p.html"><i>9p</i>(1)</a> client can be used in
shell scripts or by hand to carry out simple interactions with
servers.<br>
<p><font size=+1><b>External databases </b></font><br>
Some programs rely on large databases that would be cumbersome
to include in every release. Scripts are provided that download
these databases separately. These databases can be downloaded
separately. See <tt><font size=+1>$PLAN9/dict/README</font></tt> and <tt><font size=+1>$PLAN9/sky/README</font></tt>.<br>
<p><font size=+1><b>Programming </b></font><br>
The shell scripts <i>9c</i> and <i>9l</i> (see <a href="../man1/9c.html"><i>9c</i>(1)</a>) provide a simple interface
to the underlying system compiler and linker, similar to the <i>2c</i>
and <i>2l</i> families on Plan 9. <i>9c</i> compiles source files, and <i>9l</i> links
object files into executables. When using Plan 9 libraries, <i>9l</i>
infers the correct set of libraries from the object files, so
that no <tt><font size=+1>&#8722;l
</font></tt>options are needed.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The only way to write multithreaded programs is to use the <a href="../man3/thread.html"><i>thread</i>(3)</a>
library. <a href="../man3/Rfork.html"><i>Rfork</i>(3)</a> exists but is not as capable as on Plan 9. There
are many unfortunate by necessary preprocessor diversions to make
Plan 9 and Unix libraries coexist. See <a href="../man3/intro.html"><i>intro</i>(3)</a> for details.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The debuggers <a href="../man1/acid.html"><i>acid</i>(1)</a> and <a href="../man1/db.html"><i>db</i>(1)</a> and the debugging library <a href="../man3/mach.html"><i>mach</i>(3)</a>
are works in progress. They are platform-independent, so that
x86 Linux core dumps can be inspected on PowerPC Mac OS X machines,
but they are also fairly incomplete. The x86 target is the most
mature; initial PowerPC support exists; and other
targets are unimplemented. The debuggers can only inspect, not
manipulate, target processes. Support for operating system threads
and for 64-bit architectures needs to be rethought. On x86 Linux
systems, <i>acid</i> and <i>db</i> can be relied upon to produce reasonable
stack traces (often in cases when GNU <i>gdb</i> cannot) and
dump data structures, but that it is the extent to which they
have been developed and exercised.<br>
<p><font size=+1><b>Porting programs </b></font><br>
The vast majority of the familiar Plan 9 programs have been ported,
including the Unicode-aware <a href="../man1/troff.html"><i>troff</i>(1)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Of the more recent additions to Plan 9, the <a href="../man1/secstore.html"><i>secstore</i>(1)</a> client
has been ported, though <i>secstored</i> has not. <a href="../man1/Vac.html"><i>Vac</i>(1)</a> has been ported,
though <i>vacfs</i> has not. <i>Factotum</i> and <i>venti</i> are in progress.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A backup system providing a dump file system built atop Venti
is also in progress.<br>
<p><font size=+1><b>Porting to new systems </b></font><br>
Porting the tree to new operating systems or architectures should
be straightforward, as system-specific code has been kept to a
minimum. The largest pieces of system-specific code are <tt><font size=+1>&lt;u.h&gt;</font></tt>, which
must include the right system files and set up the right integer
type definitions, and <i>libthread</i>, which must implement
spin locks, operating system thread creation, and context switching
routines. Portable implementations of these using <tt><font size=+1>&lt;pthread.h&gt;</font></tt> and
<tt><font size=+1>&lt;ucontext.h&gt;</font></tt> already exist. If your system supports them, you may
not need to write any system specific code at all.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There are other smaller system dependencies, such as the terminal
handling code in <a href="../man1/9term.html"><i>9term</i>(1)</a> and the implementation of <a href="../man3/getcallerpc.html"><i>getcallerpc</i>(3)</a>,
but these are usually simple and are not on the critical path
for getting the system up and running.<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>
The rest of this manual describes Plan 9 from User Space. Many
of the man pages have been brought from Plan 9, but they have
been updated, and others have been written from scratch.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The manual pages are in a Unix style tree, with names like <tt><font size=+1>$PLAN9/man/man1/cat.1</font></tt>
instead of Plan 9&#8217;s simpler <tt><font size=+1>$PLAN9/man/1/cat</font></tt>, so that the Unix
<a href="../man1/man.html"><i>man</i>(1)</a> utility can handle it. Some systems, for example Debian
Linux, deduce the man page locations from the search path, so
that adding <tt><font size=+1>$PLAN9/bin</font></tt> to
your path is sufficient to cause <tt><font size=+1>$PLAN9/man</font></tt> to be consulted for
manual pages using the system <i>man</i>. On other systems, or to look
at manual pages with the same name as a system page, invoke the
Plan 9 <i>man</i> directly, as in <tt><font size=+1>9 man cat</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The manual sections follow the Unix numbering conventions, not
the Plan 9 ones.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<a href="../man1">Section (1)</a> describes general publicly accessible commands.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<a href="../man3">Section (3)</a> describes C library functions.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<a href="../man4">Section (4)</a> describes user-level file servers.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<a href="../man7">Section (7)</a> describes file formats and protocols. (On Unix, section
(5) is technically for file formats but seems now to be used for
describing specific files.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<a href="../man9">Section (9p)</a> describes the Plan 9 file protocol 9P.<br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
In Plan 9, a program&#8217;s exit status is an arbitrary text string,
while on Unix it is an integer. Section (1) of this manual describes
commands as though they exit with string statuses. In fact, exiting
with an empty status corresponds to exiting with status 0, and
exiting with any non-empty string corresponds to exiting with
status 1. See <a href="../man3/exits.html"><i>exits</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>

144
man/man1/join.html Normal file
View File

@ -0,0 +1,144 @@
<head>
<title>join(1) - 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>JOIN(1)</b><td align=right><b>JOIN(1)</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>
join &ndash; relational database operator<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>join</font></tt> [ <i>options</i> ] <i>file1 file2<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>
<i>Join</i> forms, on the standard output, a join of the two relations
specified by the lines of <i>file1</i> and <i>file2</i>. If one of the file
names is <tt><font size=+1>&#8722;</font></tt>, the standard input is used.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>File1</i> and <i>file2</i> must be sorted in increasing ASCII collating sequence
on the fields on which they are to be joined, normally the first
in each line.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There is one line in the output for each pair of lines in <i>file1</i>
and <i>file2</i> that have identical join fields. The output line normally
consists of the common field, then the rest of the line from <i>file1</i>,
then the rest of the line from <i>file2</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Input fields are normally separated spaces or tabs; output fields
by space. In this case, multiple separators count as one, and
leading separators are discarded.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The following options are recognized, with POSIX syntax.<br>
<tt><font size=+1>&#8722;a</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;In addition to the normal output, produce a line for each
unpairable line in file <i>n</i>, where <i>n</i> is 1 or 2.<br>
<tt><font size=+1>&#8722;v</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>&#8722;a</font></tt>, omitting output for paired lines.<br>
<tt><font size=+1>&#8722;e</font></tt> <i>s</i>&nbsp;&nbsp;&nbsp;Replace empty output fields by string <i>s</i>.<br>
<tt><font size=+1>&#8722;1</font></tt> <i>m<br>
</i><tt><font size=+1>&#8722;2</font></tt> <i>m</i>&nbsp;&nbsp;&nbsp;Join on the <i>m</i>th field of <i>file1</i> or <i>file2</i>.<br>
<tt><font size=+1>&#8722;j</font></tt><i>n m<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Archaic equivalent for <tt><font size=+1>&#8722;</font></tt><i>n</i> <tt><font size=+1>m</font></tt>.<br>
</table>
<tt><font size=+1>&#8722;o</font></tt><i>fields<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Each output line comprises the designated fields. The comma-separated
field designators are either <tt><font size=+1>0</font></tt>, meaning the join field, or have
the form <i>n</i>.<i>m</i>, where <i>n</i> is a file number and <i>m</i> is a field number.
Archaic usage allows separate arguments for field designators.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<tt><font size=+1>&#8722;t</font></tt><i>c</i>&nbsp;&nbsp;&nbsp;Use character <i>c</i> as the only separator (tab character) on input
and output. Every appearance of <i>c</i> in a line is significant.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>sort /etc/passwd | join &#8722;t: &#8722;1 1 &#8722;a 1 &#8722;e &quot;&quot; &#8722; bdays<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Add birthdays to the <tt><font size=+1>/etc/passwd</font></tt> file, leaving unknown birthdays
empty. The layout of <tt><font size=+1>/adm/users</font></tt> is given in <a href="../man5/passwd.html"><i>passwd</i>(5)</a>; <tt><font size=+1>bdays</font></tt> contains
sorted lines like <tt><font size=+1>ken:Feb 4, 1953</font></tt>.<br>
</table>
<tt><font size=+1>tr : ' ' &lt;/etc/passwd | sort &#8722;k 3 3 &gt;temp<br>
join &#8722;1 3 &#8722;2 3 &#8722;o 1.1,2.1 temp temp | awk '$1 &lt; $2'<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print all pairs of users with identical userids.<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/join.c<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/sort.html"><i>sort</i>(1)</a>, <a href="../man1/comm.html"><i>comm</i>(1)</a>, <a href="../man1/awk.html"><i>awk</i>(1)</a><br>
</table>
<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>
With default field separation, the collating sequence is that
of <tt><font size=+1>sort &#8722;b &#8722;k</font></tt><i>y</i><tt><font size=+1>,</font></tt><i>y</i>; with <tt><font size=+1>&#8722;t</font></tt>, the sequence is that of <tt><font size=+1>sort &#8722;t</font></tt><i>x</i> <tt><font size=+1>&#8722;k</font></tt><i>y</i><tt><font size=+1>,</font></tt><i>y</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
One of the files must be randomly accessible.<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>

175
man/man1/jpg.html Normal file
View File

@ -0,0 +1,175 @@
<head>
<title>jpg(1) - 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>JPG(1)</b><td align=right><b>JPG(1)</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>
jpg, gif, png, ppm, bmp, yuv, ico, togif, toppm, topng, toico
&ndash; view and convert pictures<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>jpg</font></tt> [ <tt><font size=+1>&#8722;39cdefFkJrtv</font></tt> ] [ <i>file ...</i> ]<br>
<tt><font size=+1>gif</font></tt> [ <tt><font size=+1>&#8722;39cdektv</font></tt> ] [ <i>file ...</i> ]<br>
<tt><font size=+1>png</font></tt> [ <tt><font size=+1>&#8722;39cdektv</font></tt> ] [ <i>file ...</i> ]<br>
<tt><font size=+1>ppm</font></tt> [ <tt><font size=+1>&#8722;39cdektv</font></tt> ] [ <i>file ...</i> ]<br>
<tt><font size=+1>bmp</font></tt> [ <i>file</i> ]<br>
<tt><font size=+1>yuv</font></tt> [ <i>file</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>togif</font></tt> [ <tt><font size=+1>&#8722;c</font></tt> <i>comment</i> ] [ <tt><font size=+1>&#8722;l</font></tt> <i>loopcount</i> ] [ <tt><font size=+1>&#8722;d</font></tt> <i>msec</i> ] [ <tt><font size=+1>&#8722;t</font></tt> <i>transindex</i>
] [ <i>file ...</i> [ <tt><font size=+1>&#8722;d</font></tt> <i>msec</i> ] <i>file ...</i> ]<br>
<tt><font size=+1>toppm</font></tt> [ <tt><font size=+1>&#8722;c</font></tt> <i>comment</i> ] [ <i>file</i> ]<br>
<tt><font size=+1>topng</font></tt> [ <tt><font size=+1>&#8722;c</font></tt> <i>comment</i> ] [ [ <tt><font size=+1>&#8722;g</font></tt> <i>gamma</i> ] [ <i>file</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>ico</font></tt> [ <i>file</i> ]<br>
<tt><font size=+1>toico</font></tt> [ <i>file ...</i> ]<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>
These programs read, display, and write image files in public
formats. <i>Jpg</i>, <i>gif</i>, <i>png</i>, <i>ppm</i>, <i>bmp</i>, and <i>yuv</i>. read files in the corresponding
formats and, by default, display them in the current window; options
cause them instead to convert the images to Plan 9 image format
and write them to standard output. <i>Togif</i>,
<i>Toppm</i>, and <i>topng</i> read Plan 9 images files, convert them to GIF,
PPM, or PNG, and write them to standard output.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The default behavior of <i>jpg</i>, <i>gif</i>, and <i>ppm</i> is to display the <i>file</i>,
or standard input if no file is named. Once a file is displayed,
typing a character causes the program to display the next image.
Typing a <tt><font size=+1>q</font></tt>, DEL, or control-D exits the program. For a more user-friendly
interface, use <a href="../man1/page.html"><i>page</i>(1)</a>, which invokes these
programs to convert the images to standard format, displays them,
and offers scrolling, panning, and menu-driven navigation among
the files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
These programs share many options:<br>
<tt><font size=+1>&#8722;e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Disable Floyd-Steinberg error diffusion, which is used to improve
the appearance of images on color-mapped displays, typically with
8 bits per pixel. Primarily useful for debugging; if the display
has true RGB color, the image will be displayed in full glory.<br>
<tt><font size=+1>&#8722;k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Convert and display the image as a black and white (really grey-scale)
image.<br>
<tt><font size=+1>&#8722;v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Convert the image to an RGBV color-mapped image, even if the
display has true RGB color.<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Suppress display of the image; this is set automatically by
any of the following options:<br>
<tt><font size=+1>&#8722;c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Convert the image to a Plan 9 representation, as defined by
<a href="../man7/image.html"><i>image</i>(7)</a>, and write it to standard output.<br>
<tt><font size=+1>&#8722;9</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>&#8722;c</font></tt>, but produce an uncompressed image. This saves processing
time, particularly when the output is being piped to another program
such as <a href="../man1/page.html"><i>page</i>(1)</a>, since it avoids compression and decompression.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Convert the image, if it is in color, to a true color RGB image.<br>
<tt><font size=+1>&#8722;3</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>&#8722;t</font></tt>, but force the image to RGB even if it is originally
grey-scale.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Jpg</i> has two extra options used to process the output of the LML
video card:<br>
<tt><font size=+1>&#8722;f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Merge two adjacent images, which represent the two fields of
a video picture, into a single image.<br>
<tt><font size=+1>&#8722;F</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;The input is a motion JPEG file, with multiple images representing
frames of the movie. Sets <tt><font size=+1>&#8722;f</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <i>togif</i> and <i>toppm</i> programs go the other way: they convert from
Plan 9 images to GIF and PPM, and have no display capability.
Both accept an option <tt><font size=+1>&#8722;c</font></tt> to set the comment field of the resulting
file. If there is only one input picture, <i>togif</i> converts the image
to GIF format. If there are many <i>files</i>, though, it will
assemble them into an animated GIF file. The options control this
process:<br>
<tt><font size=+1>&#8722;l</font></tt><i>loopcount<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
By default, the animation will loop forever; <i>loopcount</i> specifies
how many times to loop. A value of zero means loop forever and
a negative value means to stop after playing the sequence once.<br>
</table>
<tt><font size=+1>&#8722;d</font></tt><i>msec<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
By default, the images are displayed as fast as they can be rendered.
This option specifies the time, in milliseconds, to pause while
displaying the next named <i>file</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<i>Gif</i> translates files that contain a &#8216;transparency&#8217; index by attaching
an alpha channel to the converted image.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Ico</i> displays a Windows icon (.ico) file. If no file is specified,
<i>ico</i> reads from standard input. Icon files contain sets of icons
represeted by an image and a mask. Clicking the right button pops
up a menu that lets you write any icon&#8217;s image as a Plan 9 image
(<i>width</i>x<i>height</i>.image), write any icon&#8217;s mask as a Plan 9
image (<i>width</i>x<i>height</i>.mask), or exit. Selecting one of the write
menu items yields a sight cursor. Move the sight over the icon
and right click again to write.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Toico</i> takes a list of Plan 9 image files (or standard input) and
creates a single icon file. The masks in the icon file will be
the white space in the image. The icon file is written to standard
output.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/jpg<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/page.html"><i>page</i>(1)</a>, <a href="../man7/image.html"><i>image</i>(7)</a>.<br>
</table>
<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>
Writing an animated GIF using <i>togif</i> is a clumsy undertaking.<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>

96
man/man1/kill.html Normal file
View File

@ -0,0 +1,96 @@
<head>
<title>kill(1) - 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>KILL(1)</b><td align=right><b>KILL(1)</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>
kill, slay, start, stop &ndash; print commands to manipulate processes<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>kill</font></tt> <i>name ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>slay</font></tt> <i>name ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>start</font></tt> <i>name ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>stop</font></tt> <i>name ...<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>
<i>Kill</i> prints commands that will cause all processes with <i>name</i> and
owned by the current user to be terminated. Each command is commented
with an output line from <a href="../man1/ps.html"><i>ps</i>(1)</a> describing the process that would
be killed. Use the <tt><font size=+1>send</font></tt> command of <a href="../man1/9term.html"><i>9term</i>(1)</a>, or pipe the output
of <i>kill</i> into <a href="../man1/rc.html"><i>rc</i>(1)</a> or <a href="../man1/sh.html"><i>sh</i>(1)</a> to execute the
commands.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Kill</i> suggests sending a Unix <tt><font size=+1>TERM</font></tt> signal to the process; sending
a <tt><font size=+1>KILL</font></tt> signal is a surer, if heavy handed, kill, but is necessary
if the offending process is ignoring signals. The <i>slay</i> command
prints commands to do this.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Stop</i> prints commands to pause execution of processes by sending
them the <tt><font size=+1>STOP</font></tt> signal.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Start</i> prints commands to restart stopped processes by sending
them the <tt><font size=+1>CONT</font></tt> signal.<br>
</table>
<p><font size=+1><b>SOURCE </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/bin<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/ps.html"><i>ps</i>(1)</a>, <a href="../man3/notify.html"><i>notify</i>(3)</a><br>
</table>
<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>
<i>Stop</i> and <i>start</i> should limit themselves to currently running or
stopped processes.<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>

117
man/man1/label.html Normal file
View File

@ -0,0 +1,117 @@
<head>
<title>label(1) - 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>LABEL(1)</b><td align=right><b>LABEL(1)</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>
label, awd &ndash; set window label<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>label</font></tt> <i>string<br>
</i><tt><font size=+1>awd<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>
<i>Label</i> sets the label of the current <i>win</i> (see <a href="../man1/acme.html"><i>acme</i>(1)</a>) or X terminal
window (<i>e.g., <a href="../man1/9term.html">9term</a></i><a href="../man1/9term.html">(1)</a> or <a href="../man1/xterm.html"><i>xterm</i>(1)</a>) by echoing a special control
sequence to standard output.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Acme</i> and <i>9term</i> windows assume the label is a directory name. When
unrooted file names are plumbed in the window, they are evaluated
relative to the directory named in the label.<br>
</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>
One can use the following <a href="../man1/sh.html"><i>sh</i>(1)</a> function to keep the label up-to-date
in response to <i>cd</i> commands:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>_cd () {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
\cd &quot;$@&quot; &amp;&amp;<br>
case $&#8722; in<br>
*i*)<br>
awd<br>
esac<br>
</table>
}<br>
alias cd=_cd<br>
cd .<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
<a href="../man1/Rc.html"><i>Rc</i>(1)</a> installs a similar <tt><font size=+1>fn cd</font></tt> at startup if there is not already
a function named <tt><font size=+1>cd</font></tt>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>fn cd {<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
builtin cd $1 &amp;&amp; flag i &amp;&amp; awd<br>
</table>
}<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/bin/label<br>
/usr/local/plan9/bin/awd<br>
</font></tt>
</table>
<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>
<i>Awd</i> is also documented in <a href="../man1/acme.html"><i>acme</i>(1)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Awd</i> does not append the <tt><font size=+1>&#8722;</font></tt><i>label</i> suffix that it does on Plan 9.<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>

110
man/man1/lex.html Normal file
View File

@ -0,0 +1,110 @@
<head>
<title>lex(1) - 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>LEX(1)</b><td align=right><b>LEX(1)</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>
lex &ndash; generator of lexical analysis programs<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>lex</font></tt> [ <tt><font size=+1>&#8722;tvn9</font></tt> ] [ <i>file ...</i> ]<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>
<i>Lex</i> generates programs to be used in simple lexical analysis of
text. The input <i>files</i> (standard input default) contain regular
expressions to be searched for and actions written in C to be
executed when expressions are found.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A C source program, <tt><font size=+1>lex.yy.c</font></tt> is generated. This program, when
run, copies unrecognized portions of the input to the output,
and executes the associated C action for each regular expression
that is recognized.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The options have the following meanings.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Place the result on the standard output instead of in file <tt><font size=+1>lex.yy.c</font></tt>.<br>
<tt><font size=+1>&#8722;v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print a one-line summary of statistics of the generated analyzer.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Opposite of <tt><font size=+1>&#8722;v</font></tt>; <tt><font size=+1>&#8722;n</font></tt> is default.<br>
<tt><font size=+1>&#8722;9</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Adds code to be able to compile through the native C compilers.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
This program converts upper case to lower, removes blanks at the
end of lines, and replaces multiple blanks by single blanks.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>%%<br>
[A&#8722;Z] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar(yytext[0]+'a'&#8722;'A');<br>
[ ]+$<br>
[ ]+ putchar(' ');<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>lex.yy.c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output<br>
<tt><font size=+1>/sys/lib/lex/ncform</font></tt>&nbsp;&nbsp;&nbsp;template<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/yacc.html"><i>yacc</i>(1)</a>, <a href="../man1/sed.html"><i>sed</i>(1)</a><br>
M. E. Lesk and E. Schmidt, &#8216;LEX--Lexical Analyzer Generator&#8217;, <i>Unix
Research System Programmer&#8217;s Manual,</i> Tenth Edition, Volume 2.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/lex<br>
</font></tt>
</table>
<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>
Cannot handle UTF.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The asteroid to kill this dinosaur is still in orbit.<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>

96
man/man1/look.html Normal file
View File

@ -0,0 +1,96 @@
<head>
<title>look(1) - 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>LOOK(1)</b><td align=right><b>LOOK(1)</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>
look &ndash; find lines in a sorted list<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>look</font></tt> [ <tt><font size=+1>&#8722;dfnixt</font></tt><i>c</i> ] [ <i>string</i> ] [ <i>file</i> ]<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>
<i>Look</i> consults a sorted <i>file</i> and prints all lines that begin with
<i>string</i>. It uses binary search.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The following options are recognized. Options <tt><font size=+1>dfnt</font></tt> affect comparisons
as in <a href="../man1/sort.html"><i>sort</i>(1)</a>.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Interactive. There is no <i>string</i> argument; instead <i>look</i> takes
lines from the standard input as strings to be looked up.<br>
<tt><font size=+1>&#8722;x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Exact. Print only lines of the file whose key matches <i>string</i>
exactly.<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&#8216;Directory&#8217; order: only letters, digits, tabs and blanks participate
in comparisons.<br>
<tt><font size=+1>&#8722;f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Fold. Upper case letters compare equal to lower case.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Numeric comparison with initial string of digits, optional minus
sign, and optional decimal point.<br>
<tt><font size=+1>&#8722;t</font></tt>[<i>c</i>]Character <i>c</i> terminates the sort key in the <i>file</i>. By default,
tab terminates the key. If <i>c</i> is missing the entire line comprises
the key.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If no <i>file</i> is specified, <tt><font size=+1>/lib/words</font></tt> is assumed, with collating
sequence <tt><font size=+1>df</font></tt>.<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>/lib/words<br>
</font></tt>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/look.c<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/sort.html"><i>sort</i>(1)</a>, <a href="../man1/grep.html"><i>grep</i>(1)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The exit status is &#8220;<tt><font size=+1>not found</font></tt>&#8221; if no match is found, and &#8220;<tt><font size=+1>no dictionary</font></tt>&#8221;
if <i>file</i> or the default dictionary cannot be opened.<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>

121
man/man1/ls.html Normal file
View File

@ -0,0 +1,121 @@
<head>
<title>ls(1) - 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>LS(1)</b><td align=right><b>LS(1)</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>
ls, lc &ndash; list contents of directory<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>ls</font></tt> [ <tt><font size=+1>&#8722;dlmnpqrstuFQ</font></tt> ] <i>name ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>lc</font></tt> [ <tt><font size=+1>&#8722;dlmnpqrstuFQ</font></tt> ] <i>name ...<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>
For each directory argument, <i>ls</i> lists the contents of the directory;
for each file argument, <i>ls</i> repeats its name and any other information
requested. When no argument is given, the current directory is
listed. By default, the output is sorted alphabetically by name.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Lc</i> is the same as <i>ls</i>, but sets the <tt><font size=+1>&#8722;p</font></tt> option and pipes the output
through <a href="../man1/mc.html"><i>mc</i>(1)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There are a number of options:<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;If argument is a directory, list it, not its contents.<br>
<tt><font size=+1>&#8722;l</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;List in long format, giving mode (see below), file system type
(e.g., for devices, the <tt><font size=+1>#</font></tt> code letter that names it; see <a href="../man3/intro.html"><i>intro</i>(3)</a>),
the instance or subdevice number, owner, group, size in bytes,
and time of last modification for each file.<br>
<tt><font size=+1>&#8722;m</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;List the name of the user who most recently modified the file.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Don&#8217;t sort the listing.<br>
<tt><font size=+1>&#8722;p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print only the final path element of each file name.<br>
<tt><font size=+1>&#8722;q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;List the <i>qid</i> (see <a href="../man3/stat.html"><i>stat</i>(3)</a>) of each file; the printed fields
are in the order path, version, and type.<br>
<tt><font size=+1>&#8722;r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Reverse the order of sort.<br>
<tt><font size=+1>&#8722;s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Give size in Kbytes for each entry.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Sort by time modified (latest first) instead of by name.<br>
<tt><font size=+1>&#8722;u</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Under <tt><font size=+1>&#8722;t</font></tt> sort by time of last access; under <tt><font size=+1>&#8722;l</font></tt> print time of
last access.<br>
<tt><font size=+1>&#8722;F</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Add the character <tt><font size=+1>/</font></tt> after all directory names and the character
<tt><font size=+1>*</font></tt> after all executable files.<br>
<tt><font size=+1>&#8722;L</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print the character <tt><font size=+1>t</font></tt> before each file if it has the temporary
flag set, and <tt><font size=+1>&#8722;</font></tt> otherwise.<br>
<tt><font size=+1>&#8722;Q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;By default, printed file names are quoted if they contain characters
special to <a href="../man1/rc.html"><i>rc</i>(1)</a>. The <tt><font size=+1>&#8722;Q</font></tt> flag disables this behavior.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The mode printed under the <tt><font size=+1>&#8722;l</font></tt> option contains 11 characters, interpreted
as follows: the first character is<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if the entry is a directory;<br>
<tt><font size=+1>a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if the entry is an append-only file;<br>
<tt><font size=+1>&#8722;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if the entry is a plain file.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The next letter is <tt><font size=+1>l</font></tt> if the file is exclusive access (one writer
or reader at a time).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The last 9 characters are interpreted as three sets of three bits
each. The first set refers to owner permissions; the next to permissions
to others in the same user-group; and the last to all others.
Within each set the three characters indicate permission respectively
to read, to write, or to execute the file as a program.
For a directory, &#8216;execute&#8217; permission is interpreted to mean permission
to search the directory for a specified file. The permissions
are indicated as follows:<br>
<tt><font size=+1>r</font></tt>if the file is readable;<br>
<tt><font size=+1>w</font></tt>if the file is writable;<br>
<tt><font size=+1>x</font></tt>if the file is executable;<br>
<tt><font size=+1>&#8722;</font></tt>if none of the above permissions is granted.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/ls.c<br>
/usr/local/plan9/bin/lc<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/stat.html"><i>stat</i>(3)</a>, <a href="../man1/mc.html"><i>mc</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>

139
man/man1/man.html Normal file
View File

@ -0,0 +1,139 @@
<head>
<title>man(1) - 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(1)</b><td align=right><b>MAN(1)</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, lookman, sig &ndash; print or find pages of this 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>man</font></tt> [ <i>option ...</i> ] [ <i>section ...</i> ] <i>title ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>lookman</font></tt> <i>key ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>sig</font></tt> <i>function ...<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>
<i>Man</i> locates and prints pages of this manual named <i>title</i> in the
specified <i>sections</i>. <i>Title</i> is given in lower case. Each <i>section</i>
is a number; pages marked (2S), for example, belong to chapter
2. If no <i>section</i> is specified, pages in all sections are printed.
Any name from the NAME section at the top of the page will serve
as a
<i>title</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The options are:<br>
<tt><font size=+1>&#8722;p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Run <a href="../man1/proof.html"><i>proof</i>(1)</a> on the specified man pages.<br>
<tt><font size=+1>&#8722;P</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Run <a href="../man1/page.html"><i>page</i>(1)</a> on the specified man pages.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Run <i>troff</i> and send its output to standard output.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;(Default) Print the pages on the standard output using <i>nroff</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>Lookman</font></tt> prints the names of all manual sections that contain all
of the <i>key</i> words given on the command line.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>Sig</font></tt> prints the signature (i.e. C definition) of the <i>function</i>&#8217;s
given on the command line.<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/man?/*<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>troff</i> source for manual; this page is <tt><font size=+1>/usr/local/plan9/man/man1/man.1<br>
</font></tt>
</table>
<tt><font size=+1>/usr/local/plan9/man/man?/INDEX<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
indices searched to find pages corresponding to titles<br>
</table>
<tt><font size=+1>/usr/local/plan9/man/secindex<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
command to make an index for a given section<br>
</table>
<tt><font size=+1>/usr/local/plan9/man/lookman/index<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
index for <i>lookman<br>
</i>
</table>
</table>
<p><font size=+1><b>SOURCE </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/bin/man<br>
/usr/local/plan9/bin/lookman<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/page.html"><i>page</i>(1)</a>, <a href="../man1/proof.html"><i>proof</i>(1)</a><br>
</table>
<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>
The manual was intended to be typeset; some detail is sacrificed
on text terminals.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There is no automatic mechanism to keep the indices up to date.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Except for special cases, <i>man</i> doesn&#8217;t recognize things that should
be run through <i>tbl</i> and/or <i>eqn</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>

483
man/man1/map.html Normal file
View File

@ -0,0 +1,483 @@
<head>
<title>map(1) - 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(1)</b><td align=right><b>MAP(1)</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, mapdemo, mapd &ndash; draw maps on various projections<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>map</font></tt> <i>projection</i> [ <i>option ...</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>mapdemo
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</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>
<i>Map</i> prepares on the standard output a map suitable for display
by any plotting filter described in <a href="../man1/plot.html"><i>plot</i>(1)</a>. A menu of projections
is produced in response to an unknown <i>projection</i>. <i>Mapdemo</i> is a
short course in mapping.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The default data for <i>map</i> are world shorelines. Option <tt><font size=+1>&#8722;f</font></tt> accesses
more detailed data classified by feature.<br>
<tt><font size=+1>&#8722;f</font></tt> [ <i>feature</i> ... ]<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Features are ranked 1 (default) to 4 from major to minor. Higher-numbered
ranks include all lower-numbered ones. Features are<br>
<tt><font size=+1>shore</font></tt>[<tt><font size=+1>1</font></tt>-<tt><font size=+1>4</font></tt>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;seacoasts, lakes, and islands; option <tt><font size=+1>&#8722;f</font></tt> always shows
<tt><font size=+1>shore1<br>
ilake</font></tt>[<tt><font size=+1>1</font></tt>-<tt><font size=+1>2</font></tt>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intermittent lakes<br>
<tt><font size=+1>river</font></tt>[<tt><font size=+1>1</font></tt>-<tt><font size=+1>4</font></tt>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rivers<br>
<tt><font size=+1>iriver</font></tt>[<tt><font size=+1>1</font></tt>-<tt><font size=+1>3</font></tt>]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intermittent rivers<br>
<tt><font size=+1>canal</font></tt>[<tt><font size=+1>1</font></tt>-<tt><font size=+1>3</font></tt>]<tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3</font></tt>=irrigation canals<br>
<tt><font size=+1>glacier<br>
iceshelf</font></tt>[<tt><font size=+1>12</font></tt>]<br>
<tt><font size=+1>reef<br>
saltpan</font></tt>[<tt><font size=+1>12</font></tt>]<br>
<tt><font size=+1>country</font></tt>[<tt><font size=+1>1</font></tt>-<tt><font size=+1>3</font></tt>]<tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;2</font></tt>=disputed boundaries, <tt><font size=+1>3</font></tt>=indefinite boundaries<br>
<tt><font size=+1>state</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;states and provinces (US and Canada only)<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
In other options coordinates are in degrees, with north latitude
and west longitude counted as positive.<br>
<tt><font size=+1>&#8722;l</font></tt> <i>S N E W<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Set the southern and northern latitude and the eastern and western
longitude limits. Missing arguments are filled out from the list
&ndash;90, 90, &ndash;180, 180, or lesser limits suitable to the projection
at hand.<br>
</table>
<tt><font size=+1>&#8722;k</font></tt> <i>S N E W<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Set the scale as if for a map with limits <tt><font size=+1>&#8722;l</font></tt> <i>S N E W</i> . Do not
consider any <tt><font size=+1>&#8722;l</font></tt> or <tt><font size=+1>&#8722;w</font></tt> option in setting scale.<br>
</table>
<tt><font size=+1>&#8722;o</font></tt> <i>lat lon rot<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Orient the map in a nonstandard position. Imagine a transparent
gridded sphere around the globe. Turn the overlay about the North
Pole so that the Prime Meridian (longitude 0) of the overlay coincides
with meridian <i>lon</i> on the globe. Then tilt the North Pole of the
overlay along its Prime Meridian to latitude <i>lat
</i>on the globe. Finally again turn the overlay about its &#8216;North
Pole&#8217; so that its Prime Meridian coincides with the previous position
of meridian <i>rot</i>. Project the map in the standard form appropriate
to the overlay, but presenting information from the underlying
globe. Missing arguments are filled out from the list
90, 0, 0. In the absence of <tt><font size=+1>&#8722;</font></tt>o<tt><font size=+1>,</font></tt> the orientation is 90, 0, <i>m</i>, where
<i>m</i> is the middle of the longitude range.<br>
</table>
<tt><font size=+1>&#8722;w</font></tt> <i>S N E W<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Window the map by the specified latitudes and longitudes in the
tilted, rotated coordinate system. Missing arguments are filled
out from the list &ndash;90, 90, &ndash;180, 180. (It is wise to give an encompassing
<tt><font size=+1>&#8722;l</font></tt> option with <tt><font size=+1>&#8722;w</font></tt>. Otherwise for small windows computing time
varies inversely with area!)
</table>
<tt><font size=+1>&#8722;d</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;For speed, plot only every <i>n</i>th point.<br>
<tt><font size=+1>&#8722;r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Reverse left and right (good for star charts and inside-out
views).<br>
<tt><font size=+1>&#8722;v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Verso. Switch to a normally suppressed sheet of the map, such
as the back side of the earth in orthographic projection.<br>
<tt><font size=+1>&#8722;s1<br>
&#8722;s2</font></tt>&nbsp;&nbsp;&nbsp;Superpose; outputs for a <tt><font size=+1>&#8722;s1</font></tt> map (no closing) and a <tt><font size=+1>&#8722;s2</font></tt> map
(no opening) may be concatenated.<br>
<tt><font size=+1>&#8722;g</font></tt> <i>dlat dlon res<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Grid spacings are <i>dlat</i>, <i>dlon</i>. Zero spacing means no grid. Missing
<i>dlat</i> is taken to be zero. Missing <i>dlon</i> is taken the same as <i>dlat</i>.
Grid lines are drawn to a resolution of <i>res</i> (2&deg; or less by default).
In the absence of <tt><font size=+1>&#8722;</font></tt>g<tt><font size=+1>,</font></tt> grid spacing is 10&deg;.<br>
</table>
<tt><font size=+1>&#8722;p</font></tt> <i>lat lon extent<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Position the point <i>lat, lon</i> at the center of the plotting area.
Scale the map so that the height (and width) of the nominal plotting
area is <i>extent</i> times the size of one degree of latitude at the
center. By default maps are scaled and positioned to fit within
the plotting area. An <i>extent</i> overrides option <tt><font size=+1>&#8722;k</font></tt>.
</table>
<tt><font size=+1>&#8722;c</font></tt> <i>x y rot<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
After all other positioning and scaling operations have been performed,
rotate the image <i>rot</i> degrees counterclockwise about the center
and move the center to position <i>x</i>, <i>y</i>, where the nominal plotting
area is &ndash;1&le;<i>x</i>&le;1, &ndash;1&le;<i>y</i>&le;1. Missing arguments are taken to be 0. <tt><font size=+1>&#8722;x</font></tt> Allow
the map to extend outside the
nominal plotting area.<br>
</table>
<tt><font size=+1>&#8722;m</font></tt> [ <i>file</i> ... ]<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Use map data from named files. If no files are named, omit map
data. Names that do not exist as pathnames are looked up in a
standard directory, which contains, in addition to the data for
<tt><font size=+1>&#8722;f</font></tt>,<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>world</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;World Data Bank I (default)<br>
<tt><font size=+1>states</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;US map from Census Bureau<br>
<tt><font size=+1>counties</font></tt>&nbsp;&nbsp;&nbsp;US map from Census Bureau<br>
The environment variables <tt><font size=+1>MAP</font></tt> and <tt><font size=+1>MAPDIR</font></tt> change the default map
and default directory.<br>
</table>
<tt><font size=+1>&#8722;b</font></tt> [<i>lat0 lon0 lat1 lon1</i>... ]<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Suppress the drawing of the normal boundary (defined by options
<tt><font size=+1>&#8722;l</font></tt> and <tt><font size=+1>&#8722;w</font></tt>). Coordinates, if present, define the vertices of a
polygon to which the map is clipped. If only two vertices are
given, they are taken to be the diagonal of a rectangle. To draw
the polygon, give its vertices as a <tt><font size=+1>&#8722;u</font></tt> track.
</table>
<tt><font size=+1>&#8722;t</font></tt> <i>file ...<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>files</i> contain lists of points, given as latitude-longitude
pairs in degrees. If the first file is named <tt><font size=+1>&#8722;</font></tt>, the standard input
is taken instead. The points of each list are plotted as connected
&#8216;tracks&#8217;.<br>
Points in a track file may be followed by label strings. A label
breaks the track. A label may be prefixed by <tt><font size=+1>&quot;</font></tt>, <tt><font size=+1>:</font></tt>, or <tt><font size=+1>!</font></tt> and is
terminated by a newline. An unprefixed string or a string prefixed
with <tt><font size=+1>&quot;</font></tt> is displayed at the designated point. The first word of
a <tt><font size=+1>:</font></tt> or <tt><font size=+1>!</font></tt> string names a special symbol (see option <tt><font size=+1>&#8722;y</font></tt>).
An optional numerical second word is a scale factor for the size
of the symbol, 1 by default. A <tt><font size=+1>:</font></tt> symbol is aligned with its top
to the north; a <tt><font size=+1>!</font></tt> symbol is aligned vertically on the page.<br>
</table>
<tt><font size=+1>&#8722;u</font></tt> <i>file ...<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Same as <tt><font size=+1>&#8722;t</font></tt>, except the tracks are unbroken lines. (<tt><font size=+1>&#8722;t</font></tt> tracks appear
as dot-dashed lines if the plotting filter supports them.)<br>
</table>
<tt><font size=+1>&#8722;y</font></tt> <i>file<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>file</i> contains <a href="../man7/plot.html"><i>plot</i>(7)</a>-style data for <tt><font size=+1>:</font></tt> or <tt><font size=+1>!</font></tt> labels in <tt><font size=+1>&#8722;t</font></tt> or
<tt><font size=+1>&#8722;u</font></tt> files. Each symbol is defined by a comment <tt><font size=+1>:</font></tt><i>name</i> then a sequence
of <tt><font size=+1>m</font></tt> and <tt><font size=+1>v</font></tt> commands. Coordinates (0,0) fall on the plotting point.
Default scaling is as if the nominal plotting range were <tt><font size=+1>ra &#8722;1
&#8722;1 1 1</font></tt>; <tt><font size=+1>ra</font></tt> commands in <i>file</i> change the
scaling.<br>
</table>
<p><font size=+1><b>Projections </b></font><br>
Equatorial projections centered on the Prime Meridian (longitude
0). Parallels are straight horizontal lines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>mercator</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equally spaced straight meridians, conformal, straight
compass courses<br>
<tt><font size=+1>sinusoidal</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equally spaced parallels, equal-area, same as <tt><font size=+1>bonne
0</font></tt>.<br>
<tt><font size=+1>cylequalarea</font></tt> <i>lat0</i>&nbsp;&nbsp;&nbsp;equally spaced straight meridians, equal-area,
true scale on <i>lat0<br>
</i><tt><font size=+1>cylindrical</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;central projection on tangent cylinder<br>
<tt><font size=+1>rectangular</font></tt> <i>lat0</i>&nbsp;&nbsp;&nbsp;equally spaced parallels, equally spaced straight
meridians, true scale on <i>lat0<br>
</i><tt><font size=+1>gall</font></tt> <i>lat0</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parallels spaced stereographically on prime meridian,
equally spaced straight meridians, true scale on <i>lat0<br>
</i><tt><font size=+1>mollweide</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(homalographic) equal-area, hemisphere is a circle<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>
<tt><font size=+1>gilbert()</font></tt> sphere conformally mapped on hemisphere and viewed orthographically<br>
</table>
</table>
<tt><font size=+1>gilbert</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;globe mapped conformally on hemisphere, viewed orthographically
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Azimuthal projections centered on the North Pole. Parallels are
concentric circles. Meridians are equally spaced radial lines.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>azequidistant</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equally spaced parallels, true distances from pole<br>
<tt><font size=+1>azequalarea</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equal-area<br>
<tt><font size=+1>gnomonic</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;central projection on tangent plane, straight great circles<br>
<tt><font size=+1>perspective</font></tt> <i>dist</i>&nbsp;&nbsp;&nbsp;viewed along earth&#8217;s axis <i>dist</i> earth radii from
center of earth<br>
<tt><font size=+1>orthographic</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;viewed from infinity<br>
<tt><font size=+1>stereographic</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conformal, projected from opposite pole<br>
<tt><font size=+1>laue</font></tt><i>radius</i> = tan(2&#215;<i>colatitude</i>), used in X-ray crystallography<br>
<tt><font size=+1>fisheye</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stereographic seen from just inside medium with refractive
index <i>n<br>
</i><tt><font size=+1>newyorker</font></tt> <i>rradius</i> = log(<i>colatitude</i>/<i>r</i>): <i>New Yorker</i> map from viewing
pedestal of radius <i>r</i> degrees
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Polar conic projections symmetric about the Prime Meridian. Parallels
are segments of concentric circles. Except in the Bonne projection,
meridians are equally spaced radial lines orthogonal to the parallels.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>conic</font></tt> <i>lat0</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;central projection on cone tangent at <i>lat0<br>
</i><tt><font size=+1>simpleconic</font></tt> <i>lat0 lat1<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>
equally spaced parallels, true scale on <i>lat0</i> and <i>lat1<br>
</i>
</table>
</table>
<tt><font size=+1>lambert</font></tt> <i>lat0 lat1</i>&nbsp;&nbsp;&nbsp;&nbsp;conformal, true scale on <i>lat0</i> and <i>lat1<br>
</i><tt><font size=+1>albers</font></tt> <i>lat0 lat1</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equal-area, true scale on <i>lat0</i> and <i>lat1<br>
</i><tt><font size=+1>bonne</font></tt> <i>lat0</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equally spaced parallels, equal-area, parallel <i>lat0</i>
developed from tangent cone
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Projections with bilateral symmetry about the Prime Meridian and
the equator.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>polyconic</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parallels developed from tangent cones, equally spaced
along Prime Meridian<br>
<tt><font size=+1>aitoff</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equal-area projection of globe onto 2-to-1 ellipse, based
on <i>azequalarea<br>
</i><tt><font size=+1>lagrange</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;conformal, maps whole sphere into a circle<br>
<tt><font size=+1>bicentric</font></tt> <i>lon0</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;points plotted at true azimuth from two centers
on the equator at longitudes <i>&plusmn;lon0</i>, great circles are straight
lines (a stretched <i>gnomonic</i> )<br>
<tt><font size=+1>elliptic</font></tt> <i>lon0</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;points plotted at true distance from two centers
on the equator at longitudes <i>&plusmn;lon0<br>
</i><tt><font size=+1>globular</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hemisphere is circle, circular arc meridians equally spaced
on equator, circular arc parallels equally spaced on 0- and 90-degree
meridians<br>
<tt><font size=+1>vandergrinten</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sphere is circle, meridians as in <i>globular</i>, circular
arc parallels resemble <i>mercator
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
Doubly periodic conformal projections.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>guyou</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;W and E hemispheres are square<br>
<tt><font size=+1>square</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;world is square with Poles at diagonally opposite corners<br>
<tt><font size=+1>tetra</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map on tetrahedron with edge tangent to Prime Meridian at
S Pole, unfolded into equilateral triangle<br>
<tt><font size=+1>hex</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;world is hexagon centered on N Pole, N and S hemispheres are
equilateral triangles
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Miscellaneous projections.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>harrison</font></tt> <i>dist angle</i>oblique perspective from above the North Pole,
<i>dist</i> earth radii from center of earth, looking along the Date
Line <i>angle</i> degrees off vertical<br>
<tt><font size=+1>trapezoidal</font></tt> <i>lat0 lat1<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>
equally spaced parallels, straight meridians equally spaced along
parallels, true scale at <i>lat0</i> and <i>lat1</i> on Prime Meridian<br>
<tt><font size=+1>lune(lat,angle)</font></tt> conformal, polar cap above latitude <i>lat</i> maps to
convex lune with given <i>angle</i> at 90&#176;E and 90&#176;W
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
</table>
Retroazimuthal projections. At every point the angle between vertical
and a straight line to &#8216;Mecca&#8217;, latitude <i>lat0</i> on the prime meridian,
is the true bearing of Mecca.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>mecca</font></tt> <i>lat0</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equally spaced vertical meridians<br>
<tt><font size=+1>homing</font></tt> <i>lat0</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;distances to Mecca are true
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Maps based on the spheroid. Of geodetic quality, these projections
do not make sense for tilted orientations. For descriptions, see
corresponding maps above.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>sp_mercator<br>
sp_albers</font></tt> <i>lat0 lat1<br>
</i>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>map perspective 1.025 &#8722;o 40.75 74<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A view looking down on New York from 100 miles (0.025 of the 4000-mile
earth radius) up. The job can be done faster by limiting the map
so as not to &#8216;plot&#8217; the invisible part of the world: <tt><font size=+1>map perspective
1.025 &#8722;o 40.75 74 &#8722;l 20 60 30 100</font></tt>. A circular border can be forced
by adding option
<tt><font size=+1>&#8722;w 77.33</font></tt>. (Latitude 77.33&deg; falls just inside a polar cap of opening
angle arccos(1/1.025) = 12.6804&deg;.)<br>
</table>
<tt><font size=+1>map mercator &#8722;o 49.25 &#8722;106 180<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
An &#8216;equatorial&#8217; map of the earth centered on New York. The pole
of the map is placed 90&#176; away (40.75+49.25=90) on the other side
of the earth. A 180&deg; twist around the pole of the map arranges
that the &#8216;Prime Meridian&#8217; of the map runs from the pole of the
map over the North Pole to New York instead of
down the back side of the earth. The same effect can be had from
<tt><font size=+1>&nbsp;&nbsp;&nbsp;map mercator &#8722;o 130.75 74<br>
</font></tt>
</table>
<tt><font size=+1>map albers 28 45 &#8722;l 20 50 60 130 &#8722;m states<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A customary curved-latitude map of the United States.<br>
</table>
<tt><font size=+1>map harrison 2 30 &#8722;l &#8722;90 90 120 240 &#8722;o 90 0 0<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A fan view covering 60&deg; on either side of the Date Line, as seen
from one earth radius above the North Pole gazing at the earth&#8217;s
limb, which is 30&deg; off vertical. The <tt><font size=+1>&#8722;o</font></tt> option overrides the default
<tt><font size=+1>&#8722;o 90 0 180</font></tt>, which would rotate the scene to behind the observer.<br>
</table>
</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>/lib/map/[1&#8722;4]??</font></tt>&nbsp;&nbsp;&nbsp;World Data Bank II, for <tt><font size=+1>&#8722;f<br>
/lib/map/*</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maps for <tt><font size=+1>&#8722;m<br>
/lib/map/*.x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map indexes<br>
<tt><font size=+1>mapd</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map driver program<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/map<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="../man7/map.html"><i>map</i>(7)</a>, <a href="../man1/plot.html"><i>plot</i>(1)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
&#8216;Map seems to be empty&#8217;--a coarse survey found zero extent within
the <tt><font size=+1>&#8722;l</font></tt> and <tt><font size=+1>&#8722;w</font></tt> bounds; for maps of limited extent the grid resolution,
<i>res</i>, or the limits may have to be refined.<br>
</table>
<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>
Windows (option <tt><font size=+1>&#8722;w</font></tt>) cannot cross the Date Line. No borders appear
along edges arising from visibility limits. Segments that cross
a border are dropped, not clipped. Excessively large scale or
<tt><font size=+1>&#8722;d</font></tt> setting may cause long line segments to be dropped. <i>Map</i> tries
to draw grid lines dotted and <tt><font size=+1>&#8722;t</font></tt> tracks dot-dashed. As
very few plotting filters properly support curved textured lines,
these lines are likely to appear solid. The west-longitude-positive
convention betrays Yankee chauvinism. <i>Gilbert</i> should be a map
from sphere to sphere, independent of the mapping from sphere
to plane.<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>

64
man/man1/mc.html Normal file
View File

@ -0,0 +1,64 @@
<head>
<title>mc(1) - 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>MC(1)</b><td align=right><b>MC(1)</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>
mc &ndash; multicolumn print<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>mc</font></tt> [ <tt><font size=+1>&#8722;</font></tt> ] [ <tt><font size=+1>&#8722;</font></tt><i>N</i> ] [ <i>file ...</i> ]<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>
<i>Mc</i> splits the input into as many columns as will fit in <i>N</i> print
positions. If run in a <a href="../man1/9term.html"><i>9term</i>(1)</a>, <a href="../man1/xterm.html"><i>xterm</i>(1)</a>, or <a href="../man1/acme.html"><i>acme</i>(1)</a> window,
the default <i>N</i> is the number of blanks that will fit across the
window; otherwise the default <i>N</i> is 80. Under option <tt><font size=+1>&#8722;</font></tt> each input
line ending in a colon <tt><font size=+1>:</font></tt> is printed separately.
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/draw/mc.c<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/9term.html"><i>9term</i>(1)</a>, <a href="../man1/acme.html"><i>acme</i>(1)</a>, <a href="../man4/acme.html"><i>acme</i>(4)</a>, <a href="../man1/xterm.html"><i>xterm</i>(1)</a>, <a href="../man1/pr.html"><i>pr</i>(1)</a>, <i>lc</i> in <a href="../man1/ls.html"><i>ls</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>

621
man/man1/mk.html Normal file
View File

@ -0,0 +1,621 @@
<head>
<title>mk(1) - 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>MK(1)</b><td align=right><b>MK(1)</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>
mk &ndash; maintain (make) related files<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>mk</font></tt> [ <tt><font size=+1>&#8722;f</font></tt> <i>mkfile</i> ] ... [ <i>option ...</i> ] [ <i>target ...</i> ]<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>
<i>Mk</i> uses the dependency rules specified in <i>mkfile</i> to control the
update (usually by compilation) of <i>targets</i> (usually files) from
the source files upon which they depend. The <i>mkfile</i> (default <tt><font size=+1>mkfile</font></tt>)
contains a <i>rule</i> for each target that identifies the files and
other targets upon which it depends and an <a href="../man1/sh.html"><i>sh</i>(1)</a> script, a
<i>recipe</i>, to update the target. The script is run if the target
does not exist or if it is older than any of the files it depends
on. <i>Mkfile</i> may also contain <i>meta-rules</i> that define actions for
updating implicit targets. If no <i>target</i> is specified, the target
of the first rule (not meta-rule) in <i>mkfile</i> is updated.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The environment variable <tt><font size=+1>$NPROC</font></tt> determines how many targets may
be updated simultaneously; Some operating systems, e.g., Plan
9, set <tt><font size=+1>$NPROC</font></tt> automatically to the number of CPUs on the current
machine.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Options are:<br>
<tt><font size=+1>&#8722;a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assume all targets to be out of date. Thus, everything is updated.<br>
<tt><font size=+1>&#8722;d</font></tt>[<tt><font size=+1>egp</font></tt>]&nbsp;&nbsp;&nbsp;Produce debugging output (<tt><font size=+1>p</font></tt> is for parsing, <tt><font size=+1>g</font></tt> for graph
building, <tt><font size=+1>e</font></tt> for execution).<br>
<tt><font size=+1>&#8722;e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Explain why each target is made.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force any missing intermediate targets to be made.<br>
<tt><font size=+1>&#8722;k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do as much work as possible in the face of errors.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print, but do not execute, the commands needed to update the
targets.<br>
<tt><font size=+1>&#8722;s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make the command line arguments sequentially rather than in
parallel.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Touch (update the modified date of) file targets, without executing
any recipes.<br>
<tt><font size=+1>&#8722;w</font></tt><i>target1</i><tt><font size=+1>,</font></tt><i>target2,...<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>
Pretend the modify time for each <i>target</i> is the current time; useful
in conjunction with <tt><font size=+1>&#8722;n</font></tt> to learn what updates would be triggered
by modifying the <i>targets</i>.<br>
</table>
</table>
<p><font size=+1><b>The <tt><font size=+1>mkfile </font></tt></b></font><br>
A <i>mkfile</i> consists of <i>assignments</i> (described under &#8216;Environment&#8217;)
and <i>rules</i>. A rule contains <i>targets</i> and a <i>tail</i>. A target is a literal
string and is normally a file name. The tail contains zero or
more <i>prerequisites</i> and an optional <i>recipe</i>, which is an <tt><font size=+1>shell</font></tt> script.
Each line of the recipe must begin with white space. A rule
takes the form<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>target: prereq1 prereq2<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>recipe using</i> <tt><font size=+1>prereq1, prereq2</font></tt> <i>to build</i> <tt><font size=+1>target<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
</table>
When the recipe is executed, the first character on every line
is elided.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
After the colon on the target line, a rule may specify <i>attributes</i>,
described below.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A <i>meta-rule</i> has a target of the form <i>A</i><tt><font size=+1>%</font></tt><i>B</i> where <i>A</i> and <i>B</i> are (possibly
empty) strings. A meta-rule acts as a rule for any potential target
whose name matches <i>A</i><tt><font size=+1>%</font></tt><i>B</i> with <tt><font size=+1>%</font></tt> replaced by an arbitrary string,
called the <i>stem</i>. In interpreting a meta-rule, the stem is substituted
for all occurrences of <tt><font size=+1>%</font></tt> in the prerequisite
names. In the recipe of a meta-rule, the environment variable
<tt><font size=+1>$stem</font></tt> contains the string matched by the <tt><font size=+1>%</font></tt>. For example, a meta-rule
to compile a C program using <a href="../man1/9c.html"><i>9c</i>(1)</a> might be:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>%: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%.c<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
9c &#8722;c $stem.c<br>
9l &#8722;o $stem $stem.o<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>
Meta-rules may contain an ampersand <tt><font size=+1>&amp;</font></tt> rather than a percent sign
<tt><font size=+1>%</font></tt>. A <tt><font size=+1>%</font></tt> matches a maximal length string of any characters; an <tt><font size=+1>&amp;</font></tt>
matches a maximal length string of any characters except period
or slash.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The text of the <i>mkfile</i> is processed as follows. Lines beginning
with <tt><font size=+1>&lt;</font></tt> followed by a file name are replaced by the contents of
the named file. Lines beginning with <tt><font size=+1>&lt;|</font></tt> followed by a file name
are replaced by the output of the execution of the named file.
Blank lines and comments, which run from unquoted <tt><font size=+1>#</font></tt> characters
to the following newline, are deleted. The character sequence
backslash-newline is deleted, so long lines in <i>mkfile</i> may be folded.
Non-recipe lines are processed by substituting for <tt><font size=+1>`{</font></tt><i>command</i><tt><font size=+1>}</font></tt>
the output of the <i>command</i> when run by <i>sh</i>. References to variables
are replaced by the variables&#8217; values. Special
characters may be quoted using single quotes <tt><font size=+1>''</font></tt> as in <a href="../man1/sh.html"><i>sh</i>(1)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Assignments and rules are distinguished by the first unquoted
occurrence of <tt><font size=+1>:</font></tt> (rule) or <tt><font size=+1>=</font></tt> (assignment).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A later rule may modify or override an existing rule under the
following conditions:<br>
&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the targets of the rules exactly match and one rule contains
only a prerequisite clause and no recipe, the clause is added
to the prerequisites of the other rule. If either or both targets
are virtual, the recipe is always executed.<br>
&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the targets of the rules match exactly and the prerequisites
do not match and both rules contain recipes, <i>mk</i> reports an &#8220;ambiguous
recipe&#8221; error.<br>
&ndash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the target and prerequisites of both rules match exactly, the
second rule overrides the first.<br>
<p><font size=+1><b>Environment </b></font><br>
Rules may make use of shell environment variables. A legal reference
of the form <tt><font size=+1>$OBJ</font></tt> or <tt><font size=+1>${name}</font></tt> is expanded as in <a href="../man1/sh.html"><i>sh</i>(1)</a>. A reference
of the form <tt><font size=+1>${name:</font></tt><i>A</i><tt><font size=+1>%</font></tt><i>B</i><tt><font size=+1>=</font></tt><i>C</i><tt><font size=+1>%</font></tt><i>D</i><tt><font size=+1>}</font></tt>, where <i>A, B, C, D</i> are (possibly empty)
strings, has the value formed by expanding <tt><font size=+1>$name</font></tt> and substituting
<i>C</i> for <i>A</i> and <i>D</i> for <i>B</i> in each word in
<tt><font size=+1>$name</font></tt> that matches pattern <i>A</i><tt><font size=+1>%</font></tt><i>B</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Variables can be set by assignments of the form<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>var</i><tt><font size=+1>=</font></tt>[<i>attr</i><tt><font size=+1>=</font></tt>]<i>value<br>
</i>
</table>
Blanks in the <i>value</i> break it into words. Such variables are exported
to the environment of recipes as they are executed, unless <tt><font size=+1>U</font></tt>,
the only legal attribute <i>attr</i>, is present. The initial value of
a variable is taken from (in increasing order of precedence) the
default values below, <i>mk&#8217;s</i> environment, the <i>mkfiles</i>, and any
command line assignment as an argument to <i>mk</i>. A variable assignment
argument overrides the first (but not any subsequent) assignment
to that variable.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The variable <tt><font size=+1>MKFLAGS</font></tt> contains all the option arguments (arguments
starting with <tt><font size=+1>&#8722;</font></tt> or containing <tt><font size=+1>=</font></tt>) and <tt><font size=+1>MKARGS</font></tt> contains all the targets
in the call to <i>mk</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The variable <tt><font size=+1>MKSHELL</font></tt> contains the shell command line <i>mk</i> uses to
run recipes. If the first word of the command ends in <tt><font size=+1>rc</font></tt> or <tt><font size=+1>rcsh</font></tt>,
<i>mk</i> uses <a href="../man1/rc.html"><i>rc</i>(1)</a>&#8217;s quoting rules; otherwise it uses <a href="../man1/sh.html"><i>sh</i>(1)</a>&#8217;s. The
<tt><font size=+1>MKSHELL</font></tt> variable is consulted when the mkfile is read, not when
it is executed, so that different shells can be used within
a single mkfile:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>MKSHELL=$PLAN9/bin/rc<br>
use&#8722;rc:V:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
for(i in a b c) echo $i<br>
</table>
MKSHELL=sh<br>
use&#8722;sh:V:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
for i in a b c; do echo $i; done<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>
Mkfiles included via <tt><font size=+1>&lt;</font></tt> or <tt><font size=+1>&lt;|</font></tt> (<i>q.v.</i>) see their own private copy of
<tt><font size=+1>MKSHELL</font></tt>, which always starts set to <tt><font size=+1>sh .
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
Dynamic information may be included in the mkfile by using a line
of the form<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
&lt;|<i>command args
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
</table>
This runs the command <i>command</i> with the given arguments <i>args</i> and
pipes its standard output to <i>mk</i> to be included as part of the
mkfile. For instance, the Inferno kernels use this technique to
run a shell command with an awk script and a configuration file
as arguments in order for the <i>awk</i> script to process the file
and output a set of variables and their values.<br>
<p><font size=+1><b>Execution </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
During execution, <i>mk</i> determines which targets must be updated,
and in what order, to build the <i>names</i> specified on the command
line. It then runs the associated recipes.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A target is considered up to date if it has no prerequisites or
if all its prerequisites are up to date and it is newer than all
its prerequisites. Once the recipe for a target has executed,
the target is considered up to date.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The date stamp used to determine if a target is up to date is
computed differently for different types of targets. If a target
is <i>virtual</i> (the target of a rule with the <tt><font size=+1>V</font></tt> attribute), its date
stamp is initially zero; when the target is updated the date stamp
is set to the most recent date stamp of its prerequisites. Otherwise,
if a
target does not exist as a file, its date stamp is set to the
most recent date stamp of its prerequisites, or zero if it has
no prerequisites. Otherwise, the target is the name of a file
and the target&#8217;s date stamp is always that file&#8217;s modification
date. The date stamp is computed when the target is needed in
the execution of
a rule; it is not a static value.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Nonexistent targets that have prerequisites and are themselves
prerequisites are treated specially. Such a target <i>t</i> is given
the date stamp of its most recent prerequisite and if this causes
all the targets which have <i>t</i> as a prerequisite to be up to date,
<i>t</i> is considered up to date. Otherwise, <i>t</i> is made in the normal
fashion.
The <tt><font size=+1>&#8722;i</font></tt> flag overrides this special treatment.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Files may be made in any order that respects the preceding restrictions.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A recipe is executed by supplying the recipe as standard input
to the command <tt><font size=+1>/bin/sh</font></tt>. (Note that unlike <i>make</i>, <i>mk</i> feeds the entire
recipe to the shell rather than running each line of the recipe
separately.) The environment is augmented by the following variables:<br>
<tt><font size=+1>$alltarget<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>
all the targets of this rule.<br>
</table>
</table>
<tt><font size=+1>$newprereq<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>
the prerequisites that caused this rule to execute.<br>
</table>
</table>
<tt><font size=+1>$newmember<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>
the prerequisites that are members of an aggregate that caused
this rule to execute. When the prerequisites of a rule are members
of an aggregate, <tt><font size=+1>$newprereq</font></tt> contains the name of the aggregate
and out of date members, while <tt><font size=+1>$newmember</font></tt> contains only the name
of the members.
</table>
</table>
<tt><font size=+1>$nproc</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the process slot for this recipe. It satisfies 0&le;<tt><font size=+1>$nproc</font></tt>&lt;<tt><font size=+1>$NPROC</font></tt>.<br>
<tt><font size=+1>$pid</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the process id for the <i>mk</i> executing the recipe.<br>
<tt><font size=+1>$prereq</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;all the prerequisites for this rule.<br>
<tt><font size=+1>$stem</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if this is a meta-rule, <tt><font size=+1>$stem</font></tt> is the string that matched
<tt><font size=+1>%</font></tt> or <tt><font size=+1>&amp;</font></tt>. Otherwise, it is empty. For regular expression meta-rules
(see below), the variables <tt><font size=+1>stem0</font></tt>, ..., <tt><font size=+1>stem9</font></tt> are set to the corresponding
subexpressions.<br>
<tt><font size=+1>$target</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;the targets for this rule that need to be remade.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
These variables are available only during the execution of a recipe,
not while evaluating the <i>mkfile</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Unless the rule has the <tt><font size=+1>Q</font></tt> attribute, the recipe is printed prior
to execution with recognizable environment variables expanded.
Commands returning error status cause <i>mk</i> to terminate.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Recipes and backquoted <tt><font size=+1>rc</font></tt> commands in places such as assignments
execute in a copy of <i>mk&#8217;s</i> environment; changes they make to environment
variables are not visible from <i>mk</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Variable substitution in a rule is done when the rule is read;
variable substitution in the recipe is done when the recipe is
executed. For example:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>bar=a.c<br>
foo: $bar<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
$CC &#8722;o foo $bar<br>
</table>
bar=b.c<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
will compile <tt><font size=+1>b.c</font></tt> into <tt><font size=+1>foo</font></tt>, if <tt><font size=+1>a.c</font></tt> is newer than <tt><font size=+1>foo</font></tt>.<br>
<p><font size=+1><b>Aggregates </b></font><br>
Names of the form <i>a</i>(<i>b</i>) refer to member <i>b</i> of the aggregate <i>a</i>. Currently,
the only aggregates supported are <i>9ar</i> (see <a href="../man1/9c.html"><i>9c</i>(1)</a>) archives.<br>
<p><font size=+1><b>Attributes </b></font><br>
The colon separating the target from the prerequisites may be
immediately followed by <i>attributes</i> and another colon. The attributes
are:<br>
<tt><font size=+1>D</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the recipe exits with a non-null status, the target is deleted.<br>
<tt><font size=+1>E</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Continue execution if the recipe draws errors.<br>
<tt><font size=+1>N</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If there is no recipe, the target has its time updated.<br>
<tt><font size=+1>n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rule is a meta-rule that cannot be a target of a virtual
rule. Only files match the pattern in the target.<br>
<tt><font size=+1>P</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The characters after the <tt><font size=+1>P</font></tt> until the terminating <tt><font size=+1>:</font></tt> are taken
as a program name. It will be invoked as <tt><font size=+1>sh &#8722;c prog 'arg1' 'arg2'</font></tt>
and should return a zero exit status if and only if arg1 is up
to date with respect to arg2. Date stamps are still propagated
in the normal way.<br>
<tt><font size=+1>Q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The recipe is not printed prior to execution.<br>
<tt><font size=+1>R</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The rule is a meta-rule using regular expressions. In the rule,
<tt><font size=+1>%</font></tt> has no special meaning. The target is interpreted as a regular
expression as defined in <a href="../man7/regexp.html"><i>regexp</i>(7)</a>. The prerequisites may contain
references to subexpressions in form <tt><font size=+1>\</font></tt><i>n</i>, as in the substitute
command of <a href="../man1/sed.html"><i>sed</i>(1)</a>.<br>
<tt><font size=+1>U</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The targets are considered to have been updated even if the recipe
did not do so.<br>
<tt><font size=+1>V</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The targets of this rule are marked as virtual. They are distinct
from files of the same name.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A simple mkfile to compile a program:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>&lt;/$objtype/mkfile<br>
prog: a.$O b.$O c.$O<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
$LD $LDFLAGS &#8722;o $target $prereq<br>
</table>
%.$O: %.c<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
$CC $CFLAGS $stem.c<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>
Override flag settings in the mkfile:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>% mk target 'CFLAGS=&#8722;S &#8722;w'<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Maintain a library:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>libc.a(%.$O):N: &nbsp;&nbsp;&nbsp;%.$O<br>
libc.a: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;libc.a(abs.$O) libc.a(access.$O) libc.a(alarm.$O) ...<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
ar r libc.a $newmember<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>
String expression variables to derive names from a master list:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>NAMES=alloc arc bquote builtins expand main match mk var word<br>
OBJ=${NAMES:%=%.$O}<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Regular expression meta-rules:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>([^/]*)/(.*)\.$O:R: &nbsp;&nbsp;&nbsp;\1/\2.c<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
cd $stem1; $CC $CFLAGS $stem2.c<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 correct way to deal with <a href="../man1/yacc.html"><i>yacc</i>(1)</a> grammars. The file <tt><font size=+1>lex.c</font></tt> includes
the file <tt><font size=+1>x.tab.h</font></tt> rather than <tt><font size=+1>y.tab.h</font></tt> in order to reflect changes
in content, not just modification time.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>lex.$O: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x.tab.h<br>
x.tab.h: &nbsp;&nbsp;&nbsp;&nbsp;y.tab.h<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
cmp &#8722;s x.tab.h y.tab.h || cp y.tab.h x.tab.h<br>
</table>
y.tab.c y.tab.h: gram.y<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
$YACC &#8722;d gram.y<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>
The above example could also use the <tt><font size=+1>P</font></tt> attribute for the <tt><font size=+1>x.tab.h</font></tt>
rule:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>x.tab.h:Pcmp &#8722;s: y.tab.h<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
cp y.tab.h x.tab.h<br>
</table>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/mk<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/sh.html"><i>sh</i>(1)</a>, <a href="../man7/regexp.html"><i>regexp</i>(7)</a>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A. Hume, &#8220;Mk: a Successor to Make&#8221; (Tenth Edition Research Unix
Manuals).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Andrew G. Hume and Bob Flandrena, &#8220;Maintaining Files on Plan 9
with Mk&#8221;. DOCPREFIX/doc/mk.pdf<br>
</table>
<p><font size=+1><b>HISTORY </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Andrew Hume wrote <i>mk</i> for Tenth Edition Research Unix. It was later
ported to Plan 9. This software is a port of the Plan 9 version
back to Unix.<br>
</table>
<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>
Identical recipes for regular expression meta-rules only have
one target.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Seemingly appropriate input like <tt><font size=+1>CFLAGS=&#8722;DHZ=60</font></tt> is parsed as an
erroneous attribute; correct it by inserting a space after the
first <tt><font size=+1>=</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The recipes printed by <i>mk</i> before being passed to the shell for
execution are sometimes erroneously expanded for printing. Don&#8217;t
trust what&#8217;s printed; rely on what the shell does.<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>

232
man/man1/mk9660.1 Normal file
View File

@ -0,0 +1,232 @@
.TH MK9660 1
.SH NAME
dump9660, mk9660 \- create an ISO-9660 CD image
.SH SYNOPSIS
.B mk9660
[
.B -:D
]
[
.B -9cjr
]
[
.B -b
.I bootfile
]
[
.B -p
.I proto
]
[
.B -s
src
]
[
.B -v
volume
]
.I image
.PP
.B dump9660
[
.B -:D
]
[
.B -9cjr
]
[
.B -p
.I proto
]
[
.B -s
src
]
[
.B -v
volume
]
[
.B -m
.I maxsize
]
[
.B -n
.I now
]
.I image
.SH DESCRIPTION
.I Mk9660
writes to the random access file
.I image
an ISO-9660 CD image containing the
files named in
.I proto
(by default,
.BR \*9/proto/allproto )
from the file tree
.I src
(by default,
the current directory).
The
.I proto
file is formatted as described in
.IR proto (3).
.PP
The created CD image will be in ISO-9660
format, but by default the file names will
be stored in UTF-8 with no imposed length
or character restrictions.
The
.B -c
flag causes
.I mk9660
to use only file names in ``8.3'' form
that use digits, letters, and underscore.
File names that do not conform are changed
to
.BI D nnnnnn
(for directories)
or
.BI F nnnnnn
(for files);
a key file
.B _CONFORM.MAP
is created in the root
directory to ease the reverse process.
.PP
If the
.B -9
flag is given, the system use fields at the end of
each directory entry will be populated with
Plan directory information (owner, group, mode,
full name); this is interpreted by
.IR 9660srv .
.PP
If the
.B -j
flag is given, the usual directory tree is written,
but an additional tree in Microsoft Joliet format is
also added.
This second tree can contain long Unicode file names,
and can be read by
.I 9660srv
as well as most versions of Windows
and many Unix clones.
The characters
.BR * ,
.BR : ,
.BR ; ,
.BR ? ,
and
.B \e
are allowed in Plan 9 file names but not in Joliet file names;
non-conforming file names are translated
and a
.B _CONFORM.MAP
file written
as in the case of the
.B -c
option.
.PP
If the
.B -r
flag is given, Rock Ridge extensions are written in the
format of the system use sharing protocol;
this format provides Posix-style file metadata and is
common on Unix platforms.
.PP
The options
.BR -c ,
.BR -9 ,
.BR -j ,
and
.B -r
may be mixed freely with the exception that
.B -9
and
.B -r
are mutually exclusive.
.PP
The
.B -v
flag sets the volume title;
if unspecified, the base name of
.I proto
is used.
.PP
The
.B -:
flag causes
.B mk9660
to replace colons in scanned file names with spaces;
this is the inverse of the map applied by Plan 9's
\fIdossrv\fR(4)
and is useful for writing Joliet CDs containing data
from FAT file systems.
.PP
The
.B -b
option creates a bootable CD.
Bootable CDs contain pointers to floppy images which are
loaded and booted by the BIOS.
.I Bootfile
should be the name of the floppy image to use;
it is a path relative to the root of the created CD.
That is, the boot floppy image must be listed in the
.I proto
file already:
the
.B -b
flag just creates a pointer to it.
.PP
The
.B -D
flag creates immense amounts of debugging output
on standard error.
.PP
.I Dump9660
is similar in specification to
.I mk9660
but creates and updates backup CD images in the style of
the
.I dump
file system
(see Plan 9's \fIfs\fR(4)).
The dump is file-based rather than block-based:
if a file's contents have not changed since the last
backup, only its directory entry will be rewritten.
.PP
The
.B -n
option specifies a time (in seconds since January 1, 1970)
to be used for naming the dump directory.
.PP
The
.B -m
option specifies a maximum size for the image;
if a backup would cause the image to grow larger than
.IR maxsize ,
it will not be written, and
.I dump9660
will exit with a non-empty status.
.SH EXAMPLE
.PP
Create an image of the Plan 9 source tree,
including a conformant ISO-9660 directory tree,
Plan 9 extensions in the system use fields, and
a Joliet directory tree.
.IP
.EX
mk9660 -9cj -s /n/bootes -p srcproto cdimage
.EE
.SH SOURCE
\*9/src/cmd/9660
.SH "SEE ALSO
.IR proto (3)
.\" .SH "SEE ALSO"
.\" .I 9660srv
.\" (in
.\" .IR dossrv (4)),
.\" .IR cdfs (4),
.\" .IR proto (3)

79
man/man1/mkdir.html Normal file
View File

@ -0,0 +1,79 @@
<head>
<title>mkdir(1) - 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>MKDIR(1)</b><td align=right><b>MKDIR(1)</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>
mkdir &ndash; make a directory<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>mkdir</font></tt> [ <tt><font size=+1>&#8722;p</font></tt> ] [ <tt><font size=+1>&#8722;m</font></tt> <i>mode</i> ] <i>dirname ...<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>
<i>Mkdir</i> creates the specified directories. It requires write permission
in the parent directory.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the <tt><font size=+1>&#8722;p</font></tt> flag is given, <i>mkdir</i> creates any necessary parent directories
and does not complain if the target directory already exists.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;m</font></tt> flag sets the permissions to be used when creating the
directory. The default is 0777.<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/rm.html"><i>rm</i>(1)</a><br>
<i>cd</i> in <a href="../man1/rc.html"><i>rc</i>(1)</a><br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/mkdir.c<br>
</font></tt>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>Mkdir</i> returns null exit status if all directories were successfully
made. Otherwise it prints a diagnostic and returns <tt><font size=+1>&quot;error&quot;</font></tt> status.<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>

61
man/man1/namespace.html Normal file
View File

@ -0,0 +1,61 @@
<head>
<title>namespace(1) - 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>NAMESPACE(1)</b><td align=right><b>NAMESPACE(1)</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>
namespace &ndash; print name space directory<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>namespace<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>
<i>Namespace</i> prints the directory representing the current name space.
See <a href="../man4/intro.html"><i>intro</i>(4)</a>.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/namespace.c<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/getns.html"><i>getns</i>(3)</a>, <a href="../man4/intro.html"><i>intro</i>(4)</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>

91
man/man1/news.html Normal file
View File

@ -0,0 +1,91 @@
<head>
<title>news(1) - 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>NEWS(1)</b><td align=right><b>NEWS(1)</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>
news &ndash; print news items<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>news</font></tt> [ <tt><font size=+1>&#8722;a</font></tt> ] [ <tt><font size=+1>&#8722;n</font></tt> ] [ <i>item ...</i> ]<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>
When invoked without options, this simple local news service prints
files that have appeared in <tt><font size=+1>/lib/news</font></tt> since last reading, most
recent first, with each preceded by an appropriate header. The
time of reading is recorded. The options are<br>
<tt><font size=+1>&#8722;a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print all items, regardless of currency. The recorded time is
not changed.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Report the names of the current items without printing their
contents, and without changing the recorded time.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Other arguments select particular news items.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
To post a news item, create a file in <tt><font size=+1>/usr/local/plan9/news</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Empty news items, and news items named <tt><font size=+1>core</font></tt> or <tt><font size=+1>dead.letter</font></tt> are
ignored.<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/news/*<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
articles<br>
</table>
<tt><font size=+1>$HOME/lib/newstime<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
modify time is time news was last read who gets news mailed to
them<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/news.c<br>
</font></tt>
</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>

63
man/man1/p.html Normal file
View File

@ -0,0 +1,63 @@
<head>
<title>p(1) - 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>P(1)</b><td align=right><b>P(1)</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>
p &ndash; paginate<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>p</font></tt> [ <tt><font size=+1>&#8722;</font></tt><i>number</i> ] [ <i>file ...</i> ]<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>
<i>P</i> copies its standard input, or the named files if given, to its
standard output, stopping at the end of every 22nd line, and between
files, to wait for a newline from the user. The option sets the
<i>number</i> of lines on a page.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
While waiting for a newline, <i>p</i> interprets the commands:<br>
<tt><font size=+1>!</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pass the rest of the line to the shell as a command.<br>
<tt><font size=+1>q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quit.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/p.c<br>
</font></tt>
</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>

97
man/man1/page.html Normal file
View File

@ -0,0 +1,97 @@
<head>
<title>page(1) - 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>PAGE(1)</b><td align=right><b>PAGE(1)</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>
img, psv &ndash; view FAX, image, graphic, PostScript, PDF, and typesetter
output files<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>page</font></tt> [ <i>file</i>... ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>img</font></tt> <i>file.bit
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>psv</font></tt> <i>file.ps
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>psv</font></tt> <i>file.pdf<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>
Plan 9&#8217;s <a href="../man1/page.html"><i>page</i>(1)</a> is not ported. Instead, <i>page</i> is a script that
invokes <a href="../man1/qiv.html"><i>qiv</i>(1)</a> to view graphic files or <i>psv</i> to view PostScript
and PDF. On Mac OS X, <i>page</i> invokes Preview to handle all files.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Img</i> is a simple image viewer for Plan 9 images (see <a href="../man7/image.html"><i>image</i>(7)</a>).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Psv</i> is a PostScript and PDF viewer. It is a streamlined interface
to <a href="../man1/gv.html"><i>gv</i>(1)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
To view troff output, use <a href="../man1/proof.html"><i>proof</i>(1)</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="../man1/gs.html"><i>gs</i>(1)</a>, <a href="../man1/gv.html"><i>gv</i>(1)</a>, <a href="../man1/jpg.html"><i>jpg</i>(1)</a>, <a href="../man1/proof.html"><i>proof</i>(1)</a>, <a href="../man1/tex.html"><i>tex</i>(1)</a>, <a href="../man1/troff.html"><i>troff</i>(1)</a><br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/draw/img.c<br>
/usr/local/plan9/bin/psv<br>
</font></tt>
</table>
<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>
When using Preview on Mac OS X, <i>page</i> leaves temporary files in
<tt><font size=+1>/var/tmp</font></tt>, since it has no way to know when the viewer has exited.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Page</i> does not handle Plan 9 <a href="../man7/image.html"><i>image</i>(7)</a> files; use <i>img</i> explicitly.<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>

435
man/man1/pic.html Normal file
View File

@ -0,0 +1,435 @@
<head>
<title>pic(1) - 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>PIC(1)</b><td align=right><b>PIC(1)</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>
pic, tpic &ndash; troff and tex preprocessors for drawing pictures<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>pic</font></tt> [ <i>files</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>tpic</font></tt> [ <i>files</i> ]<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>
<i>Pic</i> is a <a href="../man1/troff.html"><i>troff</i>(1)</a> preprocessor for drawing figures on a typesetter.
<i>Pic</i> code is contained between <tt><font size=+1>.PS</font></tt> and <tt><font size=+1>.PE</font></tt> lines:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>.PS</font></tt> <i>optional-width optional-height<br>
element-list<br>
</i><tt><font size=+1>.PE<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
or in a file mentioned in a <tt><font size=+1>.PS</font></tt> line:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>.PS &lt;</font></tt><i>file
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
</table>
If <i>optional-width</i> is present, the picture is made that many inches
wide, regardless of any dimensions used internally. The height
is scaled in the same proportion unless <i>optional-height</i> is present.
If <tt><font size=+1>.PF</font></tt> is used instead of <tt><font size=+1>.PE</font></tt>, the typesetting position after
printing is restored to what it was upon entry.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An <i>element-list</i> is a list of elements:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>primitive attribute-list<br>
placename</i> <tt><font size=+1>:</font></tt> <i>element<br>
placename</i> <tt><font size=+1>:</font></tt> <i>position<br>
var</i> <tt><font size=+1>=</font></tt> <i>expr<br>
direction<br>
</i><tt><font size=+1>{</font></tt> <i>element-list</i> <tt><font size=+1>}<br>
[</font></tt> <i>element-list</i> <tt><font size=+1>]<br>
for</font></tt> <i>var</i> <tt><font size=+1>=</font></tt> <i>expr</i> <tt><font size=+1>to</font></tt> <i>expr</i> <tt><font size=+1>by</font></tt> <i>expr</i> <tt><font size=+1>do {</font></tt> <i>anything</i> <tt><font size=+1>}<br>
if</font></tt> <i>expr</i> <tt><font size=+1>then {</font></tt> <i>anything</i> <tt><font size=+1>} else {</font></tt> <i>anything</i> <tt><font size=+1>}<br>
copy</font></tt> <i>file, </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;copy thru</font></tt> <i>macro, </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;copy</font></tt> <i>file</i> <tt><font size=+1>thru</font></tt> <i>macro<br>
</i><tt><font size=+1>sh {</font></tt> <i>commandline</i> <tt><font size=+1>}<br>
print</font></tt> <i>expr<br>
</i><tt><font size=+1>reset</font></tt> <i>optional var-list<br>
troff-command<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
</table>
Elements are separated by newlines or semicolons; a long element
may be continued by ending the line with a backslash. Comments
are introduced by a <tt><font size=+1>#</font></tt> and terminated by a newline. Variable names
begin with a lower case letter; place names begin with upper case.
Place and variable names retain their values from
one picture to the next.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
After each primitive the current position moves in the current
direction (<tt><font size=+1>up</font></tt>,<tt><font size=+1>down</font></tt>, <tt><font size=+1>left</font></tt>,<tt><font size=+1>right</font></tt> (default)) by the size of the primitive.
The current position and direction are saved upon entry to a <tt><font size=+1>{</font></tt>...<tt><font size=+1>}</font></tt>
block and restored upon exit. Elements within a block enclosed
in <tt><font size=+1>[</font></tt>...<tt><font size=+1>]</font></tt> are treated as a unit; the dimensions are
determined by the extreme points of the contained objects. Names,
variables, and direction of motion within a block are local to
that block.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Troff-command</i> is any line that begins with a period. Such a line
is assumed to make sense in the context where it appears; generally,
this means only size and font changes.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <i>primitive</i> objects are:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>box &nbsp;&nbsp;&nbsp;circle &nbsp;&nbsp;&nbsp;ellipse &nbsp;&nbsp;&nbsp;arc &nbsp;&nbsp;&nbsp;line &nbsp;&nbsp;&nbsp;arrow &nbsp;&nbsp;&nbsp;spline &nbsp;&nbsp;&nbsp;move </font></tt><i>&nbsp;&nbsp;&nbsp;text-list<br>
</i>
</table>
<tt><font size=+1>arrow</font></tt> is a synonym for <tt><font size=+1>line &#8722;&gt;</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An <i>attribute-list</i> is a sequence of zero or more attributes; each
attribute consists of a keyword, perhaps followed by a value.<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>
<tt><font size=+1>h(eigh)t</font></tt> <i>expr </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wid(th)</font></tt> <i>expr<br>
</i><tt><font size=+1>rad(ius)</font></tt> <i>expr </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diam(eter)</font></tt> <i>expr<br>
</i><tt><font size=+1>up</font></tt> <i>opt-expr </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down</font></tt> <i>opt-expr<br>
</i><tt><font size=+1>right</font></tt> <i>opt-expr </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left</font></tt> <i>opt-expr<br>
</i><tt><font size=+1>from</font></tt> <i>position </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to</font></tt> <i>position<br>
</i><tt><font size=+1>at</font></tt> <i>position </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with</font></tt> <i>corner<br>
</i><tt><font size=+1>by</font></tt> <i>expr, expr </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then<br>
dotted</font></tt> <i>opt-expr </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dashed</font></tt> <i>opt-expr<br>
</i><tt><font size=+1>chop</font></tt> <i>opt-expr </i><tt><font size=+1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8722;&gt; &nbsp;&nbsp;&nbsp;&lt;&#8722; &nbsp;&nbsp;&nbsp;&lt;&#8722;&gt;<br>
invis &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;same<br>
fill</font></tt> <i>opt-expr<br>
text-list &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;expr<br>
</i>
</table>
</table>
Missing attributes and values are filled in from defaults. Not
all attributes make sense for all primitives; irrelevant ones
are silently ignored. The attribute <tt><font size=+1>at</font></tt> causes the geometrical
center to be put at the specified place; <tt><font size=+1>with</font></tt> causes the position
on the object to be put at the specified place. For lines, splines
and
arcs, <tt><font size=+1>height</font></tt> and <tt><font size=+1>width</font></tt> refer to arrowhead size. A bare <i>expr</i> implies
motion in the current direction.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Text is normally an attribute of some primitive; by default it
is placed at the geometrical center of the object. Stand-alone
text is also permitted. A text list is a list of text items:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>text-item</i><tt><font size=+1>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
&quot;...&quot;
</table>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>positioning ...<br>
</i><tt><font size=+1>sprintf(&quot;</font></tt><i>format</i><tt><font size=+1>&quot;,</font></tt> <i>expr</i><tt><font size=+1>,</font></tt> <i>...</i><tt><font size=+1>)</font></tt> <i>positioning ...<br>
</i>
</table>
<i> positioning</i><tt><font size=+1>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
center &nbsp;&nbsp;&nbsp;ljust &nbsp;&nbsp;&nbsp;rjust &nbsp;&nbsp;&nbsp;above &nbsp;&nbsp;&nbsp;below<br>
</table>
</font></tt>
</table>
If there are multiple text items for some primitive, they are
arranged vertically and centered except as qualified. Positioning
requests apply to each item independently. Text items may contain
<i>troff</i> commands for size and font changes, local motions, etc.,
but make sure that these are balanced so that the entering state
is restored before exiting.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A position is ultimately an <i>x,y</i> coordinate pair, but it may be
specified in other ways.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>position</i><tt><font size=+1>:<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>expr, expr<br>
place </i><tt><font size=+1>&plusmn;</font></tt> <i>expr, expr<br>
place </i><tt><font size=+1>&plusmn; (</font></tt> <i>expr, expr</i> <tt><font size=+1>)<br>
(</font></tt> <i>position</i><tt><font size=+1>,</font></tt> <i>position</i> <tt><font size=+1>) </font></tt><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</i> from one, <i>y</i> the other<br>
<i>expr</i> [<tt><font size=+1>of the way</font></tt>] between <i>position</i> and <i>position<br>
expr </i>&lt; <i>position</i> , <i>position </i>&gt;<br>
( <i>position</i> )<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<i>place</i><tt><font size=+1>:<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>placename optional-corner<br>
corner</i> <tt><font size=+1>of</font></tt> <i>placename<br>
nth primitive optional-corner<br>
corner</i> <tt><font size=+1>of</font></tt> <i>nth primitive<br>
</i><tt><font size=+1>Here<br>
</font></tt>
</table>
</table>
An <i>optional-corner</i> is one of the eight compass points or the center
or the start or end of a primitive.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>optional-corner</i><tt><font size=+1>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
.n &nbsp;&nbsp;&nbsp;.e &nbsp;&nbsp;&nbsp;.w &nbsp;&nbsp;&nbsp;.s &nbsp;&nbsp;&nbsp;.ne &nbsp;&nbsp;&nbsp;.se &nbsp;&nbsp;&nbsp;.nw &nbsp;&nbsp;&nbsp;.sw &nbsp;&nbsp;&nbsp;.c &nbsp;&nbsp;&nbsp;.start &nbsp;&nbsp;&nbsp;.end<br>
</table>
</font></tt> <i>corner</i><tt><font size=+1>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
top &nbsp;&nbsp;&nbsp;bot &nbsp;&nbsp;&nbsp;left &nbsp;&nbsp;&nbsp;right &nbsp;&nbsp;&nbsp;start &nbsp;&nbsp;&nbsp;end<br>
</table>
</font></tt>
</table>
Each object in a picture has an ordinal number; <i>nth</i> refers to
this.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>nth</i><tt><font size=+1>:<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>n</i><tt><font size=+1>th</font></tt><i>, &nbsp;&nbsp;&nbsp;n</i><tt><font size=+1>th last<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
</table>
The built-in variables and their default values are:<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>
<tt><font size=+1>boxwid 0.75 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boxht 0.5<br>
circlerad 0.25 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arcrad 0.25<br>
ellipsewid 0.75 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ellipseht 0.5<br>
linewid 0.5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lineht 0.5<br>
movewid 0.5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveht 0.5<br>
textwid 0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textht 0<br>
arrowwid 0.05 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrowht 0.1<br>
dashwid 0.1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrowhead 2<br>
scale 1<br>
</font></tt>
</table>
</table>
These may be changed at any time, and the new values remain in
force from picture to picture until changed again or reset by
a <tt><font size=+1>reset</font></tt> statement. Variables changed within <tt><font size=+1>[</font></tt> and <tt><font size=+1>]</font></tt> revert to
their previous value upon exit from the block. Dimensions are
divided by <tt><font size=+1>scale</font></tt> during output.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Expressions in <i>pic</i> are evaluated in floating point. All numbers
representing dimensions are taken to be in inches.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>expr</i><tt><font size=+1>:<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>expr op expr<br>
</i><tt><font size=+1>&#8722;</font></tt> <i>expr<br>
</i><tt><font size=+1>!</font></tt> <i>expr<br>
</i><tt><font size=+1>(</font></tt> <i>expr</i> <tt><font size=+1>)<br>
variable<br>
number<br>
</font></tt><i>place</i> <tt><font size=+1>.x </font></tt><i>&nbsp;&nbsp;&nbsp;place</i> <tt><font size=+1>.y </font></tt><i>&nbsp;&nbsp;&nbsp;place</i> <tt><font size=+1>.ht </font></tt><i>&nbsp;&nbsp;&nbsp;place</i> <tt><font size=+1>.wid </font></tt><i>&nbsp;&nbsp;&nbsp;place</i> <tt><font size=+1>.rad<br>
sin(</font></tt><i>expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;cos(</font></tt><i>expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;atan2(</font></tt><i>expr,expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;log(</font></tt><i>expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;exp(</font></tt><i>expr</i><tt><font size=+1>)<br>
sqrt(</font></tt><i>expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;max(</font></tt><i>expr,expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;min(</font></tt><i>expr,expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;int(</font></tt><i>expr</i><tt><font size=+1>) &nbsp;&nbsp;&nbsp;rand()<br>
</font></tt>
</table>
<i>op</i><tt><font size=+1>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
+ &nbsp;&nbsp;&nbsp;&#8722; &nbsp;&nbsp;&nbsp;* &nbsp;&nbsp;&nbsp;/ &nbsp;&nbsp;&nbsp;% &nbsp;&nbsp;&nbsp;&lt; &nbsp;&nbsp;&nbsp;&lt;= &nbsp;&nbsp;&nbsp;&gt; &nbsp;&nbsp;&nbsp;&gt;= &nbsp;&nbsp;&nbsp;== &nbsp;&nbsp;&nbsp;!= &nbsp;&nbsp;&nbsp;&amp;&amp; &nbsp;&nbsp;&nbsp;||<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>
The <tt><font size=+1>define</font></tt> and <tt><font size=+1>undef</font></tt> statements are not part of the grammar.<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>
<tt><font size=+1>define</font></tt> <i>name</i> <tt><font size=+1>{</font></tt> <i>replacement text</i> <tt><font size=+1>}<br>
undef</font></tt> <i>name<br>
</i>
</table>
</table>
Occurrences of <tt><font size=+1>$1</font></tt>, <tt><font size=+1>$2</font></tt>, etc., in the replacement text will be replaced
by the corresponding arguments if <i>name</i> is invoked as<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>
<i>name</i><tt><font size=+1>(</font></tt><i>arg1</i><tt><font size=+1>,</font></tt> <i>arg2</i><tt><font size=+1>, ...)<br>
</font></tt>
</table>
</table>
Non-existent arguments are replaced by null strings. Replacement
text may contain newlines. The <tt><font size=+1>undef</font></tt> statement removes the definition
of a macro.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Tpic</i> is a <a href="../man1/tex.html"><i>tex</i>(1)</a> preprocessor that accepts <i>pic</i> language. It produces
Tex commands that define a box called <tt><font size=+1>\graph</font></tt>, which contains the
picture. The box may be output this way:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>\centerline{\box\graph}<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>arrow &quot;input&quot; above; box &quot;process&quot;; arrow &quot;output&quot; above<br>
move<br>
A: ellipse <br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
circle rad .1 with .w at A.e<br>
circle rad .05 at 0.5 &lt;A.c, A.ne&gt;<br>
circle rad .065 at 0.5 &lt;A.c, A.ne&gt;<br>
spline from last circle.nw left .25 then left .05 down .05<br>
arc from A.c to A.se rad 0.5<br>
for i = 1 to 10 do { line from A.s+.025*i,.01*i down i/50 } <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>
arrow &quot;input&quot; above; box &quot;process&quot;; arrow &quot;output&quot; above move A: ellipse<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
circle rad .1 with .w at A.e<br>
circle rad .05 at 0.5 &lt;A.c, A.ne&gt;<br>
circle rad .065 at 0.5 &lt;A.c, A.ne&gt;<br>
spline from last circle.nw left .25 then left .05 down .05<br>
arc from A.c to A.se rad 0.5<br>
for i = 1 to 10 do { line from A.s+.025*i,.01*i down i/50 }<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/pic<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/grap.html"><i>grap</i>(1)</a>, <a href="../man1/doctype.html"><i>doctype</i>(1)</a>, <a href="../man1/troff.html"><i>troff</i>(1)</a><br>
B. W. Kernighan, &#8220;PIC--a Graphics Language for Typesetting&#8221;, <i>Unix
Research System Programmer&#8217;s Manual,</i> Tenth Edition, Volume 2<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>

88
man/man1/plot.html Normal file
View File

@ -0,0 +1,88 @@
<head>
<title>plot(1) - 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(1)</b><td align=right><b>PLOT(1)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
plot &ndash; graphics filter<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>plot</font></tt> [ <i>file ...</i> ]<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>
<i>Plot</i> interprets plotting instructions (see <a href="../man7/plot.html"><i>plot</i>(7)</a>) from the <i>files</i>
or standard input, drawing the results in a newly created <a href="../man1/rio.html"><i>rio</i>(1)</a>
window. Plot persists until a newline is typed in the window.
Various options may be interspersed with the <i>file</i> arguments; they
take effect at the given point in processing. Options are:
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Double buffer: accumulate the plot off-screen and write to the
screen all at once when an erase command is encountered or at
end of file.<br>
<tt><font size=+1>&#8722;e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Erase the screen.<br>
<tt><font size=+1>&#8722;c</font></tt> <i>col</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the foreground color (see <a href="../man7/plot.html"><i>plot</i>(7)</a> for color names).<br>
<tt><font size=+1>&#8722;f</font></tt> <i>fill</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the background color.<br>
<tt><font size=+1>&#8722;g</font></tt> <i>grade</i>&nbsp;&nbsp;&nbsp;Set the quality factor for arcs. Higher grades give better
quality.<br>
<tt><font size=+1>&#8722;p</font></tt> <i>col</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the pen color.<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pause until a newline is typed on standard input.<br>
<tt><font size=+1>&#8722;C</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the current plot.<br>
<tt><font size=+1>&#8722;W &nbsp;&nbsp;&nbsp;x0,y0,x1,y1<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>
Specify the bounding rectangle of plot&#8217;s window. By default it
uses a 512x512 window in the middle of the screen.<br>
</table>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/plot<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/rio.html"><i>rio</i>(1)</a>, <a href="../man7/plot.html"><i>plot</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>

80
man/man1/plumb.html Normal file
View File

@ -0,0 +1,80 @@
<head>
<title>plumb(1) - 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(1)</b><td align=right><b>PLUMB(1)</b>
<tr><td width=20><td colspan=2>
<br>
<p><font size=+1><b>NAME </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
plumb &ndash; send message to plumber<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>plumb</font></tt> [ <tt><font size=+1>&#8722;p</font></tt> <i>plumbfile</i> ] [ <tt><font size=+1>&#8722;a</font></tt> <i>attributes</i> ] [ <tt><font size=+1>&#8722;s</font></tt> <i>source</i> ] [ <tt><font size=+1>&#8722;d</font></tt> <i>destination</i>
] [ <tt><font size=+1>&#8722;t</font></tt> <i>type</i> ] [ <tt><font size=+1>&#8722;w</font></tt> <i>directory</i> ] <tt><font size=+1>&#8722;i</font></tt> | <i>data...<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>
The <i>plumb</i> command formats and sends a plumbing message whose data
is, by default, the concatenation of the argument strings separated
by blanks. The options are:<br>
<tt><font size=+1>&#8722;p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;write the message to <i>plumbfile</i> (default <tt><font size=+1>/mnt/plumb/send</font></tt>).<br>
<tt><font size=+1>&#8722;a</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;set the <tt><font size=+1>attr</font></tt> field of the message (default is empty).<br>
<tt><font size=+1>&#8722;s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;set the <tt><font size=+1>src</font></tt> field of the message (default is <tt><font size=+1>plumb</font></tt>).<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;set the <tt><font size=+1>dst</font></tt> field of the message (default is empty).<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;set the <tt><font size=+1>type</font></tt> field of the message (default is <tt><font size=+1>text</font></tt>).<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;set the <tt><font size=+1>wdir</font></tt> field of the message (default is the current working
directory of <i>plumb</i>).<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;take the data from standard input rather than the argument strings.
If an <tt><font size=+1>action=</font></tt> attribute is not otherwise specified, <i>plumb</i> will
add an <tt><font size=+1>action=showdata</font></tt> attribute to the message.<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>$HOME/lib/plumbing</font></tt>&nbsp;&nbsp;&nbsp;default rules file<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/plumb<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/plumb.html"><i>plumb</i>(3)</a>, <a href="../man4/plumber.html"><i>plumber</i>(4)</a>, <a href="../man7/plumb.html"><i>plumb</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>

90
man/man1/pr.html Normal file
View File

@ -0,0 +1,90 @@
<head>
<title>pr(1) - 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>PR(1)</b><td align=right><b>PR(1)</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>
pr &ndash; print file<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>pr</font></tt> [ <i>option ...</i> ] [ <i>file ...</i> ]<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>
<i>Pr</i> produces a printed listing of one or more <i>files</i> on its standard
output. The output is separated into pages headed by a date, the
name of the file or a specified header, and the page number. With
no file arguments, <i>pr</i> prints its standard input.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Options apply to all following files but may be reset between
files:<br>
<tt><font size=+1>&#8722;</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;Produce <i>n</i>-column output.<br>
<tt><font size=+1>+</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;Begin printing with page <i>n</i>.<br>
<tt><font size=+1>&#8722;b</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Balance columns on last page, in case of multi-column output.<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Double space.<br>
<tt><font size=+1>&#8722;e</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;Set the tab stops for input text every <i>n</i> spaces.<br>
<tt><font size=+1>&#8722;h</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Take the next argument as a page header (<i>file</i> by default).<br>
<tt><font size=+1>&#8722;i</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;Replace sequences of blanks in the output by tabs, using tab
stops set every <i>n</i> spaces.<br>
<tt><font size=+1>&#8722;f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Use form feeds to separate pages.<br>
<tt><font size=+1>&#8722;l</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;Take the length of the page to be <i>n</i> lines instead of the default
66.<br>
<tt><font size=+1>&#8722;m</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print all <i>files</i> simultaneously, each in one column.<br>
<tt><font size=+1>&#8722;n</font></tt><i>m</i>&nbsp;&nbsp;&nbsp;Number the lines of each <i>file</i>. The numeric argument <i>m</i>, default
5, sets the width of the line-number field.<br>
<tt><font size=+1>&#8722;o</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;Offset the left margin <i>n</i> character positions.<br>
<tt><font size=+1>&#8722;p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Pad each file printed to an odd number of pages. For two-sided
printers, this will ensure each file will start a new page.<br>
<tt><font size=+1>&#8722;s</font></tt><i>c</i>&nbsp;&nbsp;&nbsp;Separate columns by the single character <i>c</i> instead of aligning
them with white space. A missing <i>c</i> is taken to be a tab.<br>
<tt><font size=+1>&#8722;t</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Do not print the 5-line header or the 5-line trailer normally
supplied for each page.<br>
<tt><font size=+1>&#8722;w</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;For multi-column output, take the width of the page to be <i>n</i>
characters instead of the default 72.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/pr.c<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/cat.html"><i>cat</i>(1)</a>, <a href="../man1/lp.html"><i>lp</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>

119
man/man1/proof.html Normal file
View File

@ -0,0 +1,119 @@
<head>
<title>proof(1) - 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>PROOF(1)</b><td align=right><b>PROOF(1)</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>
proof &ndash; troff output interpreter<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>proof</font></tt> [ <tt><font size=+1>&#8722;m</font></tt><i>mag</i> ] [ <tt><font size=+1>&#8722;/</font></tt><i>nview</i> ] [ <tt><font size=+1>&#8722;F</font></tt> <i>dir</i> ] [ <tt><font size=+1>&#8722;d</font></tt> ] [ <i>file</i> ]<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>
<i>Proof</i> reads <a href="../man1/troff.html"><i>troff</i>(1)</a> intermediate language from <i>file</i> or standard
input and simulates the resulting pages on the screen.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
After a page of text is displayed, <i>proof</i> pauses for a command
from the keyboard. The typed commands are:<br>
newlineGo on to next page of text.<br>
<tt><font size=+1>&#8722;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Go back to the previous page.<br>
<tt><font size=+1>q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quit.<br>
<tt><font size=+1>p</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print page <i>n</i>. An out-of-bounds page number means the end nearer
to that number; a missing number means the current page; a signed
number means an offset to the current page.<br>
<i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <tt><font size=+1>p</font></tt><i>n</i>.<br>
<tt><font size=+1>c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear the screen, then wait for another command.<br>
<tt><font size=+1>m</font></tt><i>mag</i>&nbsp;&nbsp;&nbsp;Change the magnification at which the output is printed. Normally
it is printed with magnification .9; <i>mag</i>=.5 shrinks it to half
size; <i>mag</i>=2 doubles the size.<br>
<tt><font size=+1>x</font></tt><i>val</i>&nbsp;&nbsp;&nbsp;&nbsp;Move everything <i>val</i> screen pixels to the right (left, if <i>val</i>
is negative).<br>
<tt><font size=+1>y</font></tt><i>val</i>&nbsp;&nbsp;&nbsp;&nbsp;Move everything <i>val</i> screen pixels down (up, if <i>val</i> is negative).<br>
<tt><font size=+1>/</font></tt><i>nview</i>&nbsp;&nbsp;&nbsp;Split the window into <i>nview</i> pieces. The current page goes
into the rightmost, bottommost piece, and previous pages are shown
in the other pieces.<br>
<tt><font size=+1>&#8722;F</font></tt> <i>dir</i>Use <i>dir</i> for fonts instead of <tt><font size=+1>/lib/font/bit</font></tt>.<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Toggle the debug flag.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
These commands are also available, under slightly different form,
from a menu on button 3. The <tt><font size=+1>pan</font></tt> menu item allows arbitrary positioning
of the page: after selecting <tt><font size=+1>pan</font></tt>, press the mouse button again
and hold it down while moving the page to the desired location.
The page will be redisplayed in its entirety when
the button is released. Mouse button 1 also pans, without the
need for selecting from a menu.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>m</font></tt>, <tt><font size=+1>x</font></tt>, <tt><font size=+1>y</font></tt>, <tt><font size=+1>F</font></tt>, <tt><font size=+1>/</font></tt>, and <tt><font size=+1>d</font></tt> commands are also available as command
line options.<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/*<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
fonts<br>
</table>
<tt><font size=+1>/usr/local/plan9/font/MAP<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
how to convert troff output fonts and character names into screen
fonts and character numbers<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/proof<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/lp.html"><i>lp</i>(1)</a>, <a href="../man1/gs.html"><i>gs</i>(1)</a>, <a href="../man1/page.html"><i>page</i>(1)</a><br>
J. F. Ossanna and B. W. Kernighan, &#8220;Troff User&#8217;s Manual&#8221;<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>

95
man/man1/ps.html Normal file
View File

@ -0,0 +1,95 @@
<head>
<title>ps(1) - 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>PS(1)</b><td align=right><b>PS(1)</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>
ps, psu &ndash; process status<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>ps</font></tt> [ <tt><font size=+1>&#8722;pa</font></tt> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>psu</font></tt> [ <tt><font size=+1>&#8722;pa</font></tt> ] [ <i>user</i> ]<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>
<i>Ps</i> prints information about processes. <i>Psu</i> prints only information
about processes started by <i>user</i> (default <tt><font size=+1>$USER</font></tt>).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
For each process reported, the user, process id, user time, system
time, size, state, and command name are printed. State is one
of the following:<br>
<tt><font size=+1>Moribund</font></tt>&nbsp;&nbsp;&nbsp;Process has exited and is about to have its resources
reclaimed.<br>
<tt><font size=+1>Ready</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on the queue of processes ready to be run.<br>
<tt><font size=+1>Scheding</font></tt>&nbsp;&nbsp;&nbsp;about to be run.<br>
<tt><font size=+1>Running</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;running.<br>
<tt><font size=+1>Queueing</font></tt>&nbsp;&nbsp;&nbsp;waiting on a queue for a resource.<br>
<tt><font size=+1>Wakeme</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;waiting for I/O or some other kernel event to wake it up.<br>
<tt><font size=+1>Broken</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dead of unnatural causes; lingering so that it can be examined.<br>
<tt><font size=+1>Stopped</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;stopped.<br>
<tt><font size=+1>Stopwait</font></tt>&nbsp;&nbsp;&nbsp;waiting for another process to stop.<br>
<tt><font size=+1>Fault</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;servicing a page fault.<br>
<tt><font size=+1>Idle</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;waiting for something to do (kernel processes only).<br>
<tt><font size=+1>New</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;being created.<br>
<tt><font size=+1>Pageout</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;paging out some other process.<br>
<i>Syscall</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;performing the named system call.<br>
<tt><font size=+1>no</font></tt> <i>resource</i>&nbsp;&nbsp;&nbsp;waiting for more of a critical <i>resource</i>.<br>
<i>wchan</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;waiting on the named wait channel (on a Unix kernel).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
With the <tt><font size=+1>&#8722;p</font></tt> flag, <i>ps</i> also prints, after the system time, the baseline
and current priorities of each process.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;a</font></tt> flag causes <i>ps</i> to print the arguments for the process.
Newlines in arguments will be translated to spaces for display.<br>
</table>
<p><font size=+1><b>SOURCE </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/bin/ps<br>
/usr/local/plan9/bin/psu<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/acid.html"><i>acid</i>(1)</a>, <a href="../man1/db.html"><i>db</i>(1)</a>, <a href="../man1/kill.html"><i>kill</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>

148
man/man1/psfonts.html Normal file
View File

@ -0,0 +1,148 @@
<head>
<title>psfonts(1) - 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>PSFONTS(1)</b><td align=right><b>PSFONTS(1)</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>
psfonts, psdownload &ndash; add necessary fonts to PostScript document
for printing<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>psfonts</font></tt> [ <i>files ...</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>psdownload</font></tt> [ <tt><font size=+1>options</font></tt> ] [ <i>files ...</i> ]<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>
Plan 9&#8217;s <a href="../man1/troff.html"><i>troff</i>(1)</a> and <a href="../man1/tr2post.html"><i>tr2post</i>(1)</a> use non-standard PostScript fonts
(found in <tt><font size=+1>/usr/local/plan9/postscript/font</font></tt>). Before sending PostScript
output from <i>tr2post</i> to a standard printer, code implementing the
non-standard fonts must be added to the PostScript.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Psfonts</i> copies <i>files</i> (or standard input) to standard output, adding
necessary PostScript fonts.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Psdownload</i> is the more general program used to implement <i>psfonts</i>.
The options are:<br>
<tt><font size=+1>&#8722;c</font></tt> <i>comment<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Expect the fonts used in the document to be listed in a comment
beginning with this string (default <tt><font size=+1>%%DocumentFonts:</font></tt>).<br>
</table>
<tt><font size=+1>&#8722;f</font></tt> <i>atend<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Expect extra fonts comments at the end of the document, so read
the entire input before starting output (by default this only
happens if a <tt><font size=+1>%%DocumentFonts: (atend)</font></tt> comment is encountered).<br>
</table>
<tt><font size=+1>&#8722;m</font></tt> <i>mapfile<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Use <i>mapfile</i> to translate from PostScript font names to files.
Each line in the map has two white space-separated fields: a font
name and the corresponding file. If <i>mapfile</i> is not a rooted path,
it is evaluated relative to the <i>fontdir</i> (see <tt><font size=+1>&#8722;H</font></tt> below).<br>
</table>
<tt><font size=+1>&#8722;p</font></tt> <i>printer<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Set the name of the printer. This option is deprecated. Its only
effect is to override the <tt><font size=+1>&#8722;r</font></tt> option, causing <i>fontdir</i><tt><font size=+1>/printers/</font></tt><i>printer</i>
to be used as the resident fonts list.<br>
</table>
<tt><font size=+1>&#8722;r</font></tt> <i>residentfonts<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Read a list of fonts assumed to be on the printer (not necessary
to re-download) from the file <i>residentfonts</i>. If <i>residentfonts</i>
is not a rooted path, it is evaluated relative to the <i>fontdir</i>
(see <tt><font size=+1>&#8722;H</font></tt> below).<br>
</table>
<tt><font size=+1>&#8722;H</font></tt> <i>fontdir<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Set the directory that is assumed to contain the PostScript fonts
and information about printers (see <tt><font size=+1>&#8722;m</font></tt>, <tt><font size=+1>&#8722;p</font></tt>, and <tt><font size=+1>&#8722;r</font></tt> above; default
<tt><font size=+1>/usr/local/plan9/postscript/font</font></tt>).<br>
</table>
<tt><font size=+1>&#8722;T</font></tt> <i>tmpdir<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Use <i>tmpdir</i> for storing temporary files (default <tt><font size=+1>/var/tmp</font></tt>).<br>
</table>
<tt><font size=+1>&#8722;D</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Produce copious amounts of debugging information on standard
error.<br>
<tt><font size=+1>&#8722;I</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Continue running even after fatal errors occur.<br>
</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>
See <a href="../man1/tr2post.html"><i>tr2post</i>(1)</a> for an example.<br>
</table>
<p><font size=+1><b>SOURCE </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/bin/psfonts<br>
/usr/local/plan9/src/cmd/postscript/download<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/tr2post.html"><i>tr2post</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>

73
man/man1/pwd.html Normal file
View File

@ -0,0 +1,73 @@
<head>
<title>pwd(1) - 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>PWD(1)</b><td align=right><b>PWD(1)</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>
pwd, pbd &ndash; working directory<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>pwd<br>
pbd<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>
<i>Pwd</i> prints the path name of the working (current) directory.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Pbd</i> prints the base name of the working (current) directory. It
prints no final newline and is intended for applications such
as constructing shell prompts.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/pbd.c<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>
<i>cd</i> in <a href="../man1/rc.html"><i>rc</i>(1)</a>, <a href="../man3/getwd.html"><i>getwd</i>(3)</a><br>
</table>
<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>
<i>Pwd</i> is not provided. Unix already provides one.<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>

655
man/man1/rc.html Normal file
View File

@ -0,0 +1,655 @@
<head>
<title>rc(1) - 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>RC(1)</b><td align=right><b>RC(1)</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>
rc, cd, eval, exec, exit, flag, rfork, shift, wait, whatis, .,
~ &ndash; command language<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>rc</font></tt> [ <tt><font size=+1>&#8722;srdiIlxepvV</font></tt> ] [ <tt><font size=+1>&#8722;c command</font></tt> ] [ <i>file</i> [ <i>arg ...</i> ]]<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>
<i>Rc</i> is the Plan 9 shell. It executes command lines read from a
terminal or a file or, with the <tt><font size=+1>&#8722;c</font></tt> flag, from <i>rc&#8217;s</i> argument list.<br>
<p><font size=+1><b>Command Lines </b></font><br>
A command line is a sequence of commands, separated by ampersands
or semicolons (<tt><font size=+1>&amp;</font></tt> or <tt><font size=+1>;</font></tt>), terminated by a newline. The commands are
executed in sequence from left to right. <i>Rc</i> does not wait for
a command followed by <tt><font size=+1>&amp;</font></tt> to finish executing before starting the
following command. Whenever a command
followed by <tt><font size=+1>&amp;</font></tt> is executed, its process id is assigned to the <i>rc</i>
variable <tt><font size=+1>$apid</font></tt>. Whenever a command <i>not</i> followed by <tt><font size=+1>&amp;</font></tt> exits or is
terminated, the <i>rc</i> variable <tt><font size=+1>$status</font></tt> gets the process&#8217;s wait message
(see <a href="../man3/wait.html"><i>wait</i>(3)</a>); it will be the null string if the command was successful.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A long command line may be continued on subsequent lines by typing
a backslash (<tt><font size=+1>\</font></tt>) followed by a newline. This sequence is treated
as though it were a blank. Backslash is not otherwise a special
character.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A number-sign (<tt><font size=+1>#</font></tt>) and any following characters up to (but not
including) the next newline are ignored, except in quotation marks.<br>
<p><font size=+1><b>Simple Commands </b></font><br>
A simple command is a sequence of arguments interspersed with
I/O redirections. If the first argument is the name of an <i>rc</i> function
or of one of <i>rc&#8217;s</i> built-in commands, it is executed by <i>rc</i>. Otherwise
if the name starts with a slash (<tt><font size=+1>/</font></tt>), it must be the path name
of the program to be executed. Names containing no
initial slash are searched for in a list of directory names stored
in <tt><font size=+1>$path</font></tt>. The first executable file of the given name found in
a directory in <tt><font size=+1>$path</font></tt> is the program to be executed. To be executable,
the user must have execute permission (see <a href="../man3/stat.html"><i>stat</i>(3)</a>) and the file
must be either an executable binary for the current
machine&#8217;s CPU type, or a shell script. Shell scripts begin with
a line containing the full path name of a shell (usually <tt><font size=+1>/bin/rc</font></tt>),
prefixed by <tt><font size=+1>#!</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The first word of a simple command cannot be a keyword unless
it is quoted or otherwise disguised. The keywords are<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>for in while if not switch fn ~ ! @<br>
</font></tt>
</table>
<p><font size=+1><b>Arguments and Variables </b></font><br>
A number of constructions may be used where <i>rc&#8217;s</i> syntax requires
an argument to appear. In many cases a construction&#8217;s value will
be a list of arguments rather than a single string.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The simplest kind of argument is the unquoted word: a sequence
of one or more characters none of which is a blank, tab, newline,
or any of the following:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1># ; &amp; | ^ $ = ` ' { } ( ) &lt; &gt;<br>
</font></tt>
</table>
An unquoted word that contains any of the characters <tt><font size=+1>* ? [</font></tt> is
a pattern for matching against file names. The character <tt><font size=+1>*</font></tt> matches
any sequence of characters, <tt><font size=+1>?</font></tt> matches any single character, and
<tt><font size=+1>[</font></tt><i>class</i><tt><font size=+1>]</font></tt> matches any character in the <i>class</i>. If the first character
of <i>class</i> is <tt><font size=+1>~</font></tt>, the class is complemented. The <i>class</i> may
also contain pairs of characters separated by <tt><font size=+1>&#8722;</font></tt>, standing for
all characters lexically between the two. The character <tt><font size=+1>/</font></tt> must
appear explicitly in a pattern, as must the first character of
the path name components <tt><font size=+1>.</font></tt> and <tt><font size=+1>..</font></tt>. A pattern is replaced by a
list of arguments, one for each path name matched, except that
a
pattern matching no names is not replaced by the empty list, but
rather stands for itself. Pattern matching is done after all other
operations. Thus,<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>x=/tmp echo $x^/*.c<br>
</font></tt>
</table>
matches <tt><font size=+1>/tmp/*.c</font></tt>, rather than matching <tt><font size=+1>/*.c</font></tt> and then prefixing
<tt><font size=+1>/tmp</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A quoted word is a sequence of characters surrounded by single
quotes (<tt><font size=+1>'</font></tt>). A single quote is represented in a quoted word by
a pair of quotes (<tt><font size=+1>''</font></tt>).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Each of the following is an argument.<br>
<tt><font size=+1>(</font></tt><i>arguments</i><tt><font size=+1>)<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The value of a sequence of arguments enclosed in parentheses is
a list comprising the members of each element of the sequence.
Argument lists have no recursive structure, although their syntax
may suggest it. The following are entirely equivalent:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>echo hi there everybody<br>
((echo) (hi there) everybody)<br>
</font></tt>
</table>
</table>
<tt><font size=+1>$</font></tt><i>argument<br>
</i><tt><font size=+1>$</font></tt><i>argument</i><tt><font size=+1>(</font></tt><i>subscript</i><tt><font size=+1>)<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>argument</i> after the <tt><font size=+1>$</font></tt> is the name of a variable whose value
is substituted. Multiple levels of indirection are possible, but
of questionable utility. Variable values are lists of strings.
If <i>argument</i> is a number <i>n</i>, the value is the <i>n</i>th element of <tt><font size=+1>$*</font></tt>,
unless <tt><font size=+1>$*</font></tt> doesn&#8217;t have <i>n</i> elements, in which case the value is
empty. If <i>argument</i> is followed by a parenthesized list of subscripts,
the value substituted is a list composed of the requested elements
(origin 1). The parenthesis must follow the variable name with
no spaces. Assignments to variables are described below.<br>
</table>
<tt><font size=+1>$#</font></tt><i>argument<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The value is the number of elements in the named variable. A variable
never assigned a value has zero elements.<br>
</table>
$&quot;<i>argument<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The value is a single string containing the components of the
named variable separated by spaces. A variable with zero elements
yields the empty string.<br>
</table>
<tt><font size=+1>`{</font></tt><i>command</i><tt><font size=+1>}<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>rc</i> executes the <i>command</i> and reads its standard output, splitting
it into a list of arguments, using characters in <tt><font size=+1>$ifs</font></tt> as separators.
If <tt><font size=+1>$ifs</font></tt> is not otherwise set, its value is <tt><font size=+1>' \t\n'</font></tt>.<br>
</table>
<tt><font size=+1>&lt;{</font></tt><i>command</i><tt><font size=+1>}<br>
&gt;{</font></tt><i>command</i><tt><font size=+1>}<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>command</i> is executed asynchronously with its standard output
or standard input connected to a pipe. The value of the argument
is the name of a file referring to the other end of the pipe.
This allows the construction of non-linear pipelines. For example,
the following runs two commands <tt><font size=+1>old</font></tt> and <tt><font size=+1>new
</font></tt>and uses <tt><font size=+1>cmp</font></tt> to compare their outputs<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>cmp &lt;{old} &lt;{new}<br>
</font></tt>
</table>
</table>
<i>argument</i><tt><font size=+1>^</font></tt><i>argument<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <tt><font size=+1>^</font></tt> operator concatenates its two operands. If the two operands
have the same number of components, they are concatenated pairwise.
If not, then one operand must have one component, and the other
must be non-empty, and concatenation is distributive.<br>
</table>
<p><font size=+1><b>Free Carets </b></font><br>
In most circumstances, <i>rc</i> will insert the <tt><font size=+1>^</font></tt> operator automatically
between words that are not separated by white space. Whenever
one of <tt><font size=+1>$ ' `</font></tt> follows a quoted or unquoted word or an unquoted
word follows a quoted word with no intervening blanks or tabs,
a <tt><font size=+1>^</font></tt> is inserted between the two. If an unquoted word
immediately follows a <tt><font size=+1>$</font></tt> and contains a character other than an
alphanumeric, underscore, or <tt><font size=+1>*</font></tt>, a <tt><font size=+1>^</font></tt> is inserted before the first
such character. Thus<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>cc &#8722;$flags $stem.c
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
is equivalent to<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>cc &#8722;^$flags $stem^.c<br>
</font></tt>
</table>
<p><font size=+1><b>I/O Redirections </b></font><br>
The sequence <tt><font size=+1>&gt;</font></tt><i>file</i> redirects the standard output file (file descriptor
1, normally the terminal) to the named <i>file</i>; <tt><font size=+1>&gt;&gt;</font></tt><i>file</i> appends standard
output to the file. The standard input file (file descriptor 0,
also normally the terminal) may be redirected from a file by the
sequence <tt><font size=+1>&lt;</font></tt><i>file</i>, or from an inline &#8216;here document&#8217; by the
sequence <tt><font size=+1>&lt;&lt;</font></tt><i>eof-marker</i>. The contents of a here document are lines
of text taken from the command input stream up to a line containing
nothing but the <i>eof-marker</i>, which may be either a quoted or unquoted
word. If <i>eof-marker</i> is unquoted, variable names of the form <tt><font size=+1>$</font></tt><i>word</i>
have their values substituted from <i>rc&#8217;s
</i>environment. If <tt><font size=+1>$</font></tt><i>word</i> is followed by a caret (<tt><font size=+1>^</font></tt>), the caret is
deleted. If <i>eof-marker</i> is quoted, no substitution occurs.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Redirections may be applied to a file-descriptor other than standard
input or output by qualifying the redirection operator with a
number in square brackets. For example, the diagnostic output
(file descriptor 2) may be redirected by writing <tt><font size=+1>cc junk.c &gt;[2]junk</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A file descriptor may be redirected to an already open descriptor
by writing <tt><font size=+1>&gt;[</font></tt><i>fd0</i><tt><font size=+1>=</font></tt><i>fd1</i><tt><font size=+1>]</font></tt> or <tt><font size=+1>&lt;[</font></tt><i>fd0</i><tt><font size=+1>=</font></tt><i>fd1</i><tt><font size=+1>]</font></tt>. <i>Fd1</i> is a previously opened
file descriptor and <i>fd0</i> becomes a new copy (in the sense of <a href="../man3/dup.html"><i>dup</i>(3)</a>)
of it. A file descriptor may be closed by writing <tt><font size=+1>&gt;[</font></tt><i>fd0</i><tt><font size=+1>=]</font></tt> or <tt><font size=+1>&lt;[</font></tt><i>fd0</i><tt><font size=+1>=]</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Redirections are executed from left to right. Therefore, <tt><font size=+1>cc junk.c
&gt;/dev/null &gt;[2=1]</font></tt> and <tt><font size=+1>cc junk.c &gt;[2=1] &gt;/dev/null</font></tt> have different effects:
the first puts standard output in <tt><font size=+1>/dev/null</font></tt> and then puts diagnostic
output in the same place, where the second directs diagnostic
output to the
terminal and sends standard output to <tt><font size=+1>/dev/null</font></tt>.<br>
<p><font size=+1><b>Compound Commands </b></font><br>
A pair of commands separated by a pipe operator (<tt><font size=+1>|</font></tt>) is a command.
The standard output of the left command is sent through a pipe
to the standard input of the right command. The pipe operator
may be decorated to use different file descriptors. <tt><font size=+1>|[</font></tt><i>fd</i><tt><font size=+1>]</font></tt> connects
the output end of the pipe to file descriptor <i>fd</i> rather
than 1. <tt><font size=+1>|[</font></tt><i>fd0</i><tt><font size=+1>=</font></tt><i>fd1</i><tt><font size=+1>]</font></tt> connects output to <i>fd1</i> of the left command
and input to <i>fd0</i> of the right command.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A pair of commands separated by <tt><font size=+1>&amp;&amp;</font></tt> or <tt><font size=+1>||</font></tt> is a command. In either
case, the left command is executed and its exit status examined.
If the operator is <tt><font size=+1>&amp;&amp;</font></tt> the right command is executed if the left
command&#8217;s status is null. <tt><font size=+1>||</font></tt> causes the right command to be executed
if the left command&#8217;s status is non-null.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The exit status of a command may be inverted (non-null is changed
to null, null is changed to non-null) by preceding it with a <tt><font size=+1>!</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>|</font></tt> operator has highest precedence, and is left-associative
(i.e. binds tighter to the left than the right). <tt><font size=+1>!</font></tt> has intermediate
precedence, and <tt><font size=+1>&amp;&amp;</font></tt> and <tt><font size=+1>||</font></tt> have the lowest precedence.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The unary <tt><font size=+1>@</font></tt> operator, with precedence equal to <tt><font size=+1>!</font></tt>, causes its operand
to be executed in a subshell.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Each of the following is a command.<br>
<tt><font size=+1>if (</font></tt> <i>list</i> <tt><font size=+1>)</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A <i>list</i> is a sequence of commands, separated by <tt><font size=+1>&amp;</font></tt>, <tt><font size=+1>;</font></tt>, or newline.
It is executed and if its exit status is null, the <i>command</i> is
executed.<br>
</table>
<tt><font size=+1>if not</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The immediately preceding command must have been <tt><font size=+1>if(</font></tt><i>list</i><tt><font size=+1>)</font></tt> <i>command</i>.
If its condition was non-zero, the <i>command</i> is executed.<br>
</table>
<tt><font size=+1>for(</font></tt><i>name</i> <tt><font size=+1>in</font></tt> <i>arguments</i><tt><font size=+1>)</font></tt> <i>command<br>
</i><tt><font size=+1>for(</font></tt><i>name</i><tt><font size=+1>)</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>command</i> is executed once for each <i>argument</i> with that argument
assigned to <i>name</i>. If the argument list is omitted, <tt><font size=+1>$*</font></tt> is used.<br>
</table>
<tt><font size=+1>while(</font></tt><i>list</i><tt><font size=+1>)</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>list</i> is executed repeatedly until its exit status is non-null.
Each time it returns null status, the <i>command</i> is executed. An
empty <i>list</i> is taken to give null status.<br>
</table>
<tt><font size=+1>switch(</font></tt><i>argument</i><tt><font size=+1>){</font></tt><i>list</i><tt><font size=+1>}<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>list</i> is searched for simple commands beginning with the word
<tt><font size=+1>case</font></tt>. (The search is only at the &#8216;top level&#8217; of the <i>list</i>. That
is, <tt><font size=+1>cases</font></tt> in nested constructs are not found.) <i>Argument</i> is matched
against each word following <tt><font size=+1>case</font></tt> using the pattern-matching algorithm
described above, except that <tt><font size=+1>/</font></tt> and the
first characters of <tt><font size=+1>.</font></tt> and <tt><font size=+1>..</font></tt> need not be matched explicitly. When
a match is found, commands in the list are executed up to the
next following <tt><font size=+1>case</font></tt> command (at the top level) or the closing
brace.<br>
</table>
<tt><font size=+1>{</font></tt><i>list</i><tt><font size=+1>}<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Braces serve to alter the grouping of commands implied by operator
priorities. The <i>body</i> is a sequence of commands separated by <tt><font size=+1>&amp;</font></tt>,
<tt><font size=+1>;</font></tt>, or newline.<br>
</table>
<tt><font size=+1>fn</font></tt> <i>name</i><tt><font size=+1>{</font></tt><i>list</i><tt><font size=+1>}<br>
fn</font></tt> <i>name<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The first form defines a function with the given <i>name</i>. Subsequently,
whenever a command whose first argument is <i>name</i> is encountered,
the current value of the remainder of the command&#8217;s argument list
will be assigned to <tt><font size=+1>$*</font></tt>, after saving its current value, and <i>rc</i>
will execute the <i>list</i>. The second form removes
<i>name</i>&#8217;s function definition.<br>
</table>
<tt><font size=+1>fn</font></tt> <i>note</i><tt><font size=+1>{</font></tt><i>list</i><tt><font size=+1>}<br>
fn</font></tt> <i>note<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A function with a special name will be called when <i>rc</i> receives
a corresponding note; see <a href="../man3/notify.html"><i>notify</i>(3)</a>. The valid note names (and
corresponding notes) are <tt><font size=+1>sighup</font></tt> (<tt><font size=+1>hangup</font></tt>), <tt><font size=+1>sigint</font></tt> (<tt><font size=+1>interrupt</font></tt>),
<tt><font size=+1>sigalrm</font></tt> (<tt><font size=+1>alarm</font></tt>), and <tt><font size=+1>sigfpe</font></tt> (floating point trap). By default
<i>rc</i> exits on receiving any signal, except when
run interactively, in which case interrupts and quits normally
cause <i>rc</i> to stop whatever it&#8217;s doing and start reading a new command.
The second form causes <i>rc</i> to handle a signal in the default manner.
<i>Rc</i> recognizes an artificial note, <tt><font size=+1>sigexit</font></tt>, which occurs when <i>rc</i>
is about to finish executing.
</table>
<i>name</i><tt><font size=+1>=</font></tt><i>argument command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Any command may be preceded by a sequence of assignments interspersed
with redirections. The assignments remain in effect until the
end of the command, unless the command is empty (i.e. the assignments
stand alone), in which case they are effective until rescinded
by later assignments.
</table>
<p><font size=+1><b>Built-in Commands </b></font><br>
These commands are executed internally by <i>rc</i>, usually because
their execution changes or depends on <i>rc</i>&#8217;s internal state.<br>
<tt><font size=+1>.</font></tt> <i>file ...<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Execute commands from <i>file</i>. <tt><font size=+1>$*</font></tt> is set for the duration to the
remainder of the argument list following <i>file</i>. <i>File</i> is searched
for using <tt><font size=+1>$path</font></tt>.<br>
</table>
<tt><font size=+1>builtin</font></tt> <i>command ...<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Execute <i>command</i> as usual except that any function named <i>command</i>
is ignored in favor of the built-in meaning.<br>
</table>
<tt><font size=+1>cd [</font></tt><i>dir</i><tt><font size=+1>]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Change the current directory to <i>dir</i>. The default argument is <tt><font size=+1>$home</font></tt>.
<i>dir</i> is searched for in each of the directories mentioned in <tt><font size=+1>$cdpath</font></tt>.<br>
</table>
<tt><font size=+1>eval [</font></tt><i>arg ...</i><tt><font size=+1>]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The arguments are concatenated separated by spaces into a single
string, read as input to <i>rc</i>, and executed.<br>
</table>
<tt><font size=+1>exec [</font></tt><i>command ...</i><tt><font size=+1>]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
This instance of <i>rc</i> replaces itself with the given (non-built-in)
<i>command</i>.<br>
</table>
<tt><font size=+1>flag</font></tt> <i>f</i> <tt><font size=+1>[+&#8722;]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Either set (<tt><font size=+1>+</font></tt>), clear (<tt><font size=+1>&#8722;</font></tt>), or test (neither <tt><font size=+1>+</font></tt> nor <tt><font size=+1>&#8722;</font></tt>) the flag
<i>f</i>, where <i>f</i> is a single character, one of the command line flags
(see Invocation, below).<br>
</table>
<tt><font size=+1>exit [</font></tt><i>status</i><tt><font size=+1>]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Exit with the given exit status. If none is given, the current
value of <tt><font size=+1>$status</font></tt> is used.<br>
</table>
<tt><font size=+1>rfork</font></tt> [<tt><font size=+1>nNeEsfFm</font></tt>]<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Become a new process group using <tt><font size=+1>rfork(</font></tt><i>flags</i><tt><font size=+1>)</font></tt> where <i>flags</i> is composed
of the bitwise OR of the <tt><font size=+1>rfork</font></tt> flags specified by the option letters
(see <a href="../man2/fork.html"><i>fork</i>(2)</a>). If no <i>flags</i> are given, they default to <tt><font size=+1>ens</font></tt>. The
<i>flags</i> and their meanings are: <tt><font size=+1>n</font></tt> is <tt><font size=+1>RFNAMEG</font></tt>; <tt><font size=+1>N</font></tt> is <tt><font size=+1>RFCNAMEG</font></tt>; <tt><font size=+1>e</font></tt> is
<tt><font size=+1>RFENVG</font></tt>; <tt><font size=+1>E</font></tt> is <tt><font size=+1>RFCENVG</font></tt>; <tt><font size=+1>s</font></tt> is
<tt><font size=+1>RFNOTEG</font></tt>; <tt><font size=+1>f</font></tt> is <tt><font size=+1>RFFDG</font></tt>; <tt><font size=+1>F</font></tt> is <tt><font size=+1>RFCFDG</font></tt>; and <tt><font size=+1>m</font></tt> is <tt><font size=+1>RFNOMNT</font></tt>.<br>
</table>
<tt><font size=+1>shift [</font></tt><i>n</i><tt><font size=+1>]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Delete the first <i>n</i> (default 1) elements of <tt><font size=+1>$*</font></tt>.<br>
</table>
<tt><font size=+1>wait [</font></tt><i>pid</i><tt><font size=+1>]<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Wait for the process with the given <i>pid</i> to exit. If no <i>pid</i> is
given, all outstanding processes are waited for.<br>
</table>
<tt><font size=+1>whatis</font></tt> <i>name ...<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the value of each <i>name</i> in a form suitable for input to <i>rc</i>.
The output is an assignment to any variable, the definition of
any function, a call to <tt><font size=+1>builtin</font></tt> for any built-in command, or the
completed pathname of any executable file.<br>
</table>
<tt><font size=+1>~</font></tt> <i>subject pattern ...<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The <i>subject</i> is matched against each <i>pattern</i> in sequence. If it
matches any pattern, <tt><font size=+1>$status</font></tt> is set to zero. Otherwise, <tt><font size=+1>$status</font></tt>
is set to one. Patterns are the same as for file name matching,
except that <tt><font size=+1>/</font></tt> and the first character of <tt><font size=+1>.</font></tt> and <tt><font size=+1>..</font></tt> need not be
matched explicitly. The <i>patterns</i> are not subjected to
file name matching before the <tt><font size=+1>~</font></tt> command is executed, so they need
not be enclosed in quotation marks.<br>
</table>
<p><font size=+1><b>Environment </b></font><br>
The <i>environment</i> is a list of strings made available to executing
binaries by the kernel. <i>Rc</i> creates an environment entry for each
variable whose value is non-empty, and for each function. The
string for a variable entry has the variable&#8217;s name followed by
<tt><font size=+1>=</font></tt> and its value. If the value has more than one component,
these are separated by SOH (001) characters. The string for a
function is just the <i>rc</i> input that defines the function. The name
of a function in the environment is the function name preceded
by <tt><font size=+1>fn#</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When <i>rc</i> starts executing it reads variable and function definitions
from its environment.<br>
<p><font size=+1><b>Special Variables </b></font><br>
The following variables are set or used by <i>rc</i>.<br>
<tt><font size=+1>$*</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set to <i>rc</i>&#8217;s argument list during initialization. Whenever a
<tt><font size=+1>.</font></tt> command or a function is executed, the current value is saved
and <tt><font size=+1>$*</font></tt> receives the new argument list. The saved value is restored
on completion of the <tt><font size=+1>.</font></tt> or function.<br>
<tt><font size=+1>$apid</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whenever a process is started asynchronously with <tt><font size=+1>&amp;</font></tt>, <tt><font size=+1>$apid</font></tt>
is set to its process id.<br>
<tt><font size=+1>$home</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default directory for <tt><font size=+1>cd</font></tt>.<br>
<tt><font size=+1>$ifs</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The input field separators used in backquote substitutions.
If <tt><font size=+1>$ifs</font></tt> is not set in <i>rc</i>&#8217;s environment, it is initialized to blank,
tab and newline.<br>
<tt><font size=+1>$path</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The search path used to find commands and input files for
the <tt><font size=+1>.</font></tt> command. If not set in the environment, it is initialized
by parsing the <tt><font size=+1>$PATH</font></tt> variable (as in <a href="../man1/sh.html"><i>sh</i>(1)</a>) or by <tt><font size=+1>path=(. /bin)</font></tt>.
The variables <tt><font size=+1>$path</font></tt> and <tt><font size=+1>$PATH</font></tt> are maintained together: changes
to one will be reflected in the other.
<tt><font size=+1>$pid</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set during initialization to <i>rc</i>&#8217;s process id.<br>
<tt><font size=+1>$prompt</font></tt>&nbsp;&nbsp;&nbsp;When <i>rc</i> is run interactively, the first component of <tt><font size=+1>$prompt</font></tt>
is printed before reading each command. The second component is
printed whenever a newline is typed and more lines are required
to complete the command. If not set in the environment, it is
initialized by <tt><font size=+1>prompt=('% ' ' ')</font></tt>.
<tt><font size=+1>$status</font></tt>&nbsp;&nbsp;&nbsp;Set to the wait message of the last-executed program. (unless
started with <tt><font size=+1>&amp;). !</font></tt> and <tt><font size=+1>~</font></tt> also change <tt><font size=+1>$status</font></tt>. Its value is used
to control execution in <tt><font size=+1>&amp;&amp;</font></tt>, <tt><font size=+1>||</font></tt>, <tt><font size=+1>if</font></tt> and <tt><font size=+1>while</font></tt> commands. When <i>rc</i> exits
at end-of-file of its input or on executing an <tt><font size=+1>exit</font></tt> command with
no argument, <tt><font size=+1>$status</font></tt> is its
<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>
exit status.<br>
</table>
</table>
<p><font size=+1><b>Invocation </b></font><br>
If <i>rc</i> is started with no arguments it reads commands from standard
input. Otherwise its first non-flag argument is the name of a
file from which to read commands (but see <tt><font size=+1>&#8722;c</font></tt> below). Subsequent
arguments become the initial value of <tt><font size=+1>$*</font></tt>. <i>Rc</i> accepts the following
command-line flags.<br>
<tt><font size=+1>&#8722;c</font></tt> <i>string</i>&nbsp;&nbsp;&nbsp;Commands are read from <i>string</i>.<br>
<tt><font size=+1>&#8722;s</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print out exit status after any command where the status is
non-null.<br>
<tt><font size=+1>&#8722;e</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit if <tt><font size=+1>$status</font></tt> is non-null after executing a simple command.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If <tt><font size=+1>&#8722;i</font></tt> is present, or <i>rc</i> is given no arguments and its standard
input is a terminal, it runs interactively. Commands are prompted
for using <tt><font size=+1>$prompt</font></tt>.<br>
<tt><font size=+1>&#8722;I</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Makes sure <i>rc</i> is not run interactively.<br>
<tt><font size=+1>&#8722;l</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If <tt><font size=+1>&#8722;l</font></tt> is given or the first character of argument zero is <tt><font size=+1>&#8722;</font></tt>,
<i>rc</i> reads commands from <tt><font size=+1>$home/lib/profile</font></tt>, if it exists, before
reading its normal input.<br>
<tt><font size=+1>&#8722;p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A no-op.<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A no-op.<br>
<tt><font size=+1>&#8722;v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Echo input on file descriptor 2 as it is read.<br>
<tt><font size=+1>&#8722;x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print each simple command before executing it.<br>
<tt><font size=+1>&#8722;r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print debugging information (internal form of commands as they
are executed).<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/rc<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>
Tom Duff, &#8220;Rc &ndash; The Plan 9 Shell&#8221;.<br>
</table>
<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 should be a way to match patterns against whole lists rather
than just single strings.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Using <tt><font size=+1>~</font></tt> to check the value of <tt><font size=+1>$status</font></tt> changes <tt><font size=+1>$status</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Functions that use here documents don&#8217;t work.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Free carets don&#8217;t get inserted next to keywords.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&lt;{</font></tt><i>command</i><tt><font size=+1>}</font></tt> syntax depends on the underlying operating system
providing a file descriptor device tree at <tt><font size=+1>/dev/fd</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
By default, FreeBSD 5 does not provide file descriptors greater
than 2 in <tt><font size=+1>/dev/fd</font></tt>. To fix this, add<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>/fdescfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/dev/fd &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fdescfs &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rw &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
to <tt><font size=+1>/etc/fstab</font></tt>, and then <tt><font size=+1>mount /dev/fd</font></tt>. (Adding the line to <tt><font size=+1>fstab</font></tt>
ensures causes FreeBSD to mount the file system automatically
at boot time.)<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>

172
man/man1/rio.html Normal file
View File

@ -0,0 +1,172 @@
<head>
<title>rio(1) - 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>RIO(1)</b><td align=right><b>RIO(1)</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>
rio &ndash; rio-like Window Manager for X<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>rio</font></tt> [ <tt><font size=+1>&ndash;font</font></tt> <i>fontname</i> ] [ <tt><font size=+1>&ndash;grey</font></tt> ] [ <tt><font size=+1>&ndash;s</font></tt> ] [ <tt><font size=+1>&ndash;term</font></tt> <i>termprog</i> ] [ <tt><font size=+1>&ndash;version</font></tt>
] [ <tt><font size=+1>&ndash;virtuals</font></tt> <i>num</i> ] [ <tt><font size=+1>exit</font></tt> | <tt><font size=+1>restart</font></tt> ]<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>
<i>Rio</i> is a window manager for X which attempts to emulate the window
management policies of Plan 9&#8217;s <i>rio</i> window manager. Rio is derived
from David Hogan&#8217;s 8&#189;.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&ndash;grey</font></tt> option makes the background stippled grey, the default
X11 background, instead of solid grey, the Plan 9 background.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&ndash;font</font></tt> option sets the font in <i>rio</i>&#8217;s menu to <i>fname</i>, overriding
the default. Unlike the other programs in the Plan 9 ports, rio
expects this font to be an X11 font rather than a Plan 9 font.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&ndash;term</font></tt> option specifies an alternative program to run when the
<i>New</i> menu item is selected. The default is to try <a href="../man1/9term.html"><i>9term</i>(1)</a> and
then to fall back to <a href="../man1/xterm.html"><i>xterm</i>(1)</a>. The <tt><font size=+1>&ndash;s</font></tt> option causes <i>rio</i> to add
<tt><font size=+1>&#8722;s</font></tt> to <i>9term</i>&#8217;s command-line, starting the window in scrolling mode.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&ndash;version</font></tt> option prints the current version on standard error,
then exits.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&ndash;virtuals</font></tt> option sets the number of virtual screens (the default
is 1, and the maximum is 12).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
If the argument <tt><font size=+1>exit</font></tt> or <tt><font size=+1>restart</font></tt> is given, it is sent to an already-running
<i>rio</i>, causing the extant <i>rio</i> to exit or restart.<br>
<p><font size=+1><b>Using rio </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
One window is <i>current</i>, and is indicated with a dark border and
text; characters typed on the keyboard are available in the <tt><font size=+1>/dev/cons</font></tt>
file of the process in the current window. Characters written
on <tt><font size=+1>/dev/cons</font></tt> appear asynchronously in the associated window whether
or not the window is current.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Windows are created, deleted and rearranged using the mouse. Clicking
(pressing and releasing) mouse button 1 in a non-current window
makes that window current and brings it in front of any windows
that happen to be overlapping it. When the mouse cursor points
to the background area or is in a window that has
not claimed the mouse for its own use, pressing mouse button 3
activates a menu of window operations provided by <i>rio</i>. Releasing
button 3 then selects an operation. At this point, a gunsight
or cross cursor indicates that an operation is pending. The button
3 menu operations are:<br>
<tt><font size=+1>New</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a window. Press button 3 where one corner of the new
rectangle should appear (cross cursor), and move the mouse, while
holding down button 3, to the diagonally opposite corner. Releasing
button 3 creates the window, and makes it current. Very small
windows may not be created. The new
<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>
window is created running <i>termprog</i>, by default <a href="../man1/9term.html"><i>9term</i>(1)</a> or, if
<i>9term</i> is not available, <a href="../man1/xterm.html"><i>xterm</i>(1)</a>.<br>
</table>
</table>
<tt><font size=+1>Resize</font></tt>&nbsp;&nbsp;&nbsp;Change the size and location of a window. First click button
3 in the window to be changed (gunsight cursor). Then sweep out
a window as for the <tt><font size=+1>New</font></tt> operation. The window is made current.<br>
<tt><font size=+1>Move</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Move a window to another location. After pressing and holding
button 3 over the window to be moved (gunsight cursor), indicate
the new position by dragging the rectangle to the new location.
The window is made current. Windows may be moved partially off-screen.<br>
<tt><font size=+1>Delete</font></tt>&nbsp;&nbsp;&nbsp;Delete a window. Click in the window to be deleted (gunsight
cursor). Deleting a window causes a <tt><font size=+1>hangup</font></tt> note to be sent to
all processes in the window&#8217;s process group (see <a href="../man3/notify.html"><i>notify</i>(3)</a>).<br>
<tt><font size=+1>Hide</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hide a window. Click in the window to be hidden (gunsight
cursor); it will be moved off-screen. Each hidden window is given
a menu entry in the button 3 menu according to its current window
system label.<br>
<i>label</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restore a hidden window.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Windows may also be arranged by dragging their borders. Pressing
button 1 or 2 over a window&#8217;s border allows one to move the corresponding
edge or corner, while button 3 moves the whole window.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When the mouse cursor points to the background area and <i>rio</i> has
been started with multiple virtual screens using the <tt><font size=+1>&ndash;virtuals</font></tt>
option, clicking button 2 brings up a menu to select a virtual
screen to view. Scrolling the mouse wheel while the cursor points
at the background will cycle through the virtual screens.
</table>
<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>
In Plan 9&#8217;s <i>rio</i>, clicking button 2 or button 3 to select a window
also sends that event to the window itself. This <i>rio</i> does not.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The command-line syntax is non-standard.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In Plan 9&#8217;s <i>rio</i>, newly started applications take over the current
window. This <i>rio</i> starts a new window for each program. (In X11,
it appears to be impossible to know which window starts a particular
program.)
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
There is a currently a compiled-in limit of 128 hidden windows.<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/9term.html"><i>9term</i>(1)</a>, <a href="../man1/xterm.html"><i>xterm</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>

66
man/man1/rm.html Normal file
View File

@ -0,0 +1,66 @@
<head>
<title>rm(1) - 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>RM(1)</b><td align=right><b>RM(1)</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>
rm &ndash; remove files<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>rm</font></tt> [ <tt><font size=+1>&#8722;fr</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>
<i>Rm</i> removes files or directories. A directory is removed only if
it is empty. Removal of a file requires write permission in its
directory, but neither read nor write permission on the file itself.
The options are<br>
<tt><font size=+1>&#8722;f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Don&#8217;t report files that can&#8217;t be removed.<br>
<tt><font size=+1>&#8722;r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Recursively delete the entire contents of a directory and the
directory itself.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/rm.c<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/remove.html"><i>remove</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>

577
man/man1/sam.html Normal file
View File

@ -0,0 +1,577 @@
<head>
<title>sam(1) - 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>SAM(1)</b><td align=right><b>SAM(1)</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>
sam, B, E, sam.save, samterm, samsave &ndash; screen editor with structural
regular expressions<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>sam</font></tt> [ <i>option ...</i> ] [ <i>files</i> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>sam &#8722;r</font></tt> <i>machine
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>sam.save
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
<tt><font size=+1>B</font></tt> <i>file</i>[<tt><font size=+1>:</font></tt><i>line</i>] ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>E</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>
<i>Sam</i> is a multi-file editor. It modifies a local copy of an external
file. The copy is here called a <i>file</i>. The files are listed in
a menu available through mouse button 3 or the <tt><font size=+1>n</font></tt> command. Each
file has an associated name, usually the name of the external
file from which it was read, and a &#8216;modified&#8217; bit that indicates
whether the editor&#8217;s file agrees with the external file. The external
file is not read into the editor&#8217;s file until it first becomes
the current file--that to which editing commands apply--whereupon
its menu entry is printed. The options are<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do not &#8216;download&#8217; the terminal part of <i>sam</i>. Editing will be
done with the command language only, as in <a href="../man1/ed.html"><i>ed</i>(1)</a>.<br>
<tt><font size=+1>&#8722;r</font></tt> <i>machine</i>&nbsp;&nbsp;&nbsp;&nbsp;Run the host part remotely on the specified machine,
the terminal part locally.<br>
<tt><font size=+1>&#8722;s</font></tt> <i>path</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start the host part from the specified file on the remote
host. Only meaningful with the <tt><font size=+1>&#8722;r</font></tt> option.<br>
<tt><font size=+1>&#8722;t</font></tt> <i>path</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start the terminal part from the specified file. Useful
for debugging.<br>
<p><font size=+1><b>Regular expressions </b></font><br>
Regular expressions are as in <a href="../man7/regexp.html"><i>regexp</i>(7)</a> with the addition of <tt><font size=+1>\n</font></tt>
to represent newlines. A regular expression may never contain
a literal newline character. The empty regular expression stands
for the last complete expression encountered. A regular expression
in <i>sam</i> matches the longest leftmost substring formally
matched by the expression. Searching in the reverse direction
is equivalent to searching backwards with the catenation operations
reversed in the expression.<br>
<p><font size=+1><b>Addresses </b></font><br>
An address identifies a substring in a file. In the following,
&#8216;character <i>n</i>&#8217; means the null string after the <i>n</i>-th character in
the file, with 1 the first character in the file. &#8216;Line <i>n</i>&#8217; means
the <i>n</i>-th match, starting at the beginning of the file, of the
regular expression <tt><font size=+1>.*\n?</font></tt>. All files always have a current substring,
called
dot, that is the default address.<br>
<p><font size=+1><b>Simple Addresses </b></font><br>
<tt><font size=+1>#</font></tt><i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;The empty string after character <i>n</i>; <tt><font size=+1>#0</font></tt> is the beginning of the
file.<br>
<i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Line <i>n</i>; <tt><font size=+1>0</font></tt> is the beginning of the file.<br>
<tt><font size=+1>/</font></tt><i>regexp</i><tt><font size=+1>/<br>
?</font></tt><i>regexp</i><tt><font size=+1>?<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The substring that matches the regular expression, found by looking
toward the end (<tt><font size=+1>/</font></tt>) or beginning (<tt><font size=+1>?</font></tt>) of the file, and if necessary
continuing the search from the other end to the starting point
of the search. The matched substring may straddle the starting
point. When entering a pattern containing a literal
question mark for a backward search, the question mark should
be specified as a member of a class.<br>
</table>
<tt><font size=+1>0</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The string before the first full line. This is not necessarily
the null string; see <tt><font size=+1>+</font></tt> and <tt><font size=+1>&#8722;</font></tt> below.<br>
<tt><font size=+1>$</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The null string at the end of the file.<br>
<tt><font size=+1>.</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dot.<br>
<tt><font size=+1>'</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The mark in the file (see the <tt><font size=+1>k</font></tt> command below).<br>
&quot;<i>regexp</i>&quot;<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Preceding a simple address (default <tt><font size=+1>.</font></tt>), refers to the address
evaluated in the unique file whose menu line matches the regular
expression.<br>
</table>
<p><font size=+1><b>Compound Addresses </b></font><br>
In the following, <i>a1</i> and <i>a2</i> are addresses.<br>
<i>a1</i><tt><font size=+1>+</font></tt><i>a2</i>&nbsp;&nbsp;&nbsp;The address <i>a2</i> evaluated starting at the end of <i>a1</i>.<br>
<i>a1</i><tt><font size=+1>&#8722;</font></tt><i>a2</i>&nbsp;&nbsp;&nbsp;The address <i>a2</i> evaluated looking in the reverse direction
starting at the beginning of <i>a1</i>.<br>
<i>a1</i><tt><font size=+1>,</font></tt><i>a2</i>&nbsp;&nbsp;&nbsp;The substring from the beginning of <i>a1</i> to the end of <i>a2</i>.
If <i>a1</i> is missing, <tt><font size=+1>0</font></tt> is substituted. If <i>a2</i> is missing, <tt><font size=+1>$</font></tt> is substituted.<br>
<i>a1</i><tt><font size=+1>;</font></tt><i>a2</i>&nbsp;&nbsp;&nbsp;Like <i>a1</i><tt><font size=+1>,</font></tt><i>a2</i>, but with <i>a2</i> evaluated at the end of, and dot
set to, <i>a1</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The operators <tt><font size=+1>+</font></tt> and <tt><font size=+1>&#8722;</font></tt> are high precedence, while <tt><font size=+1>,</font></tt> and <tt><font size=+1>;</font></tt> are low
precedence.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
In both <tt><font size=+1>+</font></tt> and <tt><font size=+1>&#8722;</font></tt> forms, if <i>a2</i> is a line or character address with
a missing number, the number defaults to 1. If <i>a1</i> is missing,
<tt><font size=+1>.</font></tt> is substituted. If both <i>a1</i> and <i>a2</i> are present and distinguishable,
<tt><font size=+1>+</font></tt> may be elided. <i>a2</i> may be a regular expression; if it is delimited
by <tt><font size=+1>?</font></tt>&#8217;s, the effect of the <tt><font size=+1>+</font></tt> or <tt><font size=+1>&#8722;</font></tt> is reversed.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
It is an error for a compound address to represent a malformed
substring. Some useful idioms: <i>a1</i><tt><font size=+1>+&#8722;</font></tt> (<i>a1</i>-+) selects the line containing
the end (beginning) of a1. <tt><font size=+1>0/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> locates the first match of
the expression in the file. (The form <tt><font size=+1>0;//</font></tt> sets dot unnecessarily.)
<tt><font size=+1>./</font></tt><i>regexp</i><tt><font size=+1>///</font></tt> finds the second following
occurrence of the expression, and <tt><font size=+1>.,/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> extends dot.<br>
<p><font size=+1><b>Commands </b></font><br>
In the following, text demarcated by slashes represents text delimited
by any printable character except alphanumerics. Any number of
trailing delimiters may be elided, with multiple elisions then
representing null strings, but the first delimiter must always
be present. In any delimited text, newline may not appear
literally; <tt><font size=+1>\n</font></tt> may be typed for newline; and <tt><font size=+1>\/</font></tt> quotes the delimiter,
here <tt><font size=+1>/</font></tt>. Backslash is otherwise interpreted literally, except in
<tt><font size=+1>s</font></tt> commands.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Most commands may be prefixed by an address to indicate their
range of operation. Those that may not are marked with a <tt><font size=+1>*</font></tt> below.
If a command takes an address and none is supplied, dot is used.
The sole exception is the <tt><font size=+1>w</font></tt> command, which defaults to <tt><font size=+1>0,$</font></tt>. In
the description, &#8216;range&#8217; is used to represent whatever
address is supplied. Many commands set the value of dot as a side
effect. If so, it is always set to the &#8216;result&#8217; of the change:
the empty string for a deletion, the new text for an insertion,
etc. (but see the <tt><font size=+1>s</font></tt> and <tt><font size=+1>e</font></tt> commands).<br>
<p><font size=+1><b>Text commands </b></font><br>
<tt><font size=+1>a/</font></tt><i>text</i><tt><font size=+1>/<br>
</font></tt>or<br>
<tt><font size=+1>a<br>
</font></tt><i>lines of text<br>
</i><tt><font size=+1>.</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Insert the text into the file after the range. Set dot.<br>
<tt><font size=+1>c<br>
i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <tt><font size=+1>a</font></tt>, but <tt><font size=+1>c</font></tt> replaces the text, while <tt><font size=+1>i</font></tt> inserts <i>before</i> the
range.<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete the text in the range. Set dot.<br>
<tt><font size=+1>s/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt><i>text</i><tt><font size=+1>/<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Substitute <i>text</i> for the first match to the regular expression
in the range. Set dot to the modified range. In <i>text</i> the character
<tt><font size=+1>&amp;</font></tt> stands for the string that matched the expression. Backslash
behaves as usual unless followed by a digit: <tt><font size=+1>\</font></tt><i>d</i> stands for the
string that matched the subexpression begun by the <i>d</i>-th left
parenthesis. If <i>s</i> is followed immediately by a number <i>n</i>, as in
<tt><font size=+1>s2/x/y/</font></tt>, the <i>n</i>-th match in the range is substituted. If the command
is followed by a <tt><font size=+1>g</font></tt>, as in <tt><font size=+1>s/x/y/g</font></tt>, all matches in the range are
substituted.<br>
</table>
<tt><font size=+1>m</font></tt> <i>a1<br>
</i><tt><font size=+1>t</font></tt> <i>a1</i>&nbsp;&nbsp;&nbsp;Move (<tt><font size=+1>m</font></tt>) or copy (<tt><font size=+1>t</font></tt>) the range to after <i>a1</i>. Set dot.<br>
<p><font size=+1><b>Display commands </b></font><br>
<tt><font size=+1>p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the text in the range. Set dot.<br>
<tt><font size=+1>=</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the line address and character address of the range.<br>
<tt><font size=+1>=#</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print just the character address of the range.<br>
<p><font size=+1><b>File commands </b></font><br>
* <tt><font size=+1>b</font></tt> <i>file-list<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Set the current file to the first file named in the list that
<i>sam</i> also has in its menu. The list may be expressed <tt><font size=+1>&lt;</font></tt><i>Plan 9 command</i>
in which case the file names are taken as words (in the shell
sense) generated by the Plan 9 command.<br>
</table>
* <tt><font size=+1>B</font></tt> <i>file-list<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Same as <tt><font size=+1>b</font></tt>, except that file names not in the menu are entered
there, and all file names in the list are examined.<br>
</table>
* <tt><font size=+1>n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print a menu of files. The format is:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>'</font></tt> or blankindicating the file is modified or clean,<br>
<tt><font size=+1>&#8722;</font></tt> or <tt><font size=+1>+</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;indicating the file is unread or has been read (in the terminal,
<tt><font size=+1>*</font></tt> means more than one window is open),<br>
<tt><font size=+1>.</font></tt> or blankindicating the current file,<br>
a blank,<br>
and the file name.<br>
</table>
* <tt><font size=+1>D</font></tt> <i>file-list<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Delete the named files from the menu. If no files are named, the
current file is deleted. It is an error to <tt><font size=+1>D</font></tt> a modified file,
but a subsequent <tt><font size=+1>D</font></tt> will delete such a file.<br>
</table>
<p><font size=+1><b>I/O Commands </b></font><br>
* <tt><font size=+1>e</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Replace the file by the contents of the named external file. Set
dot to the beginning of the file.<br>
</table>
<tt><font size=+1>r</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Replace the text in the range by the contents of the named external
file. Set dot.<br>
</table>
<tt><font size=+1>w</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Write the range (default <tt><font size=+1>0,$</font></tt>) to the named external file.<br>
</table>
* <tt><font size=+1>f</font></tt> <i>filename<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Set the file name and print the resulting menu entry.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
If the file name is absent from any of these, the current file
name is used. <tt><font size=+1>e</font></tt> always sets the file name; <tt><font size=+1>r</font></tt> and <tt><font size=+1>w</font></tt> do so if the
file has no name.<br>
<tt><font size=+1>&lt;</font></tt> <i>Plan 9-command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Replace the range by the standard output of the Plan 9 command.<br>
</table>
<tt><font size=+1>&gt;</font></tt> <i>Plan 9-command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Send the range to the standard input of the Plan 9 command.<br>
</table>
<tt><font size=+1>|</font></tt> <i>Plan 9-command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Send the range to the standard input, and replace it by the standard
output, of the Plan 9 command.<br>
</table>
* <tt><font size=+1>!</font></tt> <i>Plan 9-command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Run the Plan 9 command.<br>
</table>
* <tt><font size=+1>cd</font></tt> <i>directory<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Change working directory. If no directory is specified, <tt><font size=+1>$home</font></tt>
is used.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
In any of <tt><font size=+1>&lt;</font></tt>, <tt><font size=+1>&gt;</font></tt>, <tt><font size=+1>|</font></tt> or <tt><font size=+1>!</font></tt>, if the <i>Plan 9 command</i> is omitted the last
<i>Plan 9 command</i> (of any type) is substituted. If <i>sam</i> is <i>downloaded</i>
(using the mouse and raster display, i.e. not using option <tt><font size=+1>&#8722;d</font></tt>),
<tt><font size=+1>!</font></tt> sets standard input to <tt><font size=+1>/dev/null</font></tt>, and otherwise unassigned output
(<tt><font size=+1>stdout</font></tt> for <tt><font size=+1>!</font></tt> and <tt><font size=+1>&gt;</font></tt>, <tt><font size=+1>stderr</font></tt> for all) is placed in
<tt><font size=+1>/tmp/sam.err</font></tt> and the first few lines are printed.<br>
<p><font size=+1><b>Loops and Conditionals </b></font><br>
<tt><font size=+1>x/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
For each match of the regular expression in the range, run the
command with dot set to the match. Set dot to the last match.
If the regular expression and its slashes are omitted, <tt><font size=+1>/.*\n/</font></tt>
is assumed. Null string matches potentially occur before every
character of the range and at the end of the range.
</table>
<tt><font size=+1>y/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Like <tt><font size=+1>x</font></tt>, but run the command for each substring that lies before,
between, or after the matches that would be generated by <tt><font size=+1>x</font></tt>. There
is no default regular expression. Null substrings potentially
occur before every character in the range.<br>
</table>
* <tt><font size=+1>X/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
For each file whose menu entry matches the regular expression,
make that the current file and run the command. If the expression
is omitted, the command is run in every file.<br>
</table>
* <tt><font size=+1>Y/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Same as <tt><font size=+1>X</font></tt>, but for files that do not match the regular expression,
and the expression is required.<br>
</table>
<tt><font size=+1>g/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> <i>command<br>
</i><tt><font size=+1>v/</font></tt><i>regexp</i><tt><font size=+1>/</font></tt> <i>command<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
If the range contains (<tt><font size=+1>g</font></tt>) or does not contain (<tt><font size=+1>v</font></tt>) a match for
the expression, set dot to the range and run the command.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
These may be nested arbitrarily deeply, but only one instance
of either <tt><font size=+1>X</font></tt> or <tt><font size=+1>Y</font></tt> may appear in a single command. An empty command
in an <tt><font size=+1>x</font></tt> or <tt><font size=+1>y</font></tt> defaults to <tt><font size=+1>p</font></tt>; an empty command in <tt><font size=+1>X</font></tt> or <tt><font size=+1>Y</font></tt> defaults
to <tt><font size=+1>f</font></tt>. <tt><font size=+1>g</font></tt> and <tt><font size=+1>v</font></tt> do not have defaults.<br>
<p><font size=+1><b>Miscellany </b></font><br>
<tt><font size=+1>k</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the current file&#8217;s mark to the range. Does not set dot.<br>
* <tt><font size=+1>q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quit. It is an error to quit with modified files, but a second
<tt><font size=+1>q</font></tt> will succeed.<br>
* <tt><font size=+1>u</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Undo the last <i>n</i> (default 1) top-level commands that changed
the contents or name of the current file, and any other file whose
most recent change was simultaneous with the current file&#8217;s change.
Successive <tt><font size=+1>u</font></tt>&#8217;s move further back in time. The only commands for
which u is ineffective are <tt><font size=+1>cd</font></tt>, <tt><font size=+1>u</font></tt>, <tt><font size=+1>q</font></tt>, <tt><font size=+1>w</font></tt> and
<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>
<tt><font size=+1>D</font></tt>. If <i>n</i> is negative, <tt><font size=+1>u</font></tt> &#8216;redoes,&#8217; undoing the undo, going forwards
in time again.<br>
</table>
</table>
(empty)&nbsp;&nbsp;&nbsp;&nbsp;If the range is explicit, set dot to the range. If <i>sam</i>
is downloaded, the resulting dot is selected on the screen; otherwise
it is printed. If no address is specified (the command is a newline)
dot is extended in either direction to line boundaries and printed.
If dot is thereby unchanged, it is set to <tt><font size=+1>.+1</font></tt> and
<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>
printed.<br>
</table>
</table>
<p><font size=+1><b>Grouping and multiple changes </b></font><br>
Commands may be grouped by enclosing them in braces <tt><font size=+1>{}</font></tt>. Commands
within the braces must appear on separate lines (no backslashes
are required between commands). Semantically, an opening brace
is like a command: it takes an (optional) address and sets dot
for each sub-command. Commands within the
braces are executed sequentially, but changes made by one command
are not visible to other commands (see the next paragraph). Braces
may be nested arbitrarily.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When a command makes a number of changes to a file, as in <tt><font size=+1>x/re/c/text/</font></tt>,
the addresses of all changes to the file are computed in the original
file. If the changes are in sequence, they are applied to the
file. Successive insertions at the same address are catenated
into a single insertion composed of the several
insertions in the order applied.<br>
<p><font size=+1><b>The terminal </b></font><br>
What follows refers to behavior of <i>sam</i> when downloaded, that is,
when operating as a display editor on a raster display. This is
the default behavior; invoking <i>sam</i> with the <tt><font size=+1>&#8722;d</font></tt> (no download) option
provides access to the command language only.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Each file may have zero or more windows open. Each window is equivalent
and is updated simultaneously with changes in other windows on
the same file. Each window has an independent value of dot, indicated
by a highlighted substring on the display. Dot may be in a region
not within the window. There is usually
a &#8216;current window&#8217;, marked with a dark border, to which typed
text and editing commands apply. Text may be typed and edited
as in <a href="../man1/rio.html"><i>rio</i>(1)</a>; also the escape key (ESC) selects (sets dot to)
text typed since the last mouse button hit.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The button 3 menu controls window operations. The top of the menu
provides the following operators, each of which uses one or more
<i>rio</i>-like cursors to prompt for selection of a window or sweeping
of a rectangle. &#8216;Sweeping&#8217; a null rectangle gets a large window,
disjoint from the command window or the whole
screen, depending on where the null rectangle is.<br>
<tt><font size=+1>new</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new, empty file.<br>
<tt><font size=+1>zerox</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Create a copy of an existing window.<br>
<tt><font size=+1>resize</font></tt>&nbsp;&nbsp;&nbsp;As in <i>rio</i>.<br>
<tt><font size=+1>close</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Delete the window. In the last window of a file, <tt><font size=+1>close</font></tt> is
equivalent to a <tt><font size=+1>D</font></tt> for the file.<br>
<tt><font size=+1>write</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Equivalent to a <tt><font size=+1>w</font></tt> for the file.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Below these operators is a list of available files, starting with
<tt><font size=+1>~~sam~~</font></tt>, the command window. Selecting a file from the list makes
the most recently used window on that file current, unless it
is already current, in which case selections cycle through the
open windows. If no windows are open on the file, the user is
prompted to open one. Files other than <tt><font size=+1>~~sam~~</font></tt> are marked with
one of the characters <tt><font size=+1>&#8722;+*</font></tt> according as zero, one, or more windows
are open on the file. A further mark <tt><font size=+1>.</font></tt> appears on the file in
the current window and a single quote, <tt><font size=+1>'</font></tt>, on a file modified since
last write.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The command window, created automatically when <tt><font size=+1>sam</font></tt> starts, is
an ordinary window except that text typed to it is interpreted
as commands for the editor rather than passive text, and text
printed by editor commands appears in it. The behavior is like
<i>rio</i>, with an &#8216;output point&#8217; that separates commands being typed
from previous output. Commands typed in the command window apply
to the current open file--the file in the most recently current
window.<br>
<p><font size=+1><b>Manipulating text </b></font><br>
Button 1 changes selection, much like <i>rio</i>. Pointing to a non-current
window with button 1 makes it current; within the current window,
button 1 selects text, thus setting dot. Double-clicking selects
text to the boundaries of words, lines, quoted strings or bracketed
strings, depending on the text at the click.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Button 2 provides a menu of editing commands:<br>
<tt><font size=+1>cut</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete dot and save the deleted text in the snarf buffer.<br>
<tt><font size=+1>paste</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the text in dot by the contents of the snarf buffer.<br>
<tt><font size=+1>snarf</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Save the text in dot in the snarf buffer.<br>
<tt><font size=+1>plumb</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send the text in the selection as a plumb message. If the
selection is empty, the white-space-delimited block of text is
sent as a plumb message with a <tt><font size=+1>click</font></tt> attribute defining where
the selection lies (see <a href="../man7/plumb.html"><i>plumb</i>(7)</a>).<br>
<tt><font size=+1>look</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Search forward for the next occurrence of the literal text
in dot. If dot is the null string, the text in the snarf buffer
is used. The snarf buffer is unaffected.<br>
<tt><font size=+1>&lt;rio&gt;</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exchange snarf buffers with <i>rio</i>.<br>
<tt><font size=+1>/</font></tt><i>regexp</i>&nbsp;&nbsp;&nbsp;&nbsp;Search forward for the next match of the last regular expression
typed in a command. (Not in command window.)<br>
<tt><font size=+1>send</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send the text in dot, or the snarf buffer if dot is the null
string, as if it were typed to the command window. Saves the sent
text in the snarf buffer. (Command window only.)<br>
<p><font size=+1><b>External communication </b></font><br>
<i>Sam</i> listens to the <tt><font size=+1>edit</font></tt> plumb port. If plumbing is not active,
on invocation <i>sam</i> creates a named pipe <tt><font size=+1>/srv/sam.</font></tt><i>user</i> which acts
as an additional source of commands. Characters written to the
named pipe are treated as if they had been typed in the command
window.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>B</i> is a shell-level command that causes an instance of <i>sam</i> running
on the same terminal to load the named <i>files</i>. <i>B</i> uses either plumbing
or the named pipe, whichever service is available. If plumbing
is not enabled, the option allows a line number to be specified
for the initial position to display in the last named file
(plumbing provides a more general mechanism for this ability).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>E</i> is a shell-level command that can be used as <tt><font size=+1>$EDITOR</font></tt> in a Unix
environment. It runs <i>B</i> on <i>file</i> and then does not exit until <i>file</i>
is changed, which is taken as a signal that <i>file</i> is done being
edited.<br>
<p><font size=+1><b>Abnormal termination </b></font><br>
If <i>sam</i> terminates other than by a <tt><font size=+1>q</font></tt> command (by hangup, deleting
its window, etc.), modified files are saved in an executable file,
<tt><font size=+1>$HOME/sam.save</font></tt>. This program, when executed, asks whether to write
each file back to a external file. The answer <tt><font size=+1>y</font></tt> causes writing;
anything else skips the file.
</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/sam.save<br>
$HOME/sam.err<br>
/usr/local/plan9/bin/samsave<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>
the program called to unpack <tt><font size=+1>$HOME/sam.save</font></tt>.<br>
</table>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/sam</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;source for <i>sam</i> itself<br>
<tt><font size=+1>/usr/local/plan9/src/cmd/samterm</font></tt>&nbsp;&nbsp;&nbsp;source for the separate terminal
part<br>
<tt><font size=+1>/usr/local/plan9/bin/B<br>
/usr/local/plan9/bin/E<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/ed.html"><i>ed</i>(1)</a>, <a href="../man1/sed.html"><i>sed</i>(1)</a>, <a href="../man1/grep.html"><i>grep</i>(1)</a>, <a href="../man1/rio.html"><i>rio</i>(1)</a>, <a href="../man7/regexp.html"><i>regexp</i>(7)</a>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Rob Pike, &#8220;The text editor sam&#8221;.<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>

385
man/man1/scat.html Normal file
View File

@ -0,0 +1,385 @@
<head>
<title>scat(1) - 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>SCAT(1)</b><td align=right><b>SCAT(1)</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>
scat &ndash; sky catalogue and Digitized Sky Survey<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>scat<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>
<i>Scat</i> looks up items in catalogues of objects outside the solar
system and implements database-like manipulations on sets of such
objects. It also provides an interface to <a href="../man1/astro.html"><i>astro</i>(1)</a> to plot the
locations of solar system objects. Finally, it displays images
from the Space Telescope Science Institute&#8217;s Digitized Sky Survey,
keyed to the catalogues.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Items are read, one per line, from the standard input and looked
up in the catalogs. Input is case-insensitive. The result of the
lookup becomes the set of objects available to the database commands.
After each lookup or command, if more than two objects are in
the set, <i>scat</i> prints how many objects are in the set;
otherwise it prints the objects&#8217; descriptions or cross-index listings
(suitable for input to <i>scat</i>). An item is in one of the following
formats:<br>
<tt><font size=+1>ngc1234<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Number 1234 in the New General Catalogue of Nonstellar Objects,
NGC2000.0. The output identifies the type (<tt><font size=+1>Gx</font></tt>=galaxy, <tt><font size=+1>Pl</font></tt>=planetary
nebula, <tt><font size=+1>OC</font></tt>=open cluster, <tt><font size=+1>Gb</font></tt>=globular cluster, <tt><font size=+1>Nb</font></tt>=bright nebula,
<tt><font size=+1>C+N</font></tt>=cluster associated with nebulosity, <tt><font size=+1>Ast</font></tt>=asterism, <tt><font size=+1>Kt</font></tt>=knot
or nebulous region in a galaxy,
<tt><font size=+1>***</font></tt>=triple star, <tt><font size=+1>D*</font></tt>=double star, <tt><font size=+1>?</font></tt>=uncertain, <tt><font size=+1>&#8722;</font></tt>=nonexistent, <tt><font size=+1>PD</font></tt>=plate
defect, and (blank)=unverified or unknown), its position in 2000.0
coordinates, its size in minutes of arc, a brief description,
and popular names.<br>
</table>
<tt><font size=+1>ic1234<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Like NGC references, but from the Index Catalog.<br>
</table>
<tt><font size=+1>sao12345<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Number 12345 in the Smithsonian Astrophysical Star Catalogue.
Output identifies the visual and photographic magnitudes, 2000.0
coordinates, proper motion, spectral type, multiplicity and variability
class, and HD number.<br>
</table>
<tt><font size=+1>m4</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Catalog number 4 in Messier&#8217;s catalog. The output is the NGC
number.<br>
<tt><font size=+1>abell1701<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Catalog number 1701 in the Abell and Zwicky catalog of clusters
of galaxies. Output identifies the magnitude of the tenth brightest
member of the cluster, radius of the cluster in degrees, its distance
in megaparsecs, 2000.0 coordinates, galactic latitude and longitude,
magnitude range of the cluster (the
&#8216;distance group&#8217;), number of members (the &#8216;richness group&#8217;), population
per square degree, and popular names.<br>
</table>
<tt><font size=+1>planetarynebula<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The set of NGC objects of the specified type. The type may be
a compact NGC code or a full name, as above, with no blank.<br>
</table>
<tt><font size=+1>&quot;&#945; umi&quot;<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Names are provided in double quotes. Known names are the Greek
letter designations, proper names such as Betelgeuse, bright variable
stars, and some proper names of stars, NGC objects, and Abell
clusters. Greek letters may be spelled out, e.g. <tt><font size=+1>alpha</font></tt>. Constellation
names must be the three-letter
abbreviations. The output is the SAO number. For non-Greek names,
catalog numbers and names are listed for all objects with names
for which the given name is a prefix.<br>
</table>
<tt><font size=+1>12h34m &#8722;16<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Coordinates in the sky are translated to the nearest &#8216;patch&#8217;,
approximately one square degree of sky. The output is the coordinates
identifying the patch, the constellations touching the patch,
and the Abell, NGC, and SAO objects in the patch. The program
prints sky positions in several formats corresponding to
different precisions; any output format is understood as input.<br>
</table>
<tt><font size=+1>umi</font></tt>&nbsp;&nbsp;&nbsp;All the patches in the named constellation.<br>
<tt><font size=+1>mars</font></tt>The planets are identified by their names. The names <tt><font size=+1>shadow</font></tt>
and <tt><font size=+1>comet</font></tt> refer to the earth&#8217;s penumbra at lunar distance and
the comet installed in the current <a href="../man1/astro.html"><i>astro</i>(1)</a>. The output is the
planet&#8217;s name, right ascension and declination, azimuth and altitude,
and phase for the moon and sun, as shown by
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>astro</font></tt>. The positions are current at the start of <i>scat</i>&#8217;s execution;
see the <tt><font size=+1>astro</font></tt> command in the next section for more information.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
The commands are:<br>
<tt><font size=+1>add</font></tt> <i>item</i>Add the named item to the set.<br>
<tt><font size=+1>keep</font></tt> <i>class ...<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>
Flatten the set and cull it, keeping only the specified classes.
The classes may be specific NGC types, all stars (<tt><font size=+1>sao</font></tt>), all NGC
objects (<tt><font size=+1>ngc</font></tt>), all M objects (<tt><font size=+1>m</font></tt>), all Abell clusters (<tt><font size=+1>abell</font></tt>),
or a specified brightness range. Brightness ranges are specified
by a leading <tt><font size=+1>&gt;</font></tt> or <tt><font size=+1>&lt;</font></tt> followed by a magnitude. Remember
that brighter objects have lesser magnitudes.<br>
</table>
</table>
<tt><font size=+1>drop</font></tt> <i>class ...<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>
Complement to <tt><font size=+1>keep</font></tt>.<br>
</table>
</table>
<tt><font size=+1>flat</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Some items such as patches represents sets of items. <i>Flat</i>
flattens the set so <i>scat</i> holds all the information available for
the objects in the set.<br>
<tt><font size=+1>print</font></tt>&nbsp;&nbsp;&nbsp;Print the contents of the set. If the information seems meager,
try flattening the set.<br>
<tt><font size=+1>expand</font></tt> <i>n<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>
Flatten the set, expand the area of the sky covered by the set
to be <i>n</i> degrees wider, and collect all the objects in that area.
If <i>n</i> is zero, <i>expand</i> collects all objects in the patches that
cover the current set.<br>
</table>
</table>
<tt><font size=+1>astro</font></tt> <i>option<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>
Run <a href="../man1/astro.html"><i>astro</i>(1)</a> with the specified <i>options</i> (to which will be appended
<tt><font size=+1>&#8722;p</font></tt>), to discover the positions of the planets. <tt><font size=+1>Astro</font></tt>&#8217;s <tt><font size=+1>&#8722;d</font></tt> and
<tt><font size=+1>&#8722;l</font></tt> options can be used to set the time and place; by default,
it&#8217;s right now at the coordinates in <tt><font size=+1>/lib/sky/here</font></tt>. Running <tt><font size=+1>astro</font></tt>
does not change the positions of planets
already in the display set, so <tt><font size=+1>astro</font></tt> may be run multiple times,
executing e.g. <tt><font size=+1>add mars</font></tt> each time, to plot a series of planetary
positions.<br>
</table>
</table>
<tt><font size=+1>plot</font></tt> <i>option<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>
Expand and plot the set in a new window on the screen. Symbols
for NGC objects are as in Sky Atlas 2000.0, except that open clusters
are shown as stippled disks rather than circles. Abell clusters
are plotted as a triangle of ellipses. The planets are drawn as
disks of representative color with the first letter
of the name in the disk (lower case for inferior planets; upper
case for superior); the sun, moon, and earth&#8217;s shadow are unlabeled
disks. Objects larger than a few pixels are plotted to scale;
however, <i>scat</i> does not have the information necessary to show
the correct orientation for galaxies.
The option <tt><font size=+1>nogrid</font></tt> suppresses the lines of declination and right
ascension. By default, <i>scat</i> labels NGC objects, Abell clusters,
and bright stars; option <tt><font size=+1>nolabel</font></tt> suppresses these while <tt><font size=+1>alllabel</font></tt>
labels stars with their SAO number as well. The default size is
512x512; options <tt><font size=+1>dx</font></tt> <i>n</i> and <tt><font size=+1>dy</font></tt> <i>n</i> set the <i>x</i> and
<i>y</i> extent. The option <tt><font size=+1>zenithup</font></tt> orients the map so it appears as
it would in the sky at the time and location used by the <tt><font size=+1>astro</font></tt>
command (<i>q.v.</i>).<br>
The output is designed to look best on an LCD display. CRTs have
trouble with the thin, grey lines and dim stars. The option <tt><font size=+1>nogrey</font></tt>
uses white instead of grey for these details, improving visibility
at the cost of legibility when plotting on CRTs.<br>
</table>
</table>
<tt><font size=+1>plate</font></tt> [[<i>ra dec</i>] <i>rasize</i> [<i>decsize</i>]]<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>
Display the section of the Digitized Sky Survey (plate scale approximately
1.7 arcseconds per pixel) centered on the given right ascension
and declination or, if no position is specified, the current set
of objects. The maximum area that will be displayed is one degree
on a side. The horizontal and vertical sizes
may be specified in the usual notation for angles. If the second
size is omitted, a square region is displayed. If no size is specified,
the size is sufficient to display the centers of all the objects
in the current set. If a single object is in the set, the 500x500
pixel block from the survey containing the center of
the object is displayed. The survey is stored in the CD-ROM juke
box; run <tt><font size=+1>9fs juke</font></tt> before running <i>scat</i>.<br>
</table>
</table>
<tt><font size=+1>gamma</font></tt> <i>value<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>
Set the gamma for converting plates to images. Default is &ndash;1.0.
Negative values display white stars, positive black. The images
look best on displays with depth 8 or greater. <i>Scat</i> does not change
the hardware color map, which should be set externally to a grey
scale; try the command <tt><font size=+1>getmap gamma</font></tt> (see
<i>getmap</i>(9.1)) on an 8-bit color-mapped display.<br>
</table>
</table>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Plot the Messier objects and naked-eye stars in Orion.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>ori<br>
keep m &lt;6<br>
plot nogrid<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Draw a finder chart for Uranus:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>uranus<br>
expand 5<br>
plot<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Show a partial lunar eclipse:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>astro &#8722;d<br>
2000 07 16 12 45<br>
moon<br>
add shadow<br>
expand 2<br>
plot<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Draw a map of the Pleiades.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>&quot;alcyone&quot;<br>
expand 1<br>
plot<br>
</font></tt>
</table>
</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/sky/*.scat<br>
</font></tt>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/scat<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/astro.html"><i>astro</i>(1)</a><br>
<tt><font size=+1>/usr/local/plan9/sky/constelnames </font></tt> the three-letter abbreviations
of the constellation names.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The data was provided by the Astronomical Data Center at the NASA
Goddard Space Flight Center, except for NGC2000.0, which is Copyright
&copy; 1988, Sky Publishing Corporation, used (but not distributed)
by permission. The Digitized Sky Survey, 102 CD-ROMs, is not distributed
with the system.
</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>

145
man/man1/secstore.html Normal file
View File

@ -0,0 +1,145 @@
<head>
<title>secstore(1) - 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>SECSTORE(1)</b><td align=right><b>SECSTORE(1)</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>
aescbc, secstore, ipso &ndash; secstore commands<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>secstore</font></tt> [ <tt><font size=+1>&#8722;s</font></tt> <i>server</i> ] [ <tt><font size=+1>&#8722;(g|G)</font></tt> <i>getfile</i> ] [ <tt><font size=+1>&#8722;p</font></tt> <i>putfile</i> ] [ <tt><font size=+1>&#8722;r</font></tt>
<i>rmfile</i> ] [ <tt><font size=+1>&#8722;c</font></tt> ] [ <tt><font size=+1>&#8722;u</font></tt> <i>user</i> ] [ <tt><font size=+1>&#8722;v</font></tt> ] [ <tt><font size=+1>&#8722;i</font></tt> ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>aescbc</font></tt> -e <i>&lt;cleartext &gt;ciphertext<br>
</i><tt><font size=+1>aescbc</font></tt> -d <i>&lt;ciphertext &gt;cleartext
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</i>
<tt><font size=+1>ipso</font></tt> [ <tt><font size=+1>&#8722;a &#8722;e &#8722;l &#8722;f &#8722;s</font></tt> ] [ <i>file</i> ... ]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</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>
<i>Secstore</i> authenticates to the server using a password and optionally
a hardware token, then saves or retrieves a file. This is intended
to be a credentials store (public/private keypairs, passwords,
and other secrets) for a factotum.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;p</font></tt> stores a file on the secstore.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;g</font></tt> retrieves a file to the local directory; option <tt><font size=+1>&#8722;G</font></tt> writes
it to standard output instead. Specifying <i>getfile</i> of . will send
to standard output a list of remote files with dates, lengths
and SHA1 hashes.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;r</font></tt> removes a file from the secstore.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;c</font></tt> prompts for a password change.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;v</font></tt> produces more verbose output, in particular providing
a few bits of feedback to help the user detect mistyping.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;i</font></tt> says that the password should be read from standard
input instead of from <tt><font size=+1>/dev/cons</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Option <tt><font size=+1>&#8722;n</font></tt> says that the password should be read from NVRAM instead
of from <tt><font size=+1>/dev/cons</font></tt>. This option is unsupported.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The server is <tt><font size=+1>tcp!$auth!5356</font></tt>, or the server specified by option
<tt><font size=+1>&#8722;s</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
For example, to add a secret to the file read by <a href="../man4/factotum.html"><i>factotum</i>(4)</a> at
startup, open a new window, type<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>% ramfs &#8722;p; cd /tmp<br>
% auth/secstore &#8722;g factotum<br>
secstore password:<br>
% echo 'key proto=apop dom=x.com user=ehg !password=hi' &gt;&gt; factotum<br>
% auth/secstore &#8722;p factotum<br>
secstore password:<br>
% read &#8722;m factotum &gt; /mnt/factotum/ctl<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
and delete the window. The first line creates an ephemeral memory-resident
workspace, invisible to others and automatically removed when
the window is deleted. The next three commands fetch the persistent
copy of the secrets, append a new secret, and save the updated
file back to secstore. The final command
loads the new secret into the running factotum.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Aescbc</i> encrypts and decrypts using AES (Rijndael) in cipher block
chaining (CBC) mode.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/secstore<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="../man4/factotum.html"><i>factotum</i>(4)</a>, Plan 9&#8217;s <i>secstore</i>(8)<br>
</table>
<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 is deliberately no backup of files on the secstore, so <tt><font size=+1>&#8722;r</font></tt>
(or a disk crash) is irrevocable. You are advised to store important
secrets in a second location.<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>

300
man/man1/sed.html Normal file
View File

@ -0,0 +1,300 @@
<head>
<title>sed(1) - 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>SED(1)</b><td align=right><b>SED(1)</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>
sed &ndash; stream editor<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>sed</font></tt> [ <tt><font size=+1>&#8722;n</font></tt> ] [ <tt><font size=+1>&#8722;g</font></tt> ] [ <tt><font size=+1>&#8722;e</font></tt> <i>script</i> ] [ <tt><font size=+1>&#8722;f</font></tt> <i>sfile</i> ] [ <i>file ...</i> ]<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>
<i>Sed</i> copies the named <i>files</i> (standard input default) to the standard
output, edited according to a script of commands. The <tt><font size=+1>&#8722;f</font></tt> option
causes the script to be taken from file <i>sfile</i>; these options accumulate.
If there is just one <tt><font size=+1>&#8722;e</font></tt> option and no <tt><font size=+1>&#8722;f</font></tt>&#8217;s, the flag <tt><font size=+1>&#8722;e</font></tt> may be
omitted. The <tt><font size=+1>&#8722;n</font></tt> option suppresses the default
output; <tt><font size=+1>&#8722;g</font></tt> causes all substitutions to be global, as if suffixed
<tt><font size=+1>g</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A script consists of editing commands, one per line, of the following
form:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
[<i>address</i> [<tt><font size=+1>,</font></tt> <i>address</i>] ] <i>function</i> [<i>argument</i> ...]
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
In normal operation <i>sed</i> cyclically copies a line of input into
a <i>pattern space</i> (unless there is something left after a <tt><font size=+1>D</font></tt> command),
applies in sequence all commands whose <i>addresses</i> select that pattern
space, and at the end of the script copies the pattern space to
the standard output (except under <tt><font size=+1>&#8722;n</font></tt>) and deletes the
pattern space.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An <i>address</i> is either a decimal number that counts input lines
cumulatively across files, a <tt><font size=+1>$</font></tt> that addresses the last line of
input, or a context address, <tt><font size=+1>/</font></tt><i>regular-expression</i><tt><font size=+1>/</font></tt>, in the style
of <a href="../man7/regexp.html"><i>regexp</i>(7)</a>, with the added convention that <tt><font size=+1>\n</font></tt> matches a newline
embedded in the pattern space.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A command line with no addresses selects every pattern space.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A command line with one address selects each pattern space that
matches the address.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
A command line with two addresses selects the inclusive range
from the first pattern space that matches the first address through
the next pattern space that matches the second. (If the second
address is a number less than or equal to the line number first
selected, only one line is selected.) Thereafter the process is
repeated, looking again for the first address.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Editing commands can be applied to non-selected pattern spaces
by use of the negation function <tt><font size=+1>!</font></tt> (below).
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An argument denoted <i>text</i> consists of one or more lines, all but
the last of which end with <tt><font size=+1>\</font></tt> to hide the newline. Backslashes
in text are treated like backslashes in the replacement string
of an <tt><font size=+1>s</font></tt> command, and may be used to protect initial blanks and
tabs against the stripping that is done on every script line.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
An argument denoted <i>rfile</i> or <i>wfile</i> must terminate the command
line and must be preceded by exactly one blank. Each <i>wfile</i> is
created before processing begins. There can be at most 120 distinct
<i>wfile</i> arguments.<br>
<tt><font size=+1>a\<br>
</font></tt><i>text</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append. Place <i>text</i> on the output before reading the next input
line.<br>
<tt><font size=+1>b</font></tt> <i>label</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Branch to the <tt><font size=+1>:</font></tt> command bearing the <i>label</i>. If <i>label</i> is
empty, branch to the end of the script.<br>
<tt><font size=+1>c\<br>
</font></tt><i>text</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change. Delete the pattern space. With 0 or 1 address or at
the end of a 2-address range, place <i>text</i> on the output. Start
the next cycle.<br>
<tt><font size=+1>d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete the pattern space. Start the next cycle.<br>
<tt><font size=+1>D</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delete the initial segment of the pattern space through the first
newline. Start the next cycle.<br>
<tt><font size=+1>g</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the contents of the pattern space by the contents of
the hold space.<br>
<tt><font size=+1>G</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the contents of the hold space to the pattern space.<br>
<tt><font size=+1>h</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace the contents of the hold space by the contents of the
pattern space.<br>
<tt><font size=+1>H</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the contents of the pattern space to the hold space.<br>
<tt><font size=+1>i\<br>
</font></tt><i>text</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Insert. Place <i>text</i> on the standard output.<br>
<tt><font size=+1>n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy the pattern space to the standard output. Replace the pattern
space with the next line of input.<br>
<tt><font size=+1>N</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Append the next line of input to the pattern space with an embedded
newline. (The current line number changes.)<br>
<tt><font size=+1>p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print. Copy the pattern space to the standard output.<br>
<tt><font size=+1>P</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy the initial segment of the pattern space through the first
newline to the standard output.<br>
<tt><font size=+1>q</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Quit. Branch to the end of the script. Do not start a new cycle.<br>
<tt><font size=+1>r</font></tt> <i>rfile</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read the contents of <i>rfile</i>. Place them on the output before
reading the next input line.<br>
<tt><font size=+1>s/</font></tt><i>regular-expression</i><tt><font size=+1>/</font></tt><i>replacement</i><tt><font size=+1>/</font></tt><i>flags<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>
Substitute the <i>replacement</i> string for instances of the <i>regular-expression</i>
in the pattern space. Any character may be used instead of <tt><font size=+1>/</font></tt>.
For a fuller description see <a href="../man7/regexp.html"><i>regexp</i>(7)</a>. <i>Flags</i> is zero or more
of<br>
<tt><font size=+1>g</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Global. Substitute for all non-overlapping instances of the <i>regular
expression</i> rather than just the first one.<br>
<tt><font size=+1>p</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print the pattern space if a replacement was made.<br>
<tt><font size=+1>w</font></tt> <i>wfile<br>
</i>Write. Append the pattern space to <i>wfile</i> if a replacement was
made.<br>
</table>
</table>
<tt><font size=+1>t</font></tt> <i>label</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test. Branch to the <tt><font size=+1>:</font></tt> command bearing the <i>label</i> if any
substitutions have been made since the most recent reading of
an input line or execution of a <tt><font size=+1>t</font></tt>. If <i>label</i> is empty, branch to
the end of the script.<br>
<tt><font size=+1>w</font></tt><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wfile<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>
Write. Append the pattern space to <i>wfile</i>.<br>
</table>
</table>
<tt><font size=+1>x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exchange the contents of the pattern and hold spaces.<br>
<tt><font size=+1>y/</font></tt><i>string1</i><tt><font size=+1>/</font></tt><i>string2</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>
Transform. Replace all occurrences of characters in <i>string1</i> with
the corresponding character in <i>string2</i>. The lengths of <i>string1</i>
and <i>string2</i> must be equal.<br>
</table>
</table>
<tt><font size=+1>!</font></tt><i>function</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Don&#8217;t. Apply the <i>function</i> (or group, if <i>function</i> is <tt><font size=+1>{</font></tt>)
only to lines <i>not</i> selected by the address(es).<br>
<tt><font size=+1>:</font></tt> <i>label</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This command does nothing; it bears a <i>label</i> for <tt><font size=+1>b</font></tt> and <tt><font size=+1>t</font></tt>
commands to branch to.<br>
<tt><font size=+1>=</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Place the current line number on the standard output as a line.<br>
<tt><font size=+1>{</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Execute the following commands through a matching <tt><font size=+1>}</font></tt> only when
the pattern space is selected.<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>
An empty command is ignored.<br>
</table>
</table>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>sed 10q file<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the first 10 lines of the file.<br>
</table>
<tt><font size=+1>sed '/^$/d'<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Delete empty lines from standard input.<br>
</table>
<tt><font size=+1>sed 's/UNIX/&amp; system/g'<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Replace every instance of <tt><font size=+1>UNIX</font></tt> by <tt><font size=+1>UNIX system</font></tt>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<tt><font size=+1>sed 's/ *$// </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;drop trailing blanks<br>
<tt><font size=+1>/^$/d </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drop empty lines<br>
<tt><font size=+1>s/ &nbsp;&nbsp;&nbsp;*/\ </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;replace blanks by newlines<br>
<tt><font size=+1>/g<br>
/^$/d' chapter*<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the files <tt><font size=+1>chapter1</font></tt>, <tt><font size=+1>chapter2</font></tt>, etc. one word to a line.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</table>
<tt><font size=+1>nroff &#8722;ms manuscript | sed '<br>
${<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
/^$/p
</table>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if last line of file is empty, print it<br>
</table>
<tt><font size=+1>}<br>
//N </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if current line is empty, append next line<br>
<tt><font size=+1>/^\n$/D' </font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if two lines are empty, delete the first<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Delete all but one of each group of empty lines from a formatted
manuscript.<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/sed.c<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/ed.html"><i>ed</i>(1)</a>, <a href="../man1/grep.html"><i>grep</i>(1)</a>, <a href="../man1/awk.html"><i>awk</i>(1)</a>, <a href="../man1/lex.html"><i>lex</i>(1)</a>, <a href="../man1/sam.html"><i>sam</i>(1)</a>, <a href="../man7/regexp.html"><i>regexp</i>(7)</a><br>
L. E. McMahon, &#8216;SED -- A Non-interactive Text Editor&#8217;, Unix Research
System Programmer&#8217;s Manual, Volume 2.<br>
</table>
<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>
If input is from a pipe, buffering may consume characters beyond
a line on which a <tt><font size=+1>q</font></tt> command is executed.<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>

99
man/man1/seq.html Normal file
View File

@ -0,0 +1,99 @@
<head>
<title>seq(1) - 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>SEQ(1)</b><td align=right><b>SEQ(1)</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>
seq &ndash; print sequences of numbers<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>seq</font></tt> [ <tt><font size=+1>&#8722;w</font></tt> ] [ <tt><font size=+1>&#8722;f</font></tt><i>format</i> ] [ <i>first</i> [ <i>incr</i> ] ] <i>last<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>
<i>Seq</i> prints a sequence of numbers, one per line, from <i>first</i> (default
1) to as near <i>last</i> as possible, in increments of <i>incr</i> (default
1). The loop is:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>for(val = min; val &lt;= max; val += incr) print val;<br>
</font></tt>
</table>
The numbers are interpreted as floating point.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Normally integer values are printed as decimal integers. The options
are<br>
<tt><font size=+1>&#8722;f</font></tt><i>format</i>&nbsp;&nbsp;&nbsp;&nbsp;Use the <a href="../man3/print.html"><i>print</i>(3)</a>-style <i>format print</i> for printing each
(floating point) number. The default is <tt><font size=+1>%g</font></tt>.<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Equalize the widths of all numbers by padding with leading zeros
as necessary. Not effective with option <tt><font size=+1>&#8722;f</font></tt>, nor with numbers in
exponential notation.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>seq 0 .05 .1<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print <tt><font size=+1>0 0.05 0.1</font></tt> (on separate lines).<br>
</table>
<tt><font size=+1>seq &#8722;w 0 .05 .1<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print <tt><font size=+1>0.00 0.05 0.10</font></tt>.<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/seq.c<br>
</font></tt>
</table>
<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>
Option <tt><font size=+1>&#8722;w</font></tt> always surveys every value in advance. Thus <tt><font size=+1>seq &#8722;w 1000000000</font></tt>
is a painful way to get an &#8216;infinite&#8217; sequence.<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>

91
man/man1/sleep.html Normal file
View File

@ -0,0 +1,91 @@
<head>
<title>sleep(1) - 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>SLEEP(1)</b><td align=right><b>SLEEP(1)</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>
sleep &ndash; suspend execution for an interval<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>sleep</font></tt> <i>time<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>
<i>Sleep</i> suspends execution for <i>time</i> seconds.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Execute a command 100 seconds hence.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>{sleep 100; command}&amp;<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Repeat a command every 30 seconds.<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>while (){<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
command<br>
sleep 30<br>
</table>
}<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/sleep.c<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/sleep.html"><i>sleep</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>

200
man/man1/sort.html Normal file
View File

@ -0,0 +1,200 @@
<head>
<title>sort(1) - 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>SORT(1)</b><td align=right><b>SORT(1)</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>
sort &ndash; sort and/or merge files<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>sort</font></tt> [ <tt><font size=+1>&#8722;cmuMbdfinrwt</font></tt><i>x</i> ] [ <tt><font size=+1>+</font></tt><i>pos1</i> [ <tt><font size=+1>&#8722;</font></tt><i>pos2</i> ] ... ] ... [ <tt><font size=+1>&#8722;k</font></tt> <i>pos1</i>
[ <i>,pos2</i> ] ] ...<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>
&#8217; [ <tt><font size=+1>&#8722;o</font></tt> <i>output</i> ] [ <tt><font size=+1>&#8722;T</font></tt> <i>dir</i> ... ] [ <i>option</i> ... ] [ <i>file</i> ... ]<br>
</table>
</table>
</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>
<i>Sort</i> sorts lines of all the <i>files</i> together and writes the result
on the standard output. If no input files are named, the standard
input is sorted.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The default sort key is an entire line. Default ordering is lexicographic
by runes. The ordering is affected globally by the following options,
one or more of which may appear.<br>
<tt><font size=+1>&#8722;M</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Compare as months. The first three non-white space characters
of the field are folded to upper case and compared so that <tt><font size=+1>JAN</font></tt>
precedes <tt><font size=+1>FEB</font></tt>, etc. Invalid fields compare low to <tt><font size=+1>JAN</font></tt>.<br>
<tt><font size=+1>&#8722;b</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Ignore leading white space (spaces and tabs) in field comparisons.<br>
<tt><font size=+1>&#8722;d</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&#8216;Phone directory&#8217; order: only letters, accented letters, digits
and white space are significant in comparisons.<br>
<tt><font size=+1>&#8722;f</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Fold lower case letters onto upper case. Accented characters
are folded to their non-accented upper case form.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Ignore characters outside the ASCII range 040-0176 in non-numeric
comparisons.<br>
<tt><font size=+1>&#8722;w</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Like <tt><font size=+1>&#8722;i</font></tt>, but ignore only tabs and spaces.<br>
<tt><font size=+1>&#8722;n</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;An initial numeric string, consisting of optional white space,
optional plus or minus sign, and zero or more digits with optional
decimal point, is sorted by arithmetic value.<br>
<tt><font size=+1>&#8722;g</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Numbers, like <tt><font size=+1>&#8722;n</font></tt> but with optional <tt><font size=+1>e</font></tt>-style exponents, are sorted
by value.<br>
<tt><font size=+1>&#8722;r</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Reverse the sense of comparisons.<br>
<tt><font size=+1>&#8722;t</font></tt><i>x</i>&nbsp;&nbsp;&nbsp;&#8216;Tab character&#8217; separating fields is <i>x</i>.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The notation <tt><font size=+1>+</font></tt><i>pos1</i> <tt><font size=+1>&#8722;</font></tt><i>pos2</i> restricts a sort key to a field beginning
at <i>pos1</i> and ending just before <i>pos2</i>. <i>Pos1</i> and <i>pos2</i> each have the
form <i>m</i><tt><font size=+1>.</font></tt><i>n</i>, optionally followed by one or more of the flags <tt><font size=+1>Mbdfginr</font></tt>,
where <i>m</i> tells a number of fields to skip from the beginning of
the line and <i>n</i> tells a number of characters to skip
further. If any flags are present they override all the global
ordering options for this key. A missing <tt><font size=+1>.</font></tt><i>n</i> means <tt><font size=+1>.0</font></tt>; a missing
<tt><font size=+1>&#8722;</font></tt><i>pos2</i> means the end of the line. Under the <tt><font size=+1>&#8722;t</font></tt><i>x</i> option, fields
are strings separated by <i>x</i>; otherwise fields are non-empty strings
separated by white space. White space before a field is part of
the field, except under option <tt><font size=+1>&#8722;b</font></tt>. A <tt><font size=+1>b</font></tt> flag may be attached independently
to <i>pos1</i> and <i>pos2.</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The notation <tt><font size=+1>&#8722;k</font></tt> <i>pos1</i>[,<i>pos2</i>] is how POSIX <i>sort</i> defines fields:
<i>pos1</i> and <i>pos2</i> have the same format but different meanings. The
value of <i>m</i> is origin 1 instead of origin 0 and a missing <tt><font size=+1>.</font></tt><i>n</i> in
<i>pos2</i> is the end of the field.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
When there are multiple sort keys, later keys are compared only
after all earlier keys compare equal. Lines that otherwise compare
equal are ordered with all bytes significant.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
These option arguments are also understood:<br>
<tt><font size=+1>&#8722;c</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check that the single input file is sorted according to the
ordering rules; give no output unless the file is out of sort.<br>
<tt><font size=+1>&#8722;m</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Merge; assume the input files are already sorted.<br>
<tt><font size=+1>&#8722;u</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suppress all but one in each set of equal lines. Ignored bytes
and bytes outside keys do not participate in this comparison.<br>
<tt><font size=+1>&#8722;o</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The next argument is the name of an output file to use instead
of the standard output. This file may be the same as one of the
inputs.<br>
<tt><font size=+1>&#8722;T</font></tt><i>dir</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Put temporary files in <i>dir</i> rather than in <tt><font size=+1>/var/tmp</font></tt>.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>sort &#8722;u +0f +0 list<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print in alphabetical order all the unique spellings in a list
of words where capitalized words differ from uncapitalized.<br>
</table>
<tt><font size=+1>sort &#8722;t: +1 /adm/users<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the users file sorted by user name (the second colon-separated
field).<br>
</table>
<tt><font size=+1>sort &#8722;umM dates<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Print the first instance of each month in an already sorted file.
Options <tt><font size=+1>&#8722;um</font></tt> with just one input file make the choice of a unique
representative from a set of equal lines predictable.<br>
</table>
<tt><font size=+1>grep &#8722;n '^' input | sort &#8722;t: +1f +0n | sed 's/[0&#8722;9]*://'<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
A stable sort: input lines that compare equal will come out in
their original order.<br>
</table>
</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>/var/tmp/sort.</font></tt><i>&lt;pid&gt;.&lt;ordinal&gt;<br>
</i>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/sort.c<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/uniq.html"><i>uniq</i>(1)</a>, <a href="../man1/look.html"><i>look</i>(1)</a><br>
</table>
<p><font size=+1><b>DIAGNOSTICS </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<i>Sort</i> comments and exits with non-null status for various trouble
conditions and for disorder discovered under option <tt><font size=+1>&#8722;c</font></tt>.<br>
</table>
<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>
An external null character can be confused with an internally
generated end-of-field character. The result can make a sub-field
not sort less than a longer field.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
Some of the options, e.g. <tt><font size=+1>&#8722;i</font></tt> and <tt><font size=+1>&#8722;M</font></tt>, are hopelessly provincial.<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>

125
man/man1/spell.html Normal file
View File

@ -0,0 +1,125 @@
<head>
<title>spell(1) - 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>SPELL(1)</b><td align=right><b>SPELL(1)</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>
spell, sprog &ndash; find spelling errors<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>spell</font></tt> [ <i>options</i> ] ... [ <i>file</i> ] ...
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<tt><font size=+1>sprog</font></tt> [ <i>options</i> ] [ <tt><font size=+1>&#8722;f</font></tt> <i>file</i> ]<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>
<i>Spell</i> looks up words from the named <i>files</i> (standard input default)
in a spelling list and places possible misspellings--words not sanctioned
there--on the standard output.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Spell</i> ignores constructs of <a href="../man1/troff.html"><i>troff</i>(1)</a> and its standard preprocessors.
It understands these options:<br>
<tt><font size=+1>&#8722;b</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Check British spelling.<br>
<tt><font size=+1>&#8722;v</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print all words not literally in the spelling list, with derivations.<br>
<tt><font size=+1>&#8722;x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Print, marked with <tt><font size=+1>=</font></tt>, every stem as it is looked up in the spelling
list, along with its affix classes.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
As a matter of policy, <i>spell</i> does not admit multiple spellings
of the same word. Variants that follow general rules are preferred
over those that don&#8217;t, even when the unruly spelling is more common.
Thus, in American usage, &#8216;modelled&#8217;, &#8216;sizeable&#8217;, and &#8216;judgment&#8217;
are rejected in favor of &#8216;modeled&#8217;, &#8216;sizable&#8217;, and
&#8216;judgement&#8217;. Agglutinated variants are shunned: &#8216;crewmember&#8217; and
&#8216;backyard&#8217; cede to &#8216;crew member&#8217; and &#8216;back yard&#8217; (noun) or &#8216;back-yard&#8217;
(adjective).<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/lib/amspell<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
American spelling list<br>
</table>
<tt><font size=+1>/usr/local/plan9/lib/brspell<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
British spelling list<br>
</table>
<tt><font size=+1>/usr/local/plan9/bin/sprog<br>
</font></tt>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
The actual spelling checker. It expects one word per line on standard
input, and takes the same arguments as <i>spell</i>.<br>
</table>
</table>
<p><font size=+1><b>SOURCE </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/bin/spell</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the script<br>
<tt><font size=+1>/usr/local/plan9/src/cmd/spell</font></tt>&nbsp;&nbsp;&nbsp;source for <i>sprog<br>
</i>
</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/deroff.html"><i>deroff</i>(1)</a><br>
</table>
<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>
The heuristics of <a href="../man1/deroff.html"><i>deroff</i>(1)</a> used to excise formatting information
are imperfect.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The spelling list&#8217;s coverage is uneven; in particular biology,
medicine, and chemistry, and perforce proper names, not to mention
languages other than English, are covered very lightly.<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>

91
man/man1/split.html Normal file
View File

@ -0,0 +1,91 @@
<head>
<title>split(1) - 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>SPLIT(1)</b><td align=right><b>SPLIT(1)</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>
split &ndash; split a file into pieces<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>split</font></tt> [ <i>option ...</i> ] [ <i>file</i> ]<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>
<i>Split</i> reads <i>file</i> (standard input by default) and writes it in
pieces of 1000 lines per output file. The names of the output
files are <tt><font size=+1>xaa</font></tt>, <tt><font size=+1>xab</font></tt>, and so on to <tt><font size=+1>xzz</font></tt>. The options are<br>
<tt><font size=+1>&#8722;n</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;Split into <i>n</i>-line pieces.<br>
<tt><font size=+1>&#8722;l</font></tt> <i>n</i>&nbsp;&nbsp;&nbsp;Synonym for <tt><font size=+1>&#8722;n</font></tt> <i>n</i>, a nod to Unix&#8217;s syntax.<br>
<tt><font size=+1>&#8722;e</font></tt> <i>expression<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
File divisions occur at each line that matches a regular <i>expression</i>;
see <a href="../man7/regexp.html"><i>regexp</i>(7)</a>. Multiple <tt><font size=+1>&#8722;e</font></tt> options may appear. If a subexpression
of <i>expression</i> is contained in parentheses <tt><font size=+1>(</font></tt>...<tt><font size=+1>)</font></tt>, the output file
name is the portion of the line which matches the subexpression.<br>
</table>
<tt><font size=+1>&#8722;f</font></tt> <i>stem<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Use <i>stem</i> instead of <tt><font size=+1>x</font></tt> in output file names.<br>
</table>
<tt><font size=+1>&#8722;s</font></tt> <i>suffix<br>
</i>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Append <i>suffix</i> to names identified under <tt><font size=+1>&#8722;e</font></tt>.<br>
</table>
<tt><font size=+1>&#8722;x</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Exclude the matched input line from the output file.<br>
<tt><font size=+1>&#8722;i</font></tt>&nbsp;&nbsp;&nbsp;&nbsp;Ignore case in option <tt><font size=+1>&#8722;e</font></tt>; force output file names (excluding
the suffix) to lower case.<br>
</table>
<p><font size=+1><b>SOURCE </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/src/cmd/split.c<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/sed.html"><i>sed</i>(1)</a>, <a href="../man1/awk.html"><i>awk</i>(1)</a>, <a href="../man1/grep.html"><i>grep</i>(1)</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>

99
man/man1/src.html Normal file
View File

@ -0,0 +1,99 @@
<head>
<title>src(1) - 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>SRC(1)</b><td align=right><b>SRC(1)</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>
src &ndash; find source code for executable<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>src</font></tt> [ <tt><font size=+1>&#8722;n</font></tt> ] [ <tt><font size=+1>&#8722;s</font></tt> <i>symbol</i> ] <i>file</i> <tt><font size=+1>...<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>
<i>Src</i> examines the named <i>files</i> to find the corresponding source
code, which is then sent to the editor using <tt><font size=+1>B</font></tt> (see <a href="../man1/sam.html"><i>sam</i>(1)</a>). If
<i>file</i> is an <a href="../man1/rc.html"><i>rc</i>(1)</a> script, the source is the file itself. If <i>file</i>
is an executable, the source is defined to be the single file
containing the definition of <tt><font size=+1>main</font></tt> and <i>src</i> will point the editor
at the line that
begins the definition. <i>Src</i> uses <a href="../man1/db.html"><i>db</i>(1)</a> to extract the symbol table
information that identifies the source.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
<i>Src</i> looks for each <i>file</i> in the current directory, in <tt><font size=+1>/bin</font></tt>, and
in the subdirectories of <tt><font size=+1>/bin</font></tt>, in that order.
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
The <tt><font size=+1>&#8722;n</font></tt> flag causes <tt><font size=+1>src</font></tt> to print the file name but not send it
to the editor. The <tt><font size=+1>&#8722;s</font></tt> flag identifies a <i>symbol</i> other than <tt><font size=+1>main</font></tt>
to locate.<br>
</table>
<p><font size=+1><b>EXAMPLES </b></font><br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
Find the source to the <tt><font size=+1>main</font></tt> routine in <tt><font size=+1>/bin/ed</font></tt>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>src ed<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
</font></tt>
</table>
Find the source for <tt><font size=+1>strcmp</font></tt>:<br>
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
<tt><font size=+1>src &#8722;s strcmp rc<br>
</font></tt>
</table>
</table>
<p><font size=+1><b>SOURCE </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/bin/src<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/db.html"><i>db</i>(1)</a>, <a href="../man1/plumb.html"><i>plumb</i>(1)</a>, <a href="../man1/sam.html"><i>sam</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>

Some files were not shown because too many files have changed in this diff Show More