aboutsummaryrefslogtreecommitdiff
path: root/man/man1
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-01-03 06:40:20 +0000
committerrsc <devnull@localhost>2005-01-03 06:40:20 +0000
commit058b0118a52061ad57694c01fc8763b22b789c4d (patch)
tree6685f04dea5ed68edaa34998c976aed34c55fe94 /man/man1
parent2600337aa704efbeba8201e88147a764b4fd2b90 (diff)
downloadplan9port-058b0118a52061ad57694c01fc8763b22b789c4d.tar.gz
plan9port-058b0118a52061ad57694c01fc8763b22b789c4d.tar.bz2
plan9port-058b0118a52061ad57694c01fc8763b22b789c4d.zip
Some man pages.
Diffstat (limited to 'man/man1')
-rw-r--r--man/man1/9c.1175
-rw-r--r--man/man1/9p.1125
-rw-r--r--man/man1/9term.16
-rw-r--r--man/man1/INDEX170
-rw-r--r--man/man1/acid.130
-rw-r--r--man/man1/acme.144
-rw-r--r--man/man1/ascii.16
-rw-r--r--man/man1/astro.1122
-rw-r--r--man/man1/bc.1292
-rw-r--r--man/man1/bundle.157
-rw-r--r--man/man1/cat.126
-rw-r--r--man/man1/cleanname.12
-rw-r--r--man/man1/colors.173
-rw-r--r--man/man1/core.146
-rw-r--r--man/man1/crop.1147
-rw-r--r--man/man1/date.146
-rw-r--r--man/man1/db.15
-rw-r--r--man/man1/deroff.14
-rw-r--r--man/man1/dict.118
-rw-r--r--man/man1/doctype.156
-rw-r--r--man/man1/ed.14
-rw-r--r--man/man1/eqn.12
-rw-r--r--man/man1/freq.12
-rw-r--r--man/man1/fsize.122
-rw-r--r--man/man1/grap.12
-rw-r--r--man/man1/graph.12
-rw-r--r--man/man1/grep.126
-rw-r--r--man/man1/gzip.1160
-rw-r--r--man/man1/join.19
-rw-r--r--man/man1/jpg.1243
-rw-r--r--man/man1/kill.169
-rw-r--r--man/man1/label.171
-rw-r--r--man/man1/lex.181
-rw-r--r--man/man1/look.186
-rw-r--r--man/man1/ls.16
-rw-r--r--man/man1/man.1105
-rw-r--r--man/man1/map.1675
-rw-r--r--man/man1/mc.112
-rw-r--r--man/man1/mk.1682
-rw-r--r--man/man1/namespace.114
-rw-r--r--man/man1/news.163
-rw-r--r--man/man1/p.133
-rw-r--r--man/man1/page.156
-rw-r--r--man/man1/pic.12
-rw-r--r--man/man1/plot.18
-rw-r--r--man/man1/plumb.14
-rw-r--r--man/man1/pr.1110
-rw-r--r--man/man1/proof.1134
-rw-r--r--man/man1/ps.1107
-rw-r--r--man/man1/psfonts.1125
-rw-r--r--man/man1/pwd.126
-rw-r--r--man/man1/rc.136
-rw-r--r--man/man1/rio.196
-rw-r--r--man/man1/rm.12
-rw-r--r--man/man1/sam.128
-rw-r--r--man/man1/scat.112
-rw-r--r--man/man1/secstore.1212
-rw-r--r--man/man1/sed.1385
-rw-r--r--man/man1/seq.12
-rw-r--r--man/man1/sleep.12
-rw-r--r--man/man1/split.14
-rw-r--r--man/man1/src.183
-rw-r--r--man/man1/tbl.12
-rw-r--r--man/man1/tcs.1167
-rw-r--r--man/man1/touch.12
-rw-r--r--man/man1/tr2post.1111
-rw-r--r--man/man1/troff.19
-rw-r--r--man/man1/tweak.1167
-rw-r--r--man/man1/units.1108
-rw-r--r--man/man1/vac.1130
-rw-r--r--man/man1/web.175
-rw-r--r--man/man1/wintext.198
-rw-r--r--man/man1/yacc.14
73 files changed, 5962 insertions, 164 deletions
diff --git a/man/man1/9c.1 b/man/man1/9c.1
new file mode 100644
index 00000000..6745ae35
--- /dev/null
+++ b/man/man1/9c.1
@@ -0,0 +1,175 @@
+.TH 9C 1
+.SH NAME
+9c, 9a, 9l, 9ar \- C compiler, assembler, linker, archiver
+.SH SYNOPSIS
+.B 9c
+.I file
+\&...
+.PP
+.B 9a
+.I file
+\&...
+.PP
+.B 9l
+[
+.I -o
+.I target
+]
+.I object
+\&...
+[
+.I library
+\&...
+]
+[
+.BI -L path
+\&...
+]
+[
+.BI -l library
+\&...
+]
+.PP
+.B 9ar
+.I key
+[
+.I posname
+]
+.I afile
+[
+.I file
+\&...
+]
+.SH DESCRIPTION
+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.
+.PP
+.I 9c
+compiles the named C
+.I files
+into object files for the current system.
+The system C compiler is invoked with warnings enabled,
+with the symbol
+.B PLAN9PORT
+is defined in the C preprocessor, and with
+.B $PLAN9/include
+on the include path.
+.PP
+.I 9c
+also defines
+.B __sun__
+on SunOS systems and
+.B __Linux26__
+on Linux systems with 2.6-series kernels.
+.PP
+.I 9a
+assembles the named files into object files for the current system.
+Unlike some system assemblers, it does
+.I not
+promise to run the C preprocessor on the source files.
+.PP
+.I 9l
+links the named object files and libraries to create the target executable.
+Each
+.B -l
+option specifies that a library named
+.BI lib library .a
+be found and linked.
+The
+.B -L
+option adds directories to the library search path.
+.I 9l
+invokes the system linker with
+.B $PLAN9/lib
+already on the library search path.
+.PP
+.I 9ar
+maintains object file archives called libraries.
+The exact set of valid command keys varies from system to system,
+but
+.I 9ar
+always provides the following key characters:
+.TP
+.B d
+Delete
+.I files
+from the archive file.
+.TP
+.B r
+Replace
+.I files
+in the archive file, or add them if missing.
+.TP
+.B t
+List a table of contents of the archive.
+If names are given, only those files are listed.
+.TP
+.B x
+Extract the named files.
+If no names are given, all files in the archive are
+extracted.
+In neither case does
+.B x
+alter the archive file.
+.TP
+.B v
+Verbose.
+Give a file-by-file
+description of the making of a
+new archive file from the old archive and the constituent files.
+With
+.BR t ,
+give a long listing of all information about the files,
+somewhat like a listing by
+.IR ls (1),
+showing
+.br
+.ns
+.IP
+.B
+ mode uid/gid size date name
+.TP
+.B c
+Create.
+Normally
+.I 9ar
+will create a new archive when
+.I afile
+does not exist, and give a warning.
+Option
+.B c
+discards any old contents and suppresses the warning.
+.PD
+.PP
+When a
+.BR d ,
+.BR r ,
+or
+.BR m
+.I key
+is specified,
+.I 9ar
+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.
+.SH EXAMPLE
+.TP
+.L
+9c file1.c file2.c file3.c
+Compile three C source files.
+.TP
+.L
+9a file4.s
+Assemble one assembler source file.
+.TP
+.L
+9ar rvc lib.a file[12].o
+Archive the first two object files into a library.
+.L
+9l -o prog file3.o file4.o lib.a
+Link the final two object files and any necessary objects from the library
+into an executable.
+.SH SOURCE
+.B /usr/local/plan9/bin
diff --git a/man/man1/9p.1 b/man/man1/9p.1
new file mode 100644
index 00000000..199c26b8
--- /dev/null
+++ b/man/man1/9p.1
@@ -0,0 +1,125 @@
+.TH 9P 1
+.SH NAME
+9p \- read and write files on a 9P server
+.SH SYNOPSIS
+.B 9p
+[
+.B -a
+.I addr
+]
+.B read
+.I path
+.br
+.B 9p
+[
+.B -a
+.I addr
+]
+.B readfd
+.I path
+.PP
+.B 9p
+[
+.B -a
+.I addr
+]
+.B write
+.I path
+.br
+.B 9p
+[
+.B -a
+.I addr
+]
+.B writefd
+.I path
+.PP
+.B 9p
+[
+.B -a
+.I addr
+]
+.B stat
+.I path
+.SH DESCRIPTION
+.I 9p
+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.
+.PP
+The first argument is a command, one of:
+.TP
+.B read
+print the contents of
+.I path
+to standard output
+.TP
+.B write
+write data on standard input to
+.I path
+.TP
+.BR readfd ", " writefd
+like
+.B read
+and
+.B write
+but use
+.IR openfd (9p)
+instead of
+.IR open ;
+this masks errors and is mainly useful for debugging
+the implementation of
+.I openfd
+.TP
+.B stat
+execute
+.I stat (9p)
+on
+.I path
+and print the result
+.PD
+.PP
+.I 9p
+dials
+.I address
+to connect to the 9P server.
+If the
+.B -a
+option is not given,
+.I 9p
+requires the
+.I path
+to be of the form
+.IB service / subpath \fR;
+it connects to the Unix domain socket
+.I service
+in the name space directory
+(see
+.IR intro (4))
+and then accesses
+.IR subpath .
+.SH EXAMPLE
+To update
+.IR plumber (4)'s
+copy of your plumbing rules after editing
+.BR $HOME/lib/plumbing :
+.IP
+.EX
+cat $HOME/lib/plumbing | 9p write plumb/rules
+.EE
+.PP
+To display the contents of the current
+.IR acme (4)
+window (specified by the environment variable
+.BR $winid )
+on standard output:
+.IP
+.EX
+9p read acme/$winid/body
+.EE
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/9p.c
+.SH SEE ALSO
+.IR intro (4),
+.IR intro (9p),
+.IR 9pclient (3)
diff --git a/man/man1/9term.1 b/man/man1/9term.1
index 932a067e..ebb9bd70 100644
--- a/man/man1/9term.1
+++ b/man/man1/9term.1
@@ -12,7 +12,7 @@
]
[
.I cmd
-...
+\&...
]
.PP
.B label
@@ -272,7 +272,9 @@ to turn on hold mode first.
The
.B plumb
menu item sends the contents of the selection (not the snarf buffer) to the
-.IR plumber (1).
+.I plumber
+(see
+.IR plumb (1)).
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
diff --git a/man/man1/INDEX b/man/man1/INDEX
new file mode 100644
index 00000000..de03a627
--- /dev/null
+++ b/man/man1/INDEX
@@ -0,0 +1,170 @@
+9a 9c.1
+9ar 9c.1
+9c 9c.1
+9l 9c.1
+9p 9p.1
+9term 9term.1
+label 9term.1
+acid acid.1
+acidtypes acid.1
+acme acme.1
+awd acme.1
+win acme.1
+ascii ascii.1
+unicode ascii.1
+astro astro.1
+basename basename.1
+bc bc.1
+bundle bundle.1
+cal cal.1
+calendar calendar.1
+cat cat.1
+read cat.1
+cleanname cleanname.1
+cmp cmp.1
+colors colors.1
+getmap colors.1
+comm comm.1
+core core.1
+crop crop.1
+iconv crop.1
+clock date.1
+date date.1
+db db.1
+dc dc.1
+delatex deroff.1
+deroff deroff.1
+dict dict.1
+diff diff.1
+doctype doctype.1
+echo echo.1
+ed ed.1
+eqn eqn.1
+factor factor.1
+primes factor.1
+fmt fmt.1
+htmlfmt fmt.1
+fortune fortune.1
+freq freq.1
+fsize fsize.1
+mtime fsize.1
+grap grap.1
+graph graph.1
+g grep.1
+grep grep.1
+gview gview.1
+
+bunzip2 gzip.1
+bzip2 gzip.1
+gunzip gzip.1
+gzip gzip.1
+unzip gzip.1
+zip gzip.1
+hoc hoc.1
+idiff idiff.1
+join join.1
+bmp jpg.1
+gif jpg.1
+ico jpg.1
+jpg jpg.1
+png jpg.1
+ppm jpg.1
+togif jpg.1
+toico jpg.1
+topng jpg.1
+toppm jpg.1
+yuv jpg.1
+kill kill.1
+slay kill.1
+start kill.1
+stop kill.1
+awd label.1
+label label.1
+lex lex.1
+look look.1
+lc ls.1
+ls ls.1
+lookman man.1
+man man.1
+map map.1
+mapdemo map.1
+mc mc.1
+membername mk.1
+mk mk.1
+mkdir mkdir.1
+namespace namespace.1
+news news.1
+p p.1
+img page.1
+page page.1
+psv page.1
+pic pic.1
+tpic pic.1
+plot plot.1
+plumb plumb.1
+pr pr.1
+proof proof.1
+ps ps.1
+psu ps.1
+pbd pwd.1
+pwd pwd.1
+. rc.1
+cd rc.1
+eval rc.1
+exec rc.1
+exit rc.1
+flag rc.1
+rc rc.1
+rfork rc.1
+shift rc.1
+wait rc.1
+whatis rc.1
+~ rc.1
+rio rio.1
+rm rm.1
+B sam.1
+E sam.1
+sam sam.1
+sam.save sam.1
+samsave sam.1
+samterm sam.1
+scat scat.1
+aescbc secstore.1
+ipso secstore.1
+secstore secstore.1
+9sed sed.1
+sed sed.1
+seq seq.1
+sleep sleep.1
+sort sort.1
+spell spell.1
+sprog spell.1
+split split.1
+src src.1
+stats stats.1
+strings strings.1
+md5sum sum.1
+sha1sum sum.1
+sum sum.1
+tail tail.1
+tbl tbl.1
+tcs tcs.1
+tee tee.1
+test test.1
+time time.1
+touch touch.1
+tr tr.1
+nroff troff.1
+troff troff.1
+tweak tweak.1
+uniq uniq.1
+units units.1
+vac vac.1
+wc wc.1
+web web.1
+wmail web.1
+" wintext.1
+"" wintext.1
+wintext wintext.1
+xd xd.1
+yacc yacc.1
diff --git a/man/man1/acid.1 b/man/man1/acid.1
index 2d1523af..1f7c2649 100644
--- a/man/man1/acid.1
+++ b/man/man1/acid.1
@@ -26,7 +26,7 @@ acid, acidtypes \- debugger
.I prefix
]
.I file
-...
+\&...
.\" .PP
.\" .B acid
.\" .B -l
@@ -69,17 +69,9 @@ at startup; see below.
.TP
.BI -m " machine
Assume instructions are for the given CPU type
-(one of
-.BR 3210 ,
-.BR 386 ,
-etc., as listed in
-.IR 2c (1),
-or
-.B sunsparc
-or
-.B mipsco
-for the manufacturer-defined instruction notation for those processors)
-instead of using the magic number to select
+(see
+.IR mach (3))
+instead of using the executable header to select
the CPU type.
.TP
.BI -k
@@ -100,9 +92,17 @@ Definitions in any file may override previously defined functions.
If the function
.IR acidinit ()
is defined, it will be invoked after all modules have been loaded.
-See
-.IR 2c (1)
-for information about creating
+Then the function
+.IR acidmap ()
+will be invoked if defined.
+.B /usr/local/plan9/acid/port
+provides a definition of
+.I acidmap
+that attaches all the shared libraries being used by the target process
+and then runs
+.I acidtypes
+.RI ( q.v. )
+to create
.I acid
functions for examining data structures.
.SS Language
diff --git a/man/man1/acme.1 b/man/man1/acme.1
index 359799bb..6f162731 100644
--- a/man/man1/acme.1
+++ b/man/man1/acme.1
@@ -345,7 +345,7 @@ With no arguments,
prints the supplementary list.
This command is largely superseded by plumbing
(see
-.IR plumb (6)).
+.IR plumb (7)).
.TP
.B Kill
Send a
@@ -355,20 +355,30 @@ note to
commands named as arguments.
.TP
.B Local
-When prefixed to a command
-run the
-command in the same file name space and environment variable group as
-.IR acme .
-The environment of the command
-is restricted but is sufficient to run
-.IR bind (1),
-.IR 9fs
-(see
-.IR srv (4)),
-.IR import (4),
-etc.,
-and to set environment variables such as
-.BR $objtype .
+In the Plan 9
+.IR acme ,
+this prefix causes a command to be run in
+.IR acme 's own
+file name space and environment variable group.
+On Unix this is impossible.
+.B Local
+is recognized as a prefix, but has no effect on the command being executed.
+.\" .TP
+.\" .B Local
+.\" When prefixed to a command
+.\" run the
+.\" command in the same file name space and environment variable group as
+.\" .IR acme .
+.\" The environment of the command
+.\" is restricted but is sufficient to run
+.\" .IR bind (1),
+.\" .IR 9fs
+.\" (see
+.\" .IR srv (4)),
+.\" .IR import (4),
+.\" etc.,
+.\" and to set environment variables such as
+.\" .BR $objtype .
.TP
.B Load
Restore the state of
@@ -662,9 +672,9 @@ MIPS-specific binaries for applications
.SH SOURCE
.B /usr/local/plan9/src/cmd/acme
.br
-.B /acme/bin/source/win
+.B /usr/local/plan9/src/cmd/9term/win.c
.br
-.B /usr/local/plan9/src/cmd/awd.c
+.B /usr/local/plan9/bin/awd
.SH SEE ALSO
.IR acme (4)
.br
diff --git a/man/man1/ascii.1 b/man/man1/ascii.1
index 05cec0f8..20a4302f 100644
--- a/man/man1/ascii.1
+++ b/man/man1/ascii.1
@@ -91,7 +91,7 @@ control characters or insert newlines.
is similar; it converts between
.SM UTF
and character values from the Unicode Standard (see
-.IR utf (6)).
+.IR utf (7)).
If given a range of hexadecimal numbers,
.I unicode
prints a table of the specified Unicode characters \(em their values and
@@ -157,5 +157,5 @@ table of characters and descriptions.
.SH "SEE ALSO"
.IR look (1)
.IR tcs (1),
-.IR utf (6),
-.IR font (6)
+.IR utf (7),
+.IR font (7)
diff --git a/man/man1/astro.1 b/man/man1/astro.1
new file mode 100644
index 00000000..e2502f95
--- /dev/null
+++ b/man/man1/astro.1
@@ -0,0 +1,122 @@
+.TH ASTRO 1
+.SH NAME
+astro \- print astronomical information
+.SH SYNOPSIS
+.B astro
+[
+.B -dlpsatokm
+]
+[
+.B -c
+n
+]
+[
+.B -C
+d
+]
+[
+.B -e
+.I obj1
+.I obj2
+]
+.SH DESCRIPTION
+.I Astro
+reports upcoming celestial events, by default for 24 hours starting now.
+The options are:
+.TP
+.B d
+Read the starting date.
+A prompt gives the input
+format.
+.TP
+.B l
+Read the north latitude, west longitude, and elevation of the observation point.
+A prompt gives the input format.
+If
+.B l
+is missing, the initial position is read from the file
+.BR /lib/sky/here .
+.TP
+.B c
+Report for
+.I n
+(default 1) successive days.
+.TP
+.B C
+Used with
+.BR -c ,
+set the interval to
+.B d
+days (or fractions of days).
+.TP
+.B e
+Report distance between the centers of
+objects, in arc seconds, during eclipses or occultations involving
+.I obj1
+and
+.IR obj2 .
+.TP
+.B p
+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 moon, the magnitude is also printed.
+The first line of output presents the date and time,
+sidereal time, and the latitude, longitude, and elevation.
+.TP
+.B s
+Print output in English words suitable for speech synthesizers.
+.TP
+.B a
+Include a list of artificial earth satellites for interesting events.
+(There are no orbital elements for the satellites, so this option
+is not usable.)
+.TP
+.B t
+Read
+ΔT
+from standard input.
+ΔT
+is the difference between ephemeris and
+universal time (seconds) due to the slowing of the earth's rotation.
+ΔT
+is normally calculated from an empirical formula.
+This option is needed only for very accurate timing of
+occultations, eclipses, etc.
+.TP
+.B o
+Search for stellar occultations.
+.TP
+.B k
+Print times in local time (`kitchen clock')
+as described in the
+.B timezone
+environment variable.
+.TP
+.B m
+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).
+.SH FILES
+.TF /lib/sky/estartab
+.TP
+.B /lib/sky/estartab
+ecliptic star data
+.TP
+.B /lib/sky/here
+default latitude (N), longitude (W), and elevation (meters)
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/astro
+.SH SEE ALSO
+.IR scat (1)
+.SH BUGS
+The
+.B k
+option reverts to GMT outside of 1970-2036.
diff --git a/man/man1/bc.1 b/man/man1/bc.1
new file mode 100644
index 00000000..9bb0f08e
--- /dev/null
+++ b/man/man1/bc.1
@@ -0,0 +1,292 @@
+.TH BC 1
+.SH NAME
+bc \- arbitrary-precision arithmetic language
+.SH SYNOPSIS
+.B bc
+[
+.B -c
+]
+[
+.B -l
+]
+[
+.B -s
+]
+[
+.I file ...
+]
+.SH DESCRIPTION
+.I Bc
+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
+.B -l
+argument stands for the name
+of an arbitrary precision math library.
+The
+.B -s
+argument suppresses the automatic display
+of calculation results; all output is via the
+.B print
+command.
+.PP
+The following syntax for
+.I bc
+programs is like that of C;
+.I L
+means letter
+.BR a - z ,
+.I E
+means expression,
+.I S
+means statement.
+.TF length(E)
+.TP
+Lexical
+.RS
+.HP
+comments are enclosed in
+.B /* */
+.HP
+newlines end statements
+.RE
+.TP
+Names
+.IP
+simple variables:
+.I L
+.br
+array elements:
+.IB L [ E ]
+.br
+The words
+.BR ibase ,
+.BR obase ,
+and
+.B scale
+.TP
+Other operands
+.IP
+arbitrarily long numbers with optional sign and decimal point.
+.RS
+.TP
+.BI ( E )
+.TP
+.BI sqrt( E )
+.TP
+.BI length( E )
+number of significant decimal digits
+.TP
+.BI scale( E )
+number of digits right of decimal point
+.TP
+.IB L ( E , ... ,\fIE\fP)
+function call
+.RE
+.TP
+Operators
+.RS
+.HP
+.B "+ - * / % ^\ "
+.RB ( %
+is remainder;
+.B ^
+is power)
+.HP
+.B "++ --\ "
+.TP
+.B "== <= >= != < >"
+.TP
+.B "= += -= *= /= %= ^="
+.RE
+.TP
+Statements
+.RS
+.br
+.I E
+.br
+.B {
+.I S
+.B ;
+\&...
+.B ;
+.I S
+.B }
+.br
+.B "print"
+.I E
+.br
+.B "if ("
+.I E
+.B )
+.I S
+.br
+.B "while ("
+.I E
+.B )
+.I S
+.br
+.B "for ("
+.I E
+.B ;
+.I E
+.B ;
+.I E
+.B ")"
+.I S
+.br
+null statement
+.br
+.B break
+.br
+.B quit
+.br
+\fL"\fRtext\fL"\fR
+.RE
+.TP
+Function definitions
+.RS
+.br
+.B define
+.I L
+.B (
+.I L
+.B ,
+\&...
+.B ,
+.I L
+.B ){
+.PD0
+.br
+.B auto
+.I L
+.B ,
+\&...
+.B ,
+.I L
+.br
+.I S
+.B ;
+\&...
+.B ;
+.I S
+.br
+.B return
+.I E
+.LP
+.B }
+.RE
+.TP
+Functions in
+.B -l
+math library
+.RS
+.TP
+.BI s( x )
+sine
+.TP
+.BI c( x )
+cosine
+.TP
+.BI e( x )
+exponential
+.TP
+.BI l( x )
+log
+.TP
+.BI a( x )
+arctangent
+.TP
+.BI j( "n, x" )
+Bessel function
+.RE
+.PP
+.DT
+All function arguments are passed by value.
+.PD
+.PP
+The value of an expression at the top level is printed
+unless the main operator is an assignment or the
+.B -s
+command line argument is given.
+Text in quotes, which may include newlines, is always printed.
+Either semicolons or newlines may separate statements.
+Assignment to
+.B scale
+influences the number of digits to be retained on arithmetic
+operations in the manner of
+.IR dc (1).
+Assignments to
+.B ibase
+or
+.B obase
+set the input and output number radix respectively.
+.PP
+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.
+.PP
+.I Bc
+is actually a preprocessor for
+.IR dc (1),
+which it invokes automatically, unless the
+.B -c
+(compile only)
+option is present.
+In this case the
+.I dc
+input is sent to the standard output instead.
+.SH EXAMPLE
+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.)
+.PP
+.EX
+scale = 20
+define e(x) {
+ auto a, b, c, i, s
+ a = 1
+ b = 1
+ s = 1
+ for(i=1; 1; i++) {
+ a *= x
+ b *= i
+ c = a/b
+ if(c == 0) return s
+ s += c
+ }
+}
+for(i=1; i<=10; i++) print e(i)
+.EE
+.SH FILES
+.B /sys/lib/bclib
+mathematical library
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/bc.y
+.SH "SEE ALSO"
+.IR dc (1),
+.IR hoc (1)
+.SH BUGS
+No
+.LR && ,
+.LR || ,
+or
+.L !
+operators.
+.br
+A
+.L for
+statement must have all three
+.LR E s.
+.br
+A
+.L quit
+is interpreted when read, not when executed.
diff --git a/man/man1/bundle.1 b/man/man1/bundle.1
new file mode 100644
index 00000000..c56e9430
--- /dev/null
+++ b/man/man1/bundle.1
@@ -0,0 +1,57 @@
+.TH BUNDLE 1
+.SH NAME
+bundle \- collect files for distribution
+.SH SYNOPSIS
+.B bundle
+.I file ...
+.SH DESCRIPTION
+.I Bundle
+writes on its standard output a shell script for
+.IR rc (1)
+or a Bourne shell
+which, when executed,
+will recreate the original
+.IR files .
+Its main use is for distributing small numbers of text files by
+.IR mail (1).
+.PP
+Although less refined than standard archives from
+.I 9ar
+(see
+.IR 9c (1))
+or
+.IR tar (1),
+a
+.IR bundle
+file
+is self-documenting and complete; little preparation is required on
+the receiving machine.
+.SH EXAMPLES
+.TP
+.L
+bundle mkfile *.[ch] | mail kremvax!boris
+Send a makefile to Boris together with related
+.L .c
+and
+.L .h
+files.
+Upon receiving the mail, Boris may save the file sans postmark,
+say in
+.BR gift/horse ,
+then do
+.TP
+.L
+cd gift; rc horse; mk
+.SH SOURCE
+.B /usr/local/plan9/bin/bundle
+.SH SEE ALSO
+.I 9ar
+(in
+.IR 9c (1)),
+.IR tar (1),
+.IR mail (1)
+.SH BUGS
+.I Bundle
+will not create directories and is unsatisfactory for non-text files.
+.br
+Beware of gift horses.
diff --git a/man/man1/cat.1 b/man/man1/cat.1
index 3b24bdde..d2b8d5c0 100644
--- a/man/man1/cat.1
+++ b/man/man1/cat.1
@@ -1,6 +1,6 @@
.TH CAT 1
.SH NAME
-cat, read \- catenate files
+cat, read, nobs \- catenate files
.SH SYNOPSIS
.B cat
[
@@ -16,6 +16,11 @@ cat, read \- catenate files
] [
.I file ...
]
+.br
+nobs
+[
+.I file ...
+]
.SH DESCRIPTION
.I Cat
reads each
@@ -57,15 +62,32 @@ causes it to read no more than
.I nline
lines.
.PP
-Read always executes a single
+.I Read
+always executes a single
.B write
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.
+.PP
+.I Nobs
+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
+.B $PAGER
+with the Unix version of
+.IR man (1)
+when run inside a
+.I win
+(see
+.IR acme (1))
+window.
.SH SOURCE
.B /usr/local/plan9/src/cmd/cat.c
.br
.B /usr/local/plan9/src/cmd/read.c
+.br
+.B /usr/local/plan9/bin/nobs
.SH SEE ALSO
.IR cp (1)
.SH DIAGNOSTICS
diff --git a/man/man1/cleanname.1 b/man/man1/cleanname.1
index d017ce5b..d2191380 100644
--- a/man/man1/cleanname.1
+++ b/man/man1/cleanname.1
@@ -29,4 +29,4 @@ before processing.
.SH SOURCE
.B /usr/local/plan9/src/cmd/cleanname.c
.SH SEE ALSO
-.IR cleanname (2).
+.IR cleanname (3).
diff --git a/man/man1/colors.1 b/man/man1/colors.1
new file mode 100644
index 00000000..ea33e9a5
--- /dev/null
+++ b/man/man1/colors.1
@@ -0,0 +1,73 @@
+.TH COLORS 1
+.SH NAME
+getmap, colors \- display color map
+.SH SYNOPSIS
+.PP
+.B colors
+[
+.B -r
+.B -x
+]
+.PP
+.B getmap
+[
+.I colormap
+]
+.SH DESCRIPTION
+.I Colors
+presents a grid showing the colors in the current color map.
+If the display is true color,
+.I colors
+shows a grid of the RGBV color map
+(see
+.IR color (7)).
+.PP
+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
+.IR allocimage (3).
+If the
+.B -x
+option is specified, the components will also be listed in hexadecimal.
+.PP
+The
+.B -r
+option instead shows, in the same form, a grey-scale ramp.
+.PP
+A menu on mouse button 3 contains a single entry, to exit the program.
+.PP
+On 8-bit color-mapped displays,
+.I getmap
+loads the display's color map (default
+.BR rgbv ).
+The named
+.I colormap
+can be a file in the current directory or in the standard repository
+.BR /lib/cmap .
+It can also be a string of the form
+.B gamma
+or
+.BI gamma N\f1 ,
+where
+.I N
+is a floating point value for the gamma, defining the contrast for a monochrome map.
+Similarly,
+.B rgamma
+and
+.BI rgamma N
+define a reverse-video monochrome map.
+Finally, the names
+.B screen
+or
+.B display
+or
+.B vga
+are taken as synonyms for the current color map stored in the display hardware.
+.SH FILES
+.B /lib/cmap
+directory of color map files
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/draw/colors.c
+.SH SEE ALSO
+.IR color (7)
diff --git a/man/man1/core.1 b/man/man1/core.1
new file mode 100644
index 00000000..3c2c0d41
--- /dev/null
+++ b/man/man1/core.1
@@ -0,0 +1,46 @@
+.TH CORE 1
+.SH NAME
+core \- print information about dead processes
+.SH SYNOPSIS
+.B core
+[
+.I dir
+|
+.I corefile
+]...
+.SH DESCRIPTION
+.I Core
+prints information about dead processes that have
+been saved as core dumps.
+.PP
+Core reads its arguments in order.
+If a directory is encountered,
+.I core
+reads every core file named
+.B core.*
+or
+.B *.core
+in that directory.
+.PP
+For each core file read,
+.I core
+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.
+.PP
+If no arguments are given,
+.I core
+searches the directory
+.B $COREDIR
+for core files;
+if
+.B $COREDIR
+is not set,
+.I core
+searches the current directory.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/core.c
+.SH "SEE ALSO
+.IR acid (1),
+.IR db (1),
+.IR core (5)
diff --git a/man/man1/crop.1 b/man/man1/crop.1
new file mode 100644
index 00000000..2804ece0
--- /dev/null
+++ b/man/man1/crop.1
@@ -0,0 +1,147 @@
+.TH CROP 1
+.SH NAME
+crop, iconv \- frame, crop, and convert image
+.SH SYNOPSIS
+.B crop
+[
+.BI -c
+.I red
+.I green
+.I blue
+]
+[
+.B -i
+.I n
+|
+.B -x
+.I dx
+|
+.B -y
+.I dy
+|
+.B -r
+.I minx
+.I miny
+.I maxx
+.I maxy
+]
+[
+.B -t
+.I tx
+.I ty
+]
+[
+.B -b
+.I red
+.I green
+.I blue
+]
+[
+.I file
+]
+.PP
+.B iconv
+[
+.B -u
+] [
+.B -c
+.I chandesc
+]
+[
+.I file
+]
+.SH DESCRIPTION
+.I Crop
+reads an
+.IR image (7)
+file (default standard input), crops it, and writes it as a compressed
+.IR image (7)
+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
+.IR crop ,
+in which case the color value crop will be done first.
+.PP
+The
+.B -c
+option takes a red-green-blue triplet as described in
+.IR color (3).
+(For example, white
+is
+.B 255
+.B 255
+.BR 255 .)
+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.
+.PP
+The
+.B -i
+option insets the image rectangle by a constant amount,
+.IR n ,
+which may be negative to generate extra space around the image.
+The
+.B -x
+and
+.B -y
+options are similar, but apply only to the
+.I x
+or
+.I y
+coordinates of the image.
+.PP
+The
+.B -r
+option specifies an exact rectangle.
+.PP
+The
+.B -t
+option specifies that the image's coordinate system should
+be translated by
+.IR tx ,
+.IR ty
+as the last step of processing.
+.PP
+The
+.B -b
+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
+.B -i
+option is given a negative argument.
+This can be used to draw a monochrome frame around the image.
+The default color is black.
+.PP
+.I Iconv
+changes the format of pixels in the image
+.I file
+(default standard input) and writes the resulting image to standard output.
+Pixels in the image are converted according to the channel descriptor
+.IR chandesc ,
+(see
+.IR image (7)).
+For example, to convert a 4-bit-per-pixel grey-scale image to an 8-bit-per-pixel
+color-mapped image,
+.I chandesc
+should be
+.BR m8 .
+If
+.I chandesc
+is not given, the format is unchanged.
+The output image is by default compressed; the
+.B -u
+option turns off the compression.
+.SH EXAMPLE
+To crop white edges off the picture and add a ten-pixel pink border,
+.IP
+.EX
+crop -c 255 255 255 -i -10 -b 255 150 150 imagefile > cropped
+.EE
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/draw/crop.c
+.SH SEE ALSO
+.IR image (7),
+.IR color (3)
+.SH BUGS
+.I Iconv
+should be able to do Floyd-Steinberg error diffusion or dithering
+when converting to small image depths.
diff --git a/man/man1/date.1 b/man/man1/date.1
index cdc02285..45440e63 100644
--- a/man/man1/date.1
+++ b/man/man1/date.1
@@ -8,8 +8,8 @@ date, clock \- date and time
] [
.I seconds
]
-.br
-.B clock
+.\" .br
+.\" .B clock
.SH DESCRIPTION
Print the date, in the format
.PP
@@ -28,31 +28,31 @@ epoch, 00:00:00 GMT, January 1, 1970.
The conversion from Greenwich Mean Time to local time depends on the
.B $timezone
environment variable; see
-.IR ctime (2).
+.IR ctime (3).
.PP
If the optional argument
.I seconds
is present, it is used as the time to convert rather than
the real time.
-.SH FILES
-.TF /adm/timezone/local
-.TP
-.B /env/timezone
-Current timezone name and adjustments.
-.TP
-.B /adm/timezone
-A directory containing timezone tables.
-.TP
-.B /adm/timezone/local
-Default timezone file, copied by
-.IR init (8)
-into
-.BR /env/timezone .
-.PD
-.PP
-.I Clock
-draws a simple analog clock in its window.
+.\" .SH FILES
+.\" .TF /adm/timezone/local
+.\" .TP
+.\" .B /env/timezone
+.\" Current timezone name and adjustments.
+.\" .TP
+.\" .B /adm/timezone
+.\" A directory containing timezone tables.
+.\" .TP
+.\" .B /adm/timezone/local
+.\" Default timezone file, copied by
+.\" .IR init (8)
+.\" into
+.\" .BR /env/timezone .
+.\" .PD
+.\" .PP
+.\" .I Clock
+.\" draws a simple analog clock in its window.
.SH SOURCE
.B /usr/local/plan9/src/cmd/date.c
-.br
-.B /usr/local/plan9/src/cmd/clock.c
+.\" .br
+.\" .B /usr/local/plan9/src/cmd/draw/clock.c
diff --git a/man/man1/db.1 b/man/man1/db.1
index 10d38cb2..b8021001 100644
--- a/man/man1/db.1
+++ b/man/man1/db.1
@@ -33,9 +33,7 @@ specifies the memory image of a process.
A
.I pid
gives the id of an executing process to be accessed via
-.IR ptrace (2)
-or
-.IR proc (5).
+.IR ptrace (2).
A
.I corefile
specifies the name of a core dump (see
@@ -949,7 +947,6 @@ is one the breakpoint will fire.
Beware that local variables may be stored in registers; see the
BUGS section.
.SH "SEE ALSO"
-.IR 9nm (1),
.IR acid (1)
.SH SOURCE
.B /usr/local/plan9/src/cmd/db
diff --git a/man/man1/deroff.1 b/man/man1/deroff.1
index 2097a80d..18d62280 100644
--- a/man/man1/deroff.1
+++ b/man/man1/deroff.1
@@ -67,7 +67,7 @@ requests.
Remove titles, attachments, etc., as well as ordinary
.IR troff
constructs, from
-.IR ms (6)
+.IR ms (7)
or
.I mm
documents.
@@ -93,7 +93,7 @@ files.
.SH SOURCE
.B /usr/local/plan9/src/cmd/deroff.c
.br
-.B /usr/local/plan9/src/cmd/tex/local/delatex.c
+.B /usr/local/plan9/src/cmd/delatex.lx
.SH "SEE ALSO"
.IR troff (1),
.IR tex (1),
diff --git a/man/man1/dict.1 b/man/man1/dict.1
index 1665ea7c..3c01c71b 100644
--- a/man/man1/dict.1
+++ b/man/man1/dict.1
@@ -1,4 +1,4 @@
-.TH DICT 7
+.TH DICT 1
.SH NAME
dict \- dictionary browser
.SH SYNOPSIS
@@ -46,7 +46,7 @@ Print a pronunciation key.
.PD
.PP
Patterns are regular expressions (see
-.IR regexp (6)),
+.IR regexp (7)),
with an implicit leading
.L ^
and trailing
@@ -146,18 +146,22 @@ Otherwise, the default command is the previous command.
Other files in
.BR /lib .
.SH "SEE ALSO"
-.IR regexp (6)
+.IR regexp (7)
.SH SOURCE
.B /usr/local/plan9/src/cmd/dict
.SH BUGS
A font with wide coverage of the Unicode Standard
should be used for best results.
(Try
-.BR /lib/font/bit/pelm/unicode.9.font .)
-.br
+.BR /usr/local/plan9/font/pelm/unicode.9.font .)
+.PP
If the
.I pattern
doesn't begin with
a few literal characters, matching takes a long time.
-.br
-The dictionaries are not distributed outside Bell Labs.
+.PP
+The dictionaries are not distributed outside Bell Labs,
+though see
+.B /usr/local/plan9/dict/README
+for information on using free dictionaries prepared
+by Project Gutenberg.
diff --git a/man/man1/doctype.1 b/man/man1/doctype.1
new file mode 100644
index 00000000..cb339ae6
--- /dev/null
+++ b/man/man1/doctype.1
@@ -0,0 +1,56 @@
+.TH DOCTYPE 1
+.SH NAME
+doctype \- intuit command line for formatting a document
+.SH SYNOPSIS
+.B doctype
+[
+.I option ...
+] [
+.I file
+]
+\&...
+.SH DESCRIPTION
+.I Doctype
+examines a
+.IR troff (1)
+input file to deduce the appropriate text formatting command
+and prints it on standard output.
+.I Doctype
+recognizes input for
+.IR troff (1),
+related preprocessors like
+.IR eqn (1),
+and the
+.IR ms (7)
+and
+.I mm
+macro packages.
+.PP
+Option
+.B -n
+invokes
+.I nroff
+instead of
+.IR troff .
+Other options are passed to
+.IR troff .
+.SH EXAMPLES
+.TP
+.L
+eval `{doctype chapter.?} | lp
+Typeset files named
+.BR chapter.0 ,
+.BR chapter.1 ,
+\&...
+.SH SOURCE
+.B /usr/local/plan9/bin/doctype
+.SH SEE ALSO
+.IR troff (1),
+.IR eqn (1),
+.IR tbl (1),
+.IR pic (1),
+.IR grap (1),
+.IR ms (7),
+.IR man (7)
+.SH BUGS
+In true A.I. style, its best guesses are inspired rather than accurate.
diff --git a/man/man1/ed.1 b/man/man1/ed.1
index 7b88f11d..b61972b2 100644
--- a/man/man1/ed.1
+++ b/man/man1/ed.1
@@ -96,7 +96,7 @@ beginning of a line.
supports the
.I "regular expression"
notation described in
-.IR regexp (6).
+.IR regexp (7).
Regular expressions are used in addresses to specify
lines and in one command
(see
@@ -673,7 +673,7 @@ and all characters after the last newline.
.SH "SEE ALSO"
.IR sam (1),
.IR sed (1),
-.IR regexp (6)
+.IR regexp (7)
.SH DIAGNOSTICS
.BI ? name
for inaccessible file;
diff --git a/man/man1/eqn.1 b/man/man1/eqn.1
index 7c917cdb..2d914495 100644
--- a/man/man1/eqn.1
+++ b/man/man1/eqn.1
@@ -316,7 +316,7 @@ when all else fails.
.B /sys/lib/troff/font/devutf
font descriptions for PostScript
.SH SOURCE
-.B /sys/src/cmd/eqn
+.B /usr/local/plan9/src/cmd/eqn
.SH "SEE ALSO"
.IR troff (1),
.IR tbl (1)
diff --git a/man/man1/freq.1 b/man/man1/freq.1
index fd326a25..853e479d 100644
--- a/man/man1/freq.1
+++ b/man/man1/freq.1
@@ -36,5 +36,5 @@ character, respectively.
.SH SOURCE
.B /usr/local/plan9/src/cmd/freq.c
.SH SEE ALSO
-.IR utf (6),
+.IR utf (7),
.IR wc (1)
diff --git a/man/man1/fsize.1 b/man/man1/fsize.1
new file mode 100644
index 00000000..cabe7f3d
--- /dev/null
+++ b/man/man1/fsize.1
@@ -0,0 +1,22 @@
+.TH FSIZE 1
+.SH NAME
+fsize, mtime \- print file information
+.SH SYNOPSIS
+.B fsize
+.I file ...
+.PP
+.B mtime
+.I file ...
+.SH DESCRIPTION
+.I Fsize
+prints the name and size of each of the files.
+.PP
+.I Mtime
+prints the name and modification time (in seconds since the epoch)
+of each of the files.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/fsize.c
+.br
+.B /usr/local/plan9/src/cmd/mtime.c
+.SH BUGS
+The output formats of the two programs are different.
diff --git a/man/man1/grap.1 b/man/man1/grap.1
index b098f822..8fbfaaaf 100644
--- a/man/man1/grap.1
+++ b/man/man1/grap.1
@@ -404,7 +404,7 @@ copy thru / circle at $1,$2 /
.B /sys/lib/grap.defines
definitions of standard plotting characters, e.g., bullet
.SH SOURCE
-.B /sys/src/cmd/grap
+.B /usr/local/plan9/src/cmd/grap
.SH "SEE ALSO"
.IR pic (1),
.IR troff (1)
diff --git a/man/man1/graph.1 b/man/man1/graph.1
index 4cdc6b24..f105d87d 100644
--- a/man/man1/graph.1
+++ b/man/man1/graph.1
@@ -135,7 +135,7 @@ If a specified lower limit exceeds the upper limit,
the axis
is reversed.
.SH SOURCE
-.B /sys/src/cmd/graph
+.B /usr/local/plan9/src/cmd/graph
.SH "SEE ALSO"
.IR plot (1),
.IR grap (1)
diff --git a/man/man1/grep.1 b/man/man1/grep.1
index e58d0d97..b8cb431c 100644
--- a/man/man1/grep.1
+++ b/man/man1/grep.1
@@ -1,6 +1,6 @@
.TH GREP 1
.SH NAME
-grep \- search a file for a pattern
+grep, g \- search a file for a pattern
.SH SYNOPSIS
.B grep
[
@@ -10,6 +10,14 @@ grep \- search a file for a pattern
[
.I file ...
]
+.B g
+[
+.I option ...
+]
+.I pattern
+[
+.I file ...
+]
.SH DESCRIPTION
.I Grep\^
searches the input
@@ -18,7 +26,7 @@ searches the input
for lines that match the
.IR pattern ,
a regular expression as defined in
-.IR regexp (6)
+.IR regexp (7)
with the addition of a newline character as an alternative
(substitute for
.BR | )
@@ -90,14 +98,26 @@ in single quotes
An expression starting with '*'
will treat the rest of the expression
as literal characters.
+.PP
+.I G
+invokes grep with
+.B -n
+and forces tagging of output lines by file name.
+If no files are listed, it searches all files matching
+.IP
+.EX
+*.C *.b *.c *.h *.m *.cc *.java *.py *.tex *.ms
+.EE
.SH SOURCE
.B /usr/local/plan9/src/cmd/grep
+.br
+.B /usr/local/plan9/bin/g
.SH SEE ALSO
.IR ed (1),
.IR awk (1),
.IR sed (1),
.IR sam (1),
-.IR regexp (6)
+.IR regexp (7)
.SH DIAGNOSTICS
Exit status is null if any lines are selected,
or non-null when no lines are selected or an error occurs.
diff --git a/man/man1/gzip.1 b/man/man1/gzip.1
new file mode 100644
index 00000000..58886891
--- /dev/null
+++ b/man/man1/gzip.1
@@ -0,0 +1,160 @@
+.TH GZIP 1
+.SH NAME
+gzip, gunzip, bzip2, bunzip2, zip, unzip, \- compress and expand data
+.SH SYNOPSIS
+.B gzip
+.RB [ -cvD [ 1-9 ]]
+.RI [ file
+.BR ... ]
+.PP
+.B gunzip
+.RB [ -ctTvD ]
+.RI [ file
+.BR ... ]
+.PP
+.B bzip2
+.RB [ -cvD [ 1-9 ]]
+.RI [ file
+.BR ... ]
+.PP
+.B bunzip2
+.RB [ -cvD ]
+.RI [ file
+.BR ... ]
+.PP
+.B zip
+.RB [ -vD [ 1-9 ]]
+.RB [ -f
+.IR zipfile ]
+.I file
+.RB [ ... ]
+.PP
+.B unzip
+.RB [ -cistTvD ]
+.RB [ -f
+.IR zipfile ]
+.IR [ file
+.BR ... ]
+.SH DESCRIPTION
+.PP
+.I Gzip
+encodes files with a hybrid Lempel-Ziv 1977 and Huffman compression algorithm
+known as
+.BR deflate .
+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
+.BR .gz ;
+if the resulting name ends with
+.BR .tar.gz ,
+it is converted to
+.B .tgz
+instead.
+.I Gunzip
+reverses the process.
+Its output files are named by taking the last path element of each file argument,
+converting
+.B .tgz
+to
+.BR .tar.gz ,
+and stripping any
+.BR .gz ;
+the resulting name must be different from the original name.
+.PP
+.I Bzip2
+and
+.I bunzip2
+are similar in interface to
+.I gzip
+and
+.IR gunzip ,
+but use a modified Burrows-Wheeler block sorting
+compression algorithm.
+The default suffix for output files is
+.BR .bz2 ,
+with
+.B .tar.bz2
+becoming
+.BR .tbz .
+.I Bunzip2
+recognizes the extension
+.B .tbz2
+as a synonym for
+.BR .tbz .
+.PP
+.I Zip
+encodes the named files and places the results into the archive
+.IR zipfile ,
+or the standard output if no file is given.
+.I Unzip
+extracts files from an archive created by
+.IR zip .
+If no files are named as arguments, all of files in the archive are extracted.
+A directory's name implies all recursively contained files and subdirectories.
+.PP
+None of these programs removes the original files.
+If the process fails, the faulty output files are removed.
+.PP
+The options are:
+.TP 1i
+.B -c
+Write to standard output rather than creating an output file.
+.TP
+.B -i
+Convert all archive file names to lower case.
+.TP
+.B -s
+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
+if no
+.I zipfile
+is specified.
+If
+.B -s
+is given,
+.B -T
+is ignored.
+.TP
+.B -t
+List matching files in the archive rather than extracting them.
+.TP
+.B -T
+Set the output time to that specified in the archive.
+.TP
+.BR -1 " .. " -9
+Sets the compression level.
+.B -1
+is tuned for speed,
+.B -9
+for minimal output size.
+The best compromise is
+.BR -6 ,
+the default.
+.TP
+.B -v
+Produce more descriptive output.
+With
+.BR -t ,
+adds the uncompressed size in bytes and the modification time to the output.
+Without
+.BR -t ,
+prints the names of files on standard error as they are compressed or decompressed.
+.TP
+.B -D
+Produce debugging output.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/gzip
+.br
+.B /usr/local/plan9/src/cmd/bzip2
+.SH SEE ALSO
+.IR tar (1),
+.IR compress (1)
+.SH BUGS
+.I Unzip
+can only extract files which are uncompressed or compressed
+with the
+.B deflate
+compression scheme. Recent zip files fall into this category.
diff --git a/man/man1/join.1 b/man/man1/join.1
index 2cf079f2..841d077c 100644
--- a/man/man1/join.1
+++ b/man/man1/join.1
@@ -106,21 +106,21 @@ in a line is significant.
.SH EXAMPLES
.TP
.L
-sort -t: +1 /adm/users | join -t: -1 2 -a 1 -e "" - bdays
+sort /etc/passwd | join -t: -1 1 -a 1 -e "" - bdays
Add birthdays to the
-.B /adm/users
+.B /etc/passwd
file, leaving unknown
birthdays empty.
The layout of
.B /adm/users
is given in
-.IR users (6);
+.IR passwd (5);
.B bdays
contains sorted lines like
.LR "ken:Feb\ 4,\ 1953" .
.TP
.L
-tr : ' ' </adm/users | sort -k 3 3 >temp
+tr : ' ' </etc/passwd | sort -k 3 3 >temp
.br
.ns
.TP
@@ -145,4 +145,3 @@ the sequence is that of
.BI -k y , y\f1.
.br
One of the files must be randomly accessible.
-
diff --git a/man/man1/jpg.1 b/man/man1/jpg.1
new file mode 100644
index 00000000..b81490b2
--- /dev/null
+++ b/man/man1/jpg.1
@@ -0,0 +1,243 @@
+.TH JPG 1
+.SH NAME
+jpg, gif, png, ppm, bmp, yuv, ico, togif, toppm, topng, toico \- view and convert pictures
+.SH SYNOPSIS
+.B jpg
+[
+.B -39cdefFkJrtv
+] [
+.I file ...
+]
+.br
+.B gif
+[
+.B -39cdektv
+] [
+.I file ...
+]
+.br
+.B png
+[
+.B -39cdektv
+] [
+.I file ...
+]
+.br
+.B ppm
+[
+.B -39cdektv
+] [
+.I file ...
+]
+.br
+.B bmp
+[
+.I file
+]
+.br
+.B yuv
+[
+.I file
+]
+.PP
+.B togif
+[
+.B -c
+.I comment
+] [
+.B -l
+.I loopcount
+] [
+.B -d
+.I msec
+] [
+.B -t
+.I transindex
+] [
+.I file ...
+[
+.B -d
+.I msec
+]
+.I file ...
+]
+.br
+.B toppm
+[
+.B -c
+.I comment
+] [
+.I file
+]
+.br
+.B topng
+[
+.B -c
+.I comment
+] [
+[
+.B -g
+.I gamma
+] [
+.I file
+]
+.PP
+.B ico
+[
+.I file
+]
+.br
+.B toico
+[
+.I file ...
+]
+.SH DESCRIPTION
+These programs read, display, and write image files in public formats.
+.IR Jpg ,
+.IR gif ,
+.IR png ,
+.IR ppm ,
+.IR bmp ,
+and
+.IR yuv .
+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.
+.IR Togif ,
+.IR Toppm ,
+and
+.I topng
+read Plan 9 images files, convert them to GIF, PPM, or PNG, and write them to standard output.
+.PP
+The default behavior of
+.IR jpg ,
+.IR gif ,
+and
+.IR ppm
+is to display the
+.IR file ,
+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
+.BR q ,
+DEL, or control-D exits the program.
+For a more user-friendly interface, use
+.IR page (1),
+which invokes these programs to convert the images to standard format,
+displays them, and offers scrolling, panning, and menu-driven navigation among the files.
+.PP
+These programs share many options:
+.TP
+.B -e
+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.
+.TP
+.B -k
+Convert and display the image as a black and white (really grey-scale) image.
+.TP
+.B -v
+Convert the image to an RGBV color-mapped image, even if the
+display has true RGB color.
+.TP
+.B -d
+Suppress display of the image; this is set automatically by
+any of the following options:
+.TP
+.B -c
+Convert the image to a Plan 9 representation, as defined by
+.IR image (7),
+and write it to standard output.
+.TP
+.B -9
+Like
+.BR -c ,
+but produce an uncompressed image.
+This saves processing time, particularly when the output is
+being piped to another program such as
+.IR page (1),
+since it avoids compression and decompression.
+.TP
+.B -t
+Convert the image, if it is in color, to a true color RGB image.
+.TP
+.B -3
+Like
+.BR -t ,
+but force the image to RGB even if it is originally grey-scale.
+.PD
+.PP
+.I Jpg
+has two extra options used to process the output of the LML
+video card:
+.TP
+.B -f
+Merge two adjacent images, which represent the two fields of a video picture,
+into a single image.
+.TP
+.B -F
+The input is a motion JPEG file, with multiple images representing frames of the movie. Sets
+.BR -f .
+.PD
+.PP
+The
+.IR togif
+and
+.IR toppm
+programs go the other way: they convert from Plan 9 images to GIF and PPM,
+and have no display capability.
+Both accept an option
+.B -c
+to set the comment field of the resulting file.
+If there is only one input picture,
+.I togif
+converts the image to GIF format.
+If there are many
+.IR files ,
+though, it will assemble them into an animated GIF file.
+The options control this process:
+.TP
+.BI -l loopcount
+By default, the animation will loop forever;
+.I loopcount
+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.
+.TP
+.BI -d msec
+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
+.IR file .
+.PP
+.I Gif
+translates files that contain a `transparency' index by attaching
+an alpha channel to the converted image.
+.PP
+.I Ico
+displays a Windows icon (.ico) file. If no file is
+specified,
+.I ico
+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's image as a Plan 9 image (\fIwidth\fBx\fIheight\fB.image),
+write any icon's mask as a Plan 9 image (\fIwidth\fBx\fIheight\fB.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.
+.PP
+.I Toico
+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.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/jpg
+.SH "SEE ALSO"
+.IR page (1),
+.IR image (7).
+.SH BUGS
+Writing an animated GIF using
+.I togif
+is a clumsy undertaking.
diff --git a/man/man1/kill.1 b/man/man1/kill.1
new file mode 100644
index 00000000..c7d5ff92
--- /dev/null
+++ b/man/man1/kill.1
@@ -0,0 +1,69 @@
+.TH KILL 1
+.SH NAME
+kill, slay, start, stop \- print commands to manipulate processes
+.SH SYNOPSIS
+.B kill
+.I name ...
+.PP
+.B slay
+.I name ...
+.PP
+.B start
+.I name ...
+.PP
+.B stop
+.I name ...
+.PP
+.B broke
+[
+.I user
+]
+.SH DESCRIPTION
+.I Kill
+prints commands that will cause all processes with
+.I name
+and owned by the current user to be terminated.
+Each command is commented with an output line from
+.IR ps (1)
+describing the process that would be killed.
+Use the
+.B send
+command of
+.IR 9term (1),
+or pipe the output of
+.I kill
+into
+.IR rc (1)
+or
+.IR sh (1)
+to execute the commands.
+.PP
+.I Kill
+suggests sending a Unix
+.B TERM
+signal to the process;
+sending a
+.B KILL
+signal is a surer, if heavy handed, kill,
+but is necessary if the offending process is
+ignoring signals.
+The
+.I slay
+command prints commands to do this.
+.PP
+.I Stop
+prints commands to pause execution of processes
+by sending them the
+.B STOP
+signal.
+.PP
+.I Start
+prints commands to restart stopped processes by sending them
+the
+.B CONT
+signal.
+.SH SOURCE
+.B /usr/local/plan9/bin
+.SH "SEE ALSO"
+.IR ps (1),
+.IR notify (3)
diff --git a/man/man1/label.1 b/man/man1/label.1
new file mode 100644
index 00000000..0caf8d5c
--- /dev/null
+++ b/man/man1/label.1
@@ -0,0 +1,71 @@
+.TH LABEL 1
+.SH NAME
+label, awd \- set window label
+.SH SYNOPSIS
+.B label
+.I string
+.br
+.B awd
+.SH DESCRIPTION
+.I Label
+sets the label of the current
+.I win
+(see
+.IR acme (1))
+or X terminal window
+.RI ( e.g.,
+.IR 9term (1)
+or
+.IR xterm (1))
+by echoing a special control sequence to standard output.
+.PP
+.I Acme
+and
+.I 9term
+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.
+.SH EXAMPLE
+One can use the following
+.IR sh (1)
+function to keep the label up-to-date in response to
+.I cd
+commands:
+.IP
+.EX
+_cd () {
+ \ecd "$@" &&
+ case $- in
+ *i*)
+ awd
+ esac
+}
+alias cd=_cd
+cd .
+.EE
+.PP
+.IR Rc (1)
+installs a similar
+.B fn
+.B cd
+at startup if there is not already a function named
+.BR cd :
+.IP
+.EX
+fn cd {
+ builtin cd $1 && flag i && awd
+}
+.EE
+.SH SOURCE
+.B /usr/local/plan9/bin/label
+.br
+.B /usr/local/plan9/bin/awd
+.SH BUGS
+.I Awd
+is also documented in
+.IR acme (1).
+.PP
+.I Awd
+does not append the
+.BI - label
+suffix that it does on Plan 9.
diff --git a/man/man1/lex.1 b/man/man1/lex.1
new file mode 100644
index 00000000..7021e8d7
--- /dev/null
+++ b/man/man1/lex.1
@@ -0,0 +1,81 @@
+.TH LEX 1
+.SH NAME
+lex \- generator of lexical analysis programs
+.SH SYNOPSIS
+.B lex
+[
+.B -tvn9
+]
+[
+.I file ...
+]
+.SH DESCRIPTION
+.I Lex
+generates programs to be used in simple lexical analysis of text.
+The input
+.I files
+(standard input default)
+contain regular expressions
+to be searched for and actions written in C to be executed when
+expressions are found.
+.PP
+A C source program,
+.B lex.yy.c
+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.
+.PP
+The options have the following meanings.
+.TP
+.B -t
+Place the result on the standard output instead of in file
+.BR lex.yy.c .
+.TP
+.B -v
+Print a one-line summary of statistics of the generated analyzer.
+.TP
+.B -n
+Opposite of
+.BR -v ;
+.B -n
+is default.
+.TP
+.B -9
+Adds code to be able to compile through the native C compilers.
+.SH EXAMPLES
+This program converts upper case to lower,
+removes blanks at the end of lines,
+and replaces multiple blanks by single blanks.
+.PP
+.EX
+%%
+[A-Z] putchar(yytext[0]+\'a\'-\'A\');
+[ ]+$
+[ ]+ putchar(\' \');
+.EE
+.SH FILES
+.TF /sys/lib/lex/ncform
+.TP
+.B lex.yy.c
+output
+.TP
+.B /sys/lib/lex/ncform
+template
+.SH "SEE ALSO"
+.IR yacc (1),
+.IR sed (1)
+.br
+M. E. Lesk and E. Schmidt,
+`LEX\(emLexical Analyzer Generator',
+.I
+Unix Research System Programmer's Manual,
+Tenth Edition, Volume 2.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/lex
+.SH BUGS
+Cannot handle
+.SM UTF.
+.br
+The asteroid to kill this dinosaur is still in orbit.
diff --git a/man/man1/look.1 b/man/man1/look.1
new file mode 100644
index 00000000..e06e8420
--- /dev/null
+++ b/man/man1/look.1
@@ -0,0 +1,86 @@
+.TH LOOK 1
+.SH NAME
+look \- find lines in a sorted list
+.SH SYNOPSIS
+.B look
+[
+.BI -dfnixt c
+]
+[
+.I string
+]
+[
+.I file
+]
+.SH DESCRIPTION
+.I Look
+consults a sorted
+.I file
+and prints all lines that begin with
+.IR string .
+It uses binary search.
+.PP
+The following options are recognized.
+Options
+.B dfnt
+affect comparisons as in
+.IR sort (1).
+.TP
+.B -i
+Interactive.
+There is no
+.I string
+argument; instead
+.I look
+takes lines from the standard input as strings to be looked up.
+.TP
+.B -x
+Exact.
+Print only lines of the file whose key matches
+.I string
+exactly.
+.TP
+.B -d
+`Directory' order:
+only letters, digits,
+tabs and blanks participate in comparisons.
+.TP
+.B -f
+Fold.
+Upper case letters compare equal to lower case.
+.TP
+.B -n
+Numeric comparison with initial string of digits, optional minus sign,
+and optional decimal point.
+.TP
+.BR -t [ \f2c\f1 ]
+Character
+.I c
+terminates the sort key in the
+.IR file .
+By default, tab terminates the key. If
+.I c
+is missing the entire line comprises the key.
+.PP
+If no
+.I file
+is specified,
+.B /lib/words
+is assumed, with collating sequence
+.BR df .
+.SH FILES
+.B /lib/words
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/look.c
+.SH "SEE ALSO"
+.IR sort (1),
+.IR grep (1)
+.SH DIAGNOSTICS
+The exit status is
+.B \&"not found"
+if no match is found, and
+.B \&"no dictionary"
+if
+.I file
+or the default dictionary cannot be opened.
+
diff --git a/man/man1/ls.1 b/man/man1/ls.1
index 35981ab2..4cea25bc 100644
--- a/man/man1/ls.1
+++ b/man/man1/ls.1
@@ -10,7 +10,7 @@ ls, lc \- list contents of directory
.PP
.B lc
[
-.B -dlmnqrstuFQ
+.B -dlmnpqrstuFQ
]
.I name ...
.SH DESCRIPTION
@@ -60,7 +60,7 @@ Print only the final path element of each file name.
List the
.I qid
(see
-.IR stat (2))
+.IR stat (3))
of each file; the printed fields are in the order
path, version, and type.
.TP
@@ -157,6 +157,6 @@ if none of the above permissions is granted.
.br
.B /usr/local/plan9/bin/lc
.SH SEE ALSO
-.IR stat (2)
+.IR stat (3)
.IR mc (1)
diff --git a/man/man1/man.1 b/man/man1/man.1
new file mode 100644
index 00000000..7b865842
--- /dev/null
+++ b/man/man1/man.1
@@ -0,0 +1,105 @@
+.TH MAN 1
+.SH NAME
+man, lookman \- print or find pages of this manual
+.SH SYNOPSIS
+.B man
+[
+.I option ...
+]
+[
+.I section ...
+]
+.I title ...
+.PP
+.B lookman
+.I key ...
+.PP
+.B sig
+.I function ...
+.SH DESCRIPTION
+.I Man
+locates and prints pages of this manual named
+.I title
+in the specified
+.IR sections .
+.I Title
+is given in lower case.
+Each
+.I section
+is a number;
+pages marked (2S), for example,
+belong to chapter 2.
+If no
+.I section
+is specified, pages
+in all sections are printed.
+Any name from the
+.SM NAME
+section at the top of the page will serve as a
+.IR title .
+.PP
+The options are:
+.TP
+.B -p
+Run
+.IR proof (1)
+on the specified man pages.
+.TP
+.B -P
+Run
+.IR page (1)
+on the specified man pages.
+.TP
+.B -t
+Run
+.I troff
+and send its output
+to standard output.
+.TP
+.B -n
+(Default)
+Print the pages on the standard output using
+.IR nroff .
+.PP
+.B Lookman
+prints the names of all manual sections that contain
+all of the
+.I key
+words given on the command line.
+.PP
+.B Sig
+prints the signature (i.e. C definition) of the
+.IR function 's
+given on the command line.
+.SH FILES
+.TF /sys/lib/man/lookman/index
+.TP
+.B /sys/man/?/*
+.I troff
+source for manual; this page is
+.B /sys/man/1/man
+.TP
+.B /sys/man/?/INDEX
+indices searched to find pages corresponding to titles
+.TP
+.B /sys/lib/man/secindex
+command to make an index for a given section
+.TP
+.B /sys/lib/man/lookman/index
+index for
+.I lookman
+.SH SOURCE
+.B /usr/local/plan9/bin/9man
+.br
+.B /usr/local/plan9/bin/lookman
+.SH "SEE ALSO"
+.IR proof (1)
+.SH BUGS
+The manual was intended to be typeset; some detail is sacrificed on text terminals.
+.br
+There is no automatic mechanism to keep the indices up to date.
+.br
+Except for special cases, it doesn't recognize things that should be run through
+.I tbl
+and/or
+.IR eqn .
diff --git a/man/man1/map.1 b/man/man1/map.1
new file mode 100644
index 00000000..cc73075e
--- /dev/null
+++ b/man/man1/map.1
@@ -0,0 +1,675 @@
+.TH MAP 1
+.SH NAME
+map, mapdemo \- draw maps on various projections
+.SH SYNOPSIS
+.B map
+.I projection
+[
+.I option ...
+]
+.PP
+.B mapdemo
+.PP
+.SH DESCRIPTION
+.I Map
+prepares on the standard output a
+map suitable for display by any
+plotting filter described in
+.IR plot (1).
+A menu of projections is produced in response to an unknown
+.IR projection .
+.I Mapdemo
+is a short course in mapping.
+.PP
+The default data for
+.I map
+are world shorelines.
+Option
+.B -f
+accesses more detailed data
+classified by feature.
+.TP
+.BR -f " [ \fIfeature\fR ... ]"
+Features are ranked 1 (default) to 4 from major to minor.
+Higher-numbered ranks include all lower-numbered ones.
+Features are
+.RS
+.TF country[1-3]
+.TP
+.BR shore [ 1 - 4 ]
+seacoasts, lakes, and islands; option
+.B -f
+always shows
+.B shore1
+.TP
+.BR ilake [ 1 - 2 ]
+intermittent lakes
+.TP
+.BR river [ 1 - 4 ]
+rivers
+.TP
+.BR iriver [ 1 - 3 ]
+intermittent rivers
+.TP
+.BR canal [ 1 - 3 ]
+.BR 3 =irrigation
+canals
+.TP
+.BR glacier
+.TP
+.BR iceshelf [ 12 ]
+.TP
+.BR reef
+.TP
+.BR saltpan [ 12 ]
+.TP
+.BR country [ 1 - 3 ]
+.BR 2 =disputed
+boundaries,
+.BR 3 =indefinite
+boundaries
+.TP
+.BR state
+states and provinces (US and Canada only)
+.PD
+.RE
+.PP
+In other options
+coordinates are in degrees, with north latitude
+and west longitude counted as positive.
+.TP 0
+.BI -l " S N E W"
+Set the southern and northern latitude
+and the eastern and western longitude limits.
+Missing arguments are filled out from the list
+\-90, 90, \-180, 180,
+or lesser limits suitable to the
+projection at hand.
+.TP
+.BI -k " S N E W
+Set the scale as if for a map with limits
+.B -l
+.I "S N E W"\f1.
+Do not consider any
+.B -l
+or
+.B -w
+option in setting scale.
+.TP
+.BI -o " lat lon rot"
+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
+on the globe.
+Then tilt the North Pole of the
+overlay along its Prime Meridian to latitude
+.I lat
+on the globe.
+Finally again turn the
+overlay about its `North Pole' so
+that its Prime Meridian coincides with the previous position
+of meridian
+.IR rot .
+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
+.BR - o ,
+the orientation is 90, 0,
+.IR m ,
+where
+.I m
+is the middle of the longitude range.
+.TP
+.BI -w " S N E W"
+Window the map by the specified latitudes
+and longitudes in the tilted, rotated coordinate system.
+Missing arguments are filled out from the list \-90, 90, \-180, 180.
+(It is wise to give an encompassing
+.B -l
+option with
+.BR -w .
+Otherwise for small windows computing time
+varies inversely with area!)
+.TP
+.BI -d " n"
+For speed, plot only every
+.IR n th
+point.
+.TP
+.B -r
+Reverse left and right
+(good for star charts and inside-out views).
+.ns
+.TP
+.B -v
+Verso.
+Switch to a normally suppressed sheet of the map, such as the
+back side of the earth in orthographic projection.
+.TP
+.B -s1
+.br
+.ns
+.TP
+.B -s2
+Superpose; outputs for a
+.B -s1
+map (no closing) and a
+.B -s2
+map (no opening) may be concatenated.
+.TP
+.BI -g " dlat dlon res"
+Grid spacings are
+.IR dlat ,
+.IR dlon .
+Zero spacing means no grid.
+Missing
+.I dlat
+is taken to be zero.
+Missing
+.I dlon
+is taken the same as
+.IR dlat .
+Grid lines are drawn to a resolution of
+.I res
+(2° or less by default).
+In the absence of
+.BR - g ,
+grid spacing is 10°.
+.TP
+.BI -p " lat lon extent"
+Position the point
+.I lat, lon
+at the center of the plotting area.
+Scale the map so that the height (and width) of the
+nominal plotting area is
+.I extent
+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
+overrides option
+.BR -k .
+.TP
+.BI -c " x y rot"
+After all other positioning and scaling operations
+have been performed, rotate the image
+.I rot
+degrees counterclockwise about the center
+and move the center to position
+.IR x ,
+.IR y ,
+where the nominal plotting area is
+.RI \-1≤ x ≤1,
+.RI \-1≤ y ≤1.
+Missing arguments are taken to be 0.
+.BR -x
+Allow the map to extend outside the nominal plotting area.
+.TP
+.BR -m " [ \fIfile\fP ... ]"
+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
+.BR -f ,
+.RS
+.LP
+.TF counties
+.TP
+.B world
+World Data Bank I (default)
+.TP
+.B states
+US map from Census Bureau
+.TP
+.B counties
+US map from Census Bureau
+.PD
+.RE
+.IP
+The environment variables
+.B MAP
+and
+.B MAPDIR
+change the default
+map and default directory.
+.TP
+.BI -b " \fR[\fPlat0 lon0 lat1 lon1\fR... ]"
+Suppress the drawing of the normal boundary
+(defined by options
+.BR -l
+and
+.BR -w ).
+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
+.B -u
+track.
+.TP
+.BI -t " file ..."
+The
+.I files
+contain lists of points,
+given as latitude-longitude pairs in degrees.
+If the first file is named
+.LR - ,
+the standard input is taken instead.
+The points of each list are plotted as connected `tracks'.
+.IP
+Points in a track file may be followed by label strings.
+A label breaks the track.
+A label may be prefixed by
+\fL"\fR,
+.LR : ,
+or
+.L !
+and is terminated by a newline.
+An unprefixed string or a string prefixed with
+.L
+"
+is displayed at the designated point.
+The first word of a
+.L :
+or
+.L !
+string names a special symbol (see option
+.BR -y ).
+An optional numerical second word is a scale factor
+for the size of the symbol, 1 by default.
+A
+.L :
+symbol is aligned with its top to the north; a
+.L !
+symbol is aligned vertically on the page.
+.TP
+.BI -u " file ..."
+Same as
+.BR -t ,
+except the tracks are
+unbroken lines.
+.RB ( -t
+tracks appear as dot-dashed lines if the plotting filter supports them.)
+.TP
+.BI -y " file
+The
+.I file
+contains
+.IR plot (7)-style
+data for
+.L :
+or
+.L !
+labels in
+.B -t
+or
+.B -u
+files.
+Each symbol is defined by a comment
+.BI : name
+then a sequence of
+.L m
+and
+.L v
+commands.
+Coordinates (0,0) fall on the plotting point.
+Default scaling is as if the nominal plotting range were
+.LR "ra -1 -1 1 1" ;
+.L ra
+commands in
+.I file
+change the scaling.
+.SS Projections
+Equatorial projections centered on the Prime Meridian
+(longitude 0).
+Parallels are straight horizontal lines.
+.PP
+.PD 0
+.TP 1.5i
+.B mercator
+equally spaced straight meridians, conformal,
+straight compass courses
+.TP
+.B sinusoidal
+equally spaced parallels,
+equal-area, same as
+.LR "bonne 0" .
+.TP
+.BI cylequalarea " lat0"
+equally spaced straight meridians, equal-area,
+true scale on
+.I lat0
+.TP
+.B cylindrical
+central projection on tangent cylinder
+.TP
+.BI rectangular " lat0"
+equally spaced parallels, equally spaced straight meridians, true scale on
+.I lat0
+.TP
+.BI gall " lat0"
+parallels spaced stereographically on prime meridian, equally spaced straight
+meridians, true scale on
+.I lat0
+.TP
+.B mollweide
+(homalographic) equal-area, hemisphere is a circle
+.br
+.B gilbert()
+sphere conformally mapped on hemisphere and viewed orthographically
+.TP
+.B gilbert
+globe mapped conformally on hemisphere, viewed orthographically
+.PD
+.PP
+Azimuthal projections centered on the North Pole.
+Parallels are concentric circles.
+Meridians are equally spaced radial lines.
+.PP
+.PD 0
+.TP 1.5i
+.B azequidistant
+equally spaced parallels,
+true distances from pole
+.TP
+.B azequalarea
+equal-area
+.TP
+.B gnomonic
+central projection on tangent plane,
+straight great circles
+.TP
+.BI perspective " dist"
+viewed along earth's axis
+.I dist
+earth radii from center of earth
+.TP
+.B orthographic
+viewed from infinity
+.TP
+.B stereographic
+conformal, projected from opposite pole
+.TP
+.B laue
+.IR radius " = tan(2\(mu" colatitude ),
+used in X-ray crystallography
+.TP
+.BI fisheye " n"
+stereographic seen from just inside medium with refractive index
+.I n
+.TP
+.BI newyorker " r"
+.IR radius " = log(" colatitude / r ):
+.I New Yorker
+map from viewing pedestal of radius
+.I r
+degrees
+.PD
+.PP
+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.
+.PP
+.PD 0
+.TP 1.5i
+.BI conic " lat0"
+central projection on cone tangent at
+.I lat0
+.TP
+.BI simpleconic " lat0 lat1"
+equally spaced parallels, true scale on
+.I lat0
+and
+.I lat1
+.TP
+.BI lambert " lat0 lat1"
+conformal, true scale on
+.I lat0
+and
+.I lat1
+.TP
+.BI albers " lat0 lat1"
+equal-area, true scale on
+.I lat0
+and
+.I lat1
+.TP
+.BI bonne " lat0"
+equally spaced parallels, equal-area,
+parallel
+.I lat0
+developed from tangent cone
+.PD
+.PP
+Projections with bilateral symmetry about
+the Prime Meridian
+and the equator.
+.PP
+.PD 0
+.TP 1.5i
+.B polyconic
+parallels developed from tangent cones,
+equally spaced along Prime Meridian
+.TP
+.B aitoff
+equal-area projection of globe onto 2-to-1
+ellipse, based on
+.I azequalarea
+.TP
+.B lagrange
+conformal, maps whole sphere into a circle
+.TP
+.BI bicentric " lon0"
+points plotted at true azimuth from two
+centers on the equator at longitudes
+.IR ±lon0 ,
+great circles are straight lines
+(a stretched
+.IR gnomonic
+)
+.TP
+.BI elliptic " lon0"
+points plotted at true distance from
+two centers on the equator at longitudes
+.I ±lon0
+.TP
+.B globular
+hemisphere is circle,
+circular arc meridians equally spaced on equator,
+circular arc parallels equally spaced on 0- and 90-degree meridians
+.TP
+.B vandergrinten
+sphere is circle,
+meridians as in
+.IR globular ,
+circular arc parallels resemble
+.I mercator
+.PD
+.PP
+Doubly periodic conformal projections.
+.PP
+.TP 1.5i
+.B guyou
+W and E hemispheres are square
+.PD 0
+.TP
+.B square
+world is square with Poles
+at diagonally opposite corners
+.TP
+.B tetra
+map on tetrahedron with edge
+tangent to Prime Meridian at S Pole,
+unfolded into equilateral triangle
+.TP
+.B hex
+world is hexagon centered
+on N Pole, N and S hemispheres are equilateral
+triangles
+.PD
+.PP
+Miscellaneous projections.
+.PP
+.PD 0
+.TP 1.5i
+.BI harrison " dist angle"
+oblique perspective from above the North Pole,
+.I dist
+earth radii from center of earth, looking
+along the Date Line
+.I angle
+degrees off vertical
+.TP
+.BI trapezoidal " lat0 lat1"
+equally spaced parallels,
+straight meridians equally spaced along parallels,
+true scale at
+.I lat0
+and
+.I lat1
+on Prime Meridian
+.PD
+.br
+.B lune(lat,angle)
+conformal, polar cap above latitude
+.I lat
+maps to convex lune with given
+.I angle
+at 90\(deE and 90\(deW
+.PP
+Retroazimuthal projections.
+At every point the angle between vertical and a straight line to
+`Mecca', latitude
+.I lat0
+on the prime meridian,
+is the true bearing of Mecca.
+.PP
+.PD 0
+.TP 1.5i
+.BI mecca " lat0"
+equally spaced vertical meridians
+.TP
+.BI homing " lat0"
+distances to Mecca are true
+.PD
+.PP
+Maps based on the spheroid.
+Of geodetic quality, these projections do not make sense
+for tilted orientations.
+For descriptions, see corresponding maps above.
+.PP
+.PD 0
+.TP 1.5i
+.B sp_mercator
+.TP
+.BI sp_albers " lat0 lat1"
+.SH EXAMPLES
+.TP
+.L
+map perspective 1.025 -o 40.75 74
+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 `plot'
+the invisible part of the world:
+.LR "map perspective 1.025 -o 40.75 74 -l 20 60 30 100".
+A circular border can be forced by adding option
+.LR "-w 77.33" .
+(Latitude 77.33° falls just inside a polar cap of
+opening angle arccos(1/1.025) = 12.6804°.)
+.TP
+.L
+map mercator -o 49.25 -106 180
+An `equatorial' map of the earth
+centered on New York.
+The pole of the map is placed 90\(de away (40.75+49.25=90)
+on the
+other side of the earth.
+A 180° twist around the pole of the map arranges that the
+`Prime Meridian' 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
+.L
+map mercator -o 130.75 74
+.TP
+.L
+map albers 28 45 -l 20 50 60 130 -m states
+A customary curved-latitude map of the United States.
+.TP
+.L
+map harrison 2 30 -l -90 90 120 240 -o 90 0 0
+A fan view covering 60° on either
+side of the Date Line, as seen from one earth radius
+above the North Pole gazing at the
+earth's limb, which is 30° off vertical.
+The
+.B -o
+option overrides the default
+.BR "-o 90 0 180" ,
+which would rotate
+the scene to behind the observer.
+.SH FILES
+.TF /lib/map/[1-4]??
+.TP
+.B /lib/map/[1-4]??
+World Data Bank II, for
+.B -f
+.TP
+.B /lib/map/*
+maps for
+.B -m
+.TP
+.B /lib/map/*.x
+map indexes
+.TP
+.B /bin/aux/mapd
+Map driver program
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/map
+.SH "SEE ALSO"
+.IR map (7),
+.IR plot (1)
+.SH DIAGNOSTICS
+`Map seems to be empty'\(ema coarse survey found
+zero extent within the
+.B -l
+and
+.BR -w
+bounds; for maps of limited extent
+the grid resolution,
+.IR res ,
+or the limits may have to be refined.
+.SH BUGS
+Windows (option
+.BR -w )
+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
+.B -d
+setting may cause long line segments to be dropped.
+.I Map
+tries to draw grid lines dotted and
+.B -t
+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
+should be a map from sphere to sphere, independent of
+the mapping from sphere to plane.
diff --git a/man/man1/mc.1 b/man/man1/mc.1
index 1618befc..ac535204 100644
--- a/man/man1/mc.1
+++ b/man/man1/mc.1
@@ -18,7 +18,10 @@ splits the input into as many columns as will fit in
.I N
print positions.
If run in a
-.IR rio (1)
+.IR 9term (1),
+.IR xterm (1),
+or
+.IR acme (1)
window, the default
.I N
is the number of blanks that will fit across the window;
@@ -31,9 +34,12 @@ each input line ending in a colon
.L :
is printed separately.
.SH SOURCE
-.B /usr/local/plan9/src/cmd/mc.c
+.B /usr/local/plan9/src/cmd/draw/mc.c
.SH "SEE ALSO"
-.IR rio (1),
+.IR 9term (1),
+.IR acme (1),
+.IR acme (4),
+.IR xterm (1),
.IR pr (1),
.I lc
in
diff --git a/man/man1/mk.1 b/man/man1/mk.1
new file mode 100644
index 00000000..59b1d0ea
--- /dev/null
+++ b/man/man1/mk.1
@@ -0,0 +1,682 @@
+.TH MK 1
+.de EX
+.nf
+.ft B
+..
+.de EE
+.fi
+.ft R
+..
+.de LR
+.if t .BR \\$1 \\$2
+.if n .RB ` \\$1 '\\$2
+..
+.de L
+.nh
+.if t .B \\$1
+.if n .RB ` \\$1 '
+..
+.SH NAME
+mk, membername \- maintain (make) related files
+.SH SYNOPSIS
+.B mk
+[
+.B -f
+.I mkfile
+] ...
+[
+.I option ...
+]
+[
+.I target ...
+]
+.PP
+.B membername
+.IR lib ( object )
+\&...
+.SH DESCRIPTION
+.I Mk
+uses the dependency rules specified in
+.I mkfile
+to control the update (usually by compilation) of
+.I targets
+(usually files)
+from the source files upon which they depend.
+The
+.I mkfile
+(default
+.LR mkfile )
+contains a
+.I rule
+for each target that identifies the files and other
+targets upon which it depends and an
+.IR sh (1)
+script, a
+.IR recipe ,
+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
+may also contain
+.I meta-rules
+that define actions for updating implicit targets.
+If no
+.I target
+is specified, the target of the first rule (not meta-rule) in
+.I mkfile
+is updated.
+.PP
+The environment variable
+.B $NPROC
+determines how many targets may be updated simultaneously;
+Some operating systems, e.g., Plan 9, set
+.B $NPROC
+automatically to the number of CPUs on the current machine.
+.PP
+Options are:
+.TP \w'\fL-d[egp]\ 'u
+.B -a
+Assume all targets to be out of date.
+Thus, everything is updated.
+.PD 0
+.TP
+.BR -d [ egp ]
+Produce debugging output
+.RB ( p
+is for parsing,
+.B g
+for graph building,
+.B e
+for execution).
+.TP
+.B -e
+Explain why each target is made.
+.TP
+.B -i
+Force any missing intermediate targets to be made.
+.TP
+.B -k
+Do as much work as possible in the face of errors.
+.TP
+.B -n
+Print, but do not execute, the commands
+needed to update the targets.
+.TP
+.B -s
+Make the command line arguments sequentially rather than in parallel.
+.TP
+.B -t
+Touch (update the modified date of) file targets, without
+executing any recipes.
+.TP
+.BI -w target1 , target2,...
+Pretend the modify time for each
+.I target
+is the current time; useful in conjunction with
+.B -n
+to learn what updates would be triggered by
+modifying the
+.IR targets .
+.PD
+.SS The \fLmkfile\fP
+A
+.I mkfile
+consists of
+.I assignments
+(described under `Environment') and
+.IR rules .
+A rule contains
+.I targets
+and a
+.IR tail .
+A target is a literal string
+and is normally a file name.
+The tail contains zero or more
+.I prerequisites
+and an optional
+.IR recipe ,
+which is an
+.B shell
+script.
+Each line of the recipe must begin with white space.
+A rule takes the form
+.IP
+.EX
+target: prereq1 prereq2
+ \f2recipe using\fP prereq1, prereq2 \f2to build\fP target
+.EE
+.PP
+When the recipe is executed,
+the first character on every line is elided.
+.PP
+After the colon on the target line, a rule may specify
+.IR attributes ,
+described below.
+.PP
+A
+.I meta-rule
+has a target of the form
+.IB A % B
+where
+.I A
+and
+.I B
+are (possibly empty) strings.
+A meta-rule acts as a rule for any potential target whose
+name matches
+.IB A % B
+with
+.B %
+replaced by an arbitrary string, called the
+.IR stem .
+In interpreting a meta-rule,
+the stem is substituted for all occurrences of
+.B %
+in the prerequisite names.
+In the recipe of a meta-rule, the environment variable
+.B $stem
+contains the string matched by the
+.BR % .
+For example, a meta-rule to compile a C program using
+.IR 9c (1)
+might be:
+.IP
+.EX
+%: %.c
+ 9c -c $stem.c
+ 9l -o $stem $stem.o
+.EE
+.PP
+Meta-rules may contain an ampersand
+.B &
+rather than a percent sign
+.BR % .
+A
+.B %
+matches a maximal length string of any characters;
+an
+.B &
+matches a maximal length string of any characters except period
+or slash.
+.PP
+The text of the
+.I mkfile
+is processed as follows.
+Lines beginning with
+.B <
+followed by a file name are replaced by the contents of the named
+file.
+Lines beginning with
+.B "<|"
+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
+.B #
+characters to the following newline, are deleted.
+The character sequence backslash-newline is deleted,
+so long lines in
+.I mkfile
+may be folded.
+Non-recipe lines are processed by substituting for
+.BI `{ command }
+the output of the
+.I command
+when run by
+.IR sh .
+References to variables are replaced by the variables' values.
+Special characters may be quoted using single quotes
+.BR \&''
+as in
+.IR sh (1).
+.PP
+Assignments and rules are distinguished by
+the first unquoted occurrence of
+.B :
+(rule)
+or
+.B =
+(assignment).
+.PP
+A later rule may modify or override an existing rule under the
+following conditions:
+.TP
+\-
+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.
+.TP
+\-
+If the targets of the rules match exactly and the
+prerequisites do not match and both rules
+contain recipes,
+.I mk
+reports an ``ambiguous recipe'' error.
+.TP
+\-
+If the target and prerequisites of both rules match exactly,
+the second rule overrides the first.
+.SS Environment
+Rules may make use of
+shell
+environment variables.
+A legal reference of the form
+.B $OBJ
+or
+.B ${name}
+is expanded as in
+.IR sh (1).
+A reference of the form
+.BI ${name: A % B = C\fL%\fID\fL}\fR,
+where
+.I A, B, C, D
+are (possibly empty) strings,
+has the value formed by expanding
+.B $name
+and substituting
+.I C
+for
+.I A
+and
+.I D
+for
+.I B
+in each word in
+.B $name
+that matches pattern
+.IB A % B\f1.
+.PP
+Variables can be set by
+assignments of the form
+.I
+ var\fL=\fR[\fIattr\fL=\fR]\fIvalue\fR
+.br
+Blanks in the
+.I value
+break it into words.
+Such variables are exported
+to the environment of
+recipes as they are executed, unless
+.BR U ,
+the only legal attribute
+.IR attr ,
+is present.
+The initial value of a variable is
+taken from (in increasing order of precedence)
+the default values below,
+.I mk's
+environment, the
+.IR mkfiles ,
+and any command line assignment as an argument to
+.IR mk .
+A variable assignment argument overrides the first (but not any subsequent)
+assignment to that variable.
+The variable
+.B MKFLAGS
+contains all the option arguments (arguments starting with
+.L -
+or containing
+.LR = )
+and
+.B MKARGS
+contains all the targets in the call to
+.IR mk .
+.PP
+Dynamic information may be included in the mkfile by using a line of the form
+.IP
+\fR<|\fIcommand\fR \fIargs\fR
+.LP
+This runs the command
+.I command
+with the given arguments
+.I args
+and pipes its standard output to
+.I mk
+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
+script to process the file and output a set of variables and their values.
+.SS Execution
+.PP
+During execution,
+.I mk
+determines which targets must be updated, and in what order,
+to build the
+.I names
+specified on the command line.
+It then runs the associated recipes.
+.PP
+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.
+.PP
+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
+(the target of a rule with the
+.B V
+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's date stamp is always that file'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.
+.PP
+Nonexistent targets that have prerequisites
+and are themselves prerequisites are treated specially.
+Such a target
+.I t
+is given the date stamp of its most recent prerequisite
+and if this causes all the targets which have
+.I t
+as a prerequisite to be up to date,
+.I t
+is considered up to date.
+Otherwise,
+.I t
+is made in the normal fashion.
+The
+.B -i
+flag overrides this special treatment.
+.PP
+Files may be made in any order that respects
+the preceding restrictions.
+.PP
+A recipe is executed by supplying the recipe as standard input to
+the command
+.BR /bin/sh .
+(Note that unlike
+.IR make ,
+.I mk
+feeds the entire recipe to the shell rather than running each line
+of the recipe separately.)
+The environment is augmented by the following variables:
+.TP 14
+.B $alltarget
+all the targets of this rule.
+.TP
+.B $newprereq
+the prerequisites that caused this rule to execute.
+.TP
+.B $newmember
+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,
+.B $newprereq
+contains the name of the aggregate and out of date
+members, while
+.B $newmember
+contains only the name of the members.
+.TP
+.B $nproc
+the process slot for this recipe.
+It satisfies
+.RB 0≤ $nproc < $NPROC .
+.TP
+.B $pid
+the process id for the
+.I mk
+executing the recipe.
+.TP
+.B $prereq
+all the prerequisites for this rule.
+.TP
+.B $stem
+if this is a meta-rule,
+.B $stem
+is the string that matched
+.B %
+or
+.BR & .
+Otherwise, it is empty.
+For regular expression meta-rules (see below), the variables
+.LR stem0 ", ...,"
+.L stem9
+are set to the corresponding subexpressions.
+.TP
+.B $target
+the targets for this rule that need to be remade.
+.PP
+These variables are available only during the execution of a recipe,
+not while evaluating the
+.IR mkfile .
+.PP
+Unless the rule has the
+.B Q
+attribute,
+the recipe is printed prior to execution
+with recognizable environment variables expanded.
+Commands returning error status
+cause
+.I mk
+to terminate.
+.PP
+Recipes and backquoted
+.B rc
+commands in places such as assignments
+execute in a copy of
+.I mk's
+environment; changes they make to
+environment variables are not visible from
+.IR mk .
+.PP
+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:
+.IP
+.EX
+bar=a.c
+foo: $bar
+ $CC -o foo $bar
+bar=b.c
+.EE
+.PP
+will compile
+.B b.c
+into
+.BR foo ,
+if
+.B a.c
+is newer than
+.BR foo .
+.SS Aggregates
+Names of the form
+.IR a ( b )
+refer to member
+.I b
+of the aggregate
+.IR a .
+Currently, the only aggregates supported are
+.I 9ar
+(see
+.IR 9c (1))
+archives.
+.PP
+.I Membername
+echoes just the member names of a list of aggregate names.
+It is useful in recipes like:
+.EX
+OFILES=a.o b.o
+libc.a(%):N: %
+libc.a: ${OFILES:%=libc.a(%)}
+ 9ar rvc libc.a `membername $newprereq`
+.EE
+which re-archives only the new object files.
+.SS Attributes
+The colon separating the target from the prerequisites
+may be
+immediately followed by
+.I attributes
+and another colon.
+The attributes are:
+.TP
+.B D
+If the recipe exits with a non-null status, the target is deleted.
+.TP
+.B E
+Continue execution if the recipe draws errors.
+.TP
+.B N
+If there is no recipe, the target has its time updated.
+.TP
+.B n
+The rule is a meta-rule that cannot be a target of a virtual rule.
+Only files match the pattern in the target.
+.TP
+.B P
+The characters after the
+.B P
+until the terminating
+.B :
+are taken as a program name.
+It will be invoked as
+.B "sh -c prog 'arg1' 'arg2'"
+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.
+.TP
+.B Q
+The recipe is not printed prior to execution.
+.TP
+.B R
+The rule is a meta-rule using regular expressions.
+In the rule,
+.B %
+has no special meaning.
+The target is interpreted as a regular expression as defined in
+.IR regexp (7).
+The prerequisites may contain references
+to subexpressions in form
+.BI \e n\f1,
+as in the substitute command of
+.IR sed (1).
+.TP
+.B U
+The targets are considered to have been updated
+even if the recipe did not do so.
+.TP
+.B V
+The targets of this rule are marked as virtual.
+They are distinct from files of the same name.
+.PD
+.SH EXAMPLES
+A simple mkfile to compile a program:
+.IP
+.EX
+.ta 8n +8n +8n +8n +8n +8n +8n
+</$objtype/mkfile
+
+prog: a.$O b.$O c.$O
+ $LD $LDFLAGS -o $target $prereq
+
+%.$O: %.c
+ $CC $CFLAGS $stem.c
+.EE
+.PP
+Override flag settings in the mkfile:
+.IP
+.EX
+% mk target 'CFLAGS=-S -w'
+.EE
+.PP
+Maintain a library:
+.IP
+.EX
+libc.a(%.$O):N: %.$O
+libc.a: libc.a(abs.$O) libc.a(access.$O) libc.a(alarm.$O) ...
+ ar r libc.a $newmember
+.EE
+.PP
+String expression variables to derive names from a master list:
+.IP
+.EX
+NAMES=alloc arc bquote builtins expand main match mk var word
+OBJ=${NAMES:%=%.$O}
+.EE
+.PP
+Regular expression meta-rules:
+.IP
+.EX
+([^/]*)/(.*)\e.$O:R: \e1/\e2.c
+ cd $stem1; $CC $CFLAGS $stem2.c
+.EE
+.PP
+A correct way to deal with
+.IR yacc (1)
+grammars.
+The file
+.B lex.c
+includes the file
+.B x.tab.h
+rather than
+.B y.tab.h
+in order to reflect changes in content, not just modification time.
+.IP
+.EX
+lex.$O: x.tab.h
+x.tab.h: y.tab.h
+ cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.h
+y.tab.c y.tab.h: gram.y
+ $YACC -d gram.y
+.EE
+.PP
+The above example could also use the
+.B P
+attribute for the
+.B x.tab.h
+rule:
+.IP
+.EX
+x.tab.h:Pcmp -s: y.tab.h
+ cp y.tab.h x.tab.h
+.EE
+.SH SEE ALSO
+.IR sh (1),
+.IR regexp9 (7)
+.PP
+A. Hume,
+``Mk: a Successor to Make''
+(Tenth Edition Research Unix Manuals).
+.PP
+Andrew G. Hume and Bob Flandrena,
+``Maintaining Files on Plan 9 with Mk''.
+DOCPREFIX/doc/mk.pdf
+.SH HISTORY
+Andrew Hume wrote
+.I mk
+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.
+.SH BUGS
+Identical recipes for regular expression meta-rules only have one target.
+.br
+Seemingly appropriate input like
+.B CFLAGS=-DHZ=60
+is parsed as an erroneous attribute; correct it by inserting
+a space after the first
+.LR = .
+.br
+The recipes printed by
+.I mk
+before being passed to
+.I sh
+for execution are sometimes erroneously expanded
+for printing. Don't trust what's printed; rely
+on what
+.I sh
+does.
diff --git a/man/man1/namespace.1 b/man/man1/namespace.1
new file mode 100644
index 00000000..45f443b0
--- /dev/null
+++ b/man/man1/namespace.1
@@ -0,0 +1,14 @@
+.TH NAMESPACE 1
+.SH NAME
+namespace \- print name space directory
+.SH SYNOPSIS
+.B namespace
+.SH DESCRIPTION
+.I Namespace
+prints the directory representing the current name space.
+See
+.IR intro (4).
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/namespace.c
+.SH SEE ALSO
+.IR getns (3)
diff --git a/man/man1/news.1 b/man/man1/news.1
new file mode 100644
index 00000000..bce5e18e
--- /dev/null
+++ b/man/man1/news.1
@@ -0,0 +1,63 @@
+.TH NEWS 1
+.SH NAME
+news \- print news items
+.SH SYNOPSIS
+.B news
+[
+.B -a
+]
+[
+.B -n
+]
+[
+.I item ...
+]
+.SH DESCRIPTION
+When invoked without options,
+this simple local news service
+prints files that have appeared in
+.BR /lib/news
+since last reading, most recent first,
+with each preceded by an appropriate header.
+The time of reading is recorded.
+The options are
+.TP
+.B -a
+Print all items, regardless of currency.
+The recorded time is not changed.
+.TP
+.B -n
+Report the names of the current items without
+printing their contents, and without changing
+the recorded time.
+.PP
+Other arguments
+select particular news items.
+.PP
+To post a news item, create a file in
+.BR /lib/news .
+.PP
+You may arrange to receive news automatically by
+registering your mail address in
+.BR /sys/lib/subscribers .
+A daemon mails recent news
+to all addresses on the list.
+.PP
+Empty news items, and news items named
+.B core
+or
+.B dead.letter
+are ignored.
+.SH FILES
+.TF /sys/lib/subscribers
+.TP
+.B /lib/news/*
+articles
+.TP
+.B $HOME/lib/newstime
+modify time is time news was last read
+.TP
+.B /sys/lib/subscribers
+who gets news mailed to them
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/news.c
diff --git a/man/man1/p.1 b/man/man1/p.1
new file mode 100644
index 00000000..e98134e5
--- /dev/null
+++ b/man/man1/p.1
@@ -0,0 +1,33 @@
+.TH P 1
+.SH NAME
+p \- paginate
+.SH SYNOPSIS
+.B p
+[
+.BI - number
+]
+[
+.I file ...
+]
+.SH DESCRIPTION
+.I P
+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
+of lines on a page.
+.PP
+While waiting for a newline,
+.I p
+interprets the commands:
+.TP
+.B !
+Pass the rest of the line to the shell as a command.
+.TP
+.B q
+Quit.
+.PP
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/p.c
diff --git a/man/man1/page.1 b/man/man1/page.1
new file mode 100644
index 00000000..eb4fed58
--- /dev/null
+++ b/man/man1/page.1
@@ -0,0 +1,56 @@
+.TH PAGE 1
+.SH NAME
+img, psv \- view
+FAX,
+image, graphic, PostScript, PDF, and
+typesetter output
+files
+.SH SYNOPSIS
+.B page
+[
+.B -abirPRvVw
+]
+[
+.B -p
+.I ppi
+]
+[
+.IR file ...
+]
+.PP
+.B img
+.I file.bit
+.PP
+.B psv
+.I file.ps
+.PP
+.B psv
+.I file.pdf
+.SH DESCRIPTION
+Plan 9's
+.IR page (1)
+is not ported.
+.PP
+.I Img
+is a simple image viewer for Plan 9 images
+(see
+.IR image (7)).
+.PP
+.I Psv
+is a PostScript and PDF viewer.
+It is a streamlined interface to
+.IR gv (1).
+.PP
+To view troff output, use
+.IR proof (1).
+.SH "SEE ALSO
+.IR gs (1),
+.IR gv (1)
+.IR jpg (1),
+.IR proof (1),
+.IR tex (1),
+.IR troff (1)
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/draw/img.c
+.br
+.B /usr/local/plan9/bin/psv
diff --git a/man/man1/pic.1 b/man/man1/pic.1
index 685de68f..ae845698 100644
--- a/man/man1/pic.1
+++ b/man/man1/pic.1
@@ -331,7 +331,7 @@ A: ellipse
for i = 1 to 10 do { line from A.s+.025*i,.01*i down i/50 }
.PE
.SH SOURCE
-.B /sys/src/cmd/pic
+.B /usr/local/plan9/src/cmd/pic
.SH "SEE ALSO"
.IR grap (1),
.IR doctype (1),
diff --git a/man/man1/plot.1 b/man/man1/plot.1
index cd1a1b81..e26dac6a 100644
--- a/man/man1/plot.1
+++ b/man/man1/plot.1
@@ -9,7 +9,7 @@ plot \- graphics filter
.SH DESCRIPTION
.I Plot
interprets plotting instructions (see
-.IR plot (6))
+.IR plot (7))
from the
.I files
or standard input,
@@ -31,7 +31,7 @@ Erase the screen.
.TP
.BI -c " col"
Set the foreground color (see
-.IR plot (6)
+.IR plot (7)
for color names).
.TP
.BI -f " fill"
@@ -55,7 +55,7 @@ Specify the bounding rectangle of plot's window.
By default it uses a 512×512 window in the
middle of the screen.
.SH SOURCE
-.B /sys/src/cmd/plot
+.B /usr/local/plan9/src/cmd/plot
.SH "SEE ALSO"
.IR rio (1),
-.IR plot (6)
+.IR plot (7)
diff --git a/man/man1/plumb.1 b/man/man1/plumb.1
index 0cee82db..c296a1e2 100644
--- a/man/man1/plumb.1
+++ b/man/man1/plumb.1
@@ -87,6 +87,6 @@ mount point for
.SH SOURCE
.B /usr/local/plan9/src/cmd/plumb
.SH "SEE ALSO"
-.IR plumb (2),
+.IR plumb (3),
.IR plumber (4),
-.IR plumb (6)
+.IR plumb (7)
diff --git a/man/man1/pr.1 b/man/man1/pr.1
new file mode 100644
index 00000000..ce8dc681
--- /dev/null
+++ b/man/man1/pr.1
@@ -0,0 +1,110 @@
+.TH PR 1
+.SH NAME
+pr \- print file
+.SH SYNOPSIS
+.B pr
+[
+.I option ...
+]
+[
+.I file ...
+]
+.SH DESCRIPTION
+.I Pr
+produces a printed listing of one or more
+.I files
+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
+prints its standard input.
+.PP
+Options apply to all following files but may be reset
+between files:
+.TP
+.BI - n
+Produce
+.IR n -column
+output.
+.TP
+.BI + n
+Begin printing with page
+.IR n .
+.TP
+.B -b
+Balance columns on last page, in case of multi-column output.
+.TP
+.B -d
+Double space.
+.TP
+.BI -e n
+Set the tab stops for input text every
+.I n
+spaces.
+.TP
+.B -h
+Take the next argument as a page header
+.RI ( file
+by default).
+.TP
+.BI -i n
+Replace sequences of blanks in the output
+by tabs, using tab stops set every
+.I n
+spaces.
+.TP
+.BI -f
+Use form feeds to separate pages.
+.TP
+.BI -l n
+Take the length of the page to be
+.I n
+lines instead of the default 66.
+.TP
+.B -m
+Print all
+.I files
+simultaneously,
+each in one column.
+.TP
+.BI -n m
+Number the lines of each
+.IR file .
+The numeric argument
+.IR m ,
+default 5,
+sets the width of the line-number field.
+.TP
+.BI -o n
+Offset the left margin
+.I n
+character positions.
+.TP
+.BI -p
+Pad each file printed to an odd number of pages.
+For two-sided printers,
+this will ensure each file will start a new page.
+.TP
+.BI -s c
+Separate columns by the single character
+.I c
+instead of aligning them with white space.
+A missing
+.I c
+is taken to be a tab.
+.TP
+.B -t
+Do not print the 5-line header or the
+5-line trailer normally supplied for each page.
+.TP
+.BI -w n
+For multi-column output,
+take the width of the page to be
+.I n
+characters instead of the default 72.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/pr.c
+.SH "SEE ALSO"
+.IR cat (1),
+.IR lp (1)
diff --git a/man/man1/proof.1 b/man/man1/proof.1
new file mode 100644
index 00000000..01e8e351
--- /dev/null
+++ b/man/man1/proof.1
@@ -0,0 +1,134 @@
+.TH PROOF 1
+.SH NAME
+proof \- troff output interpreter
+.SH SYNOPSIS
+.B proof
+[
+.BI -m mag
+]
+[
+.BI -/ nview
+]
+[
+.B -F
+.I dir
+]
+[
+.B -d
+]
+[
+.I file
+]
+.SH DESCRIPTION
+.I Proof
+reads
+.IR troff (1)
+intermediate language from
+.I file
+or standard input
+and simulates the resulting pages on the screen.
+.PP
+After a page of text is displayed,
+.I proof
+pauses for a command from the keyboard.
+The typed commands are:
+.TP \w'newline\ \ \ 'u
+newline
+Go on to next page of text.
+.TP
+.B -
+Go back to the previous page.
+.TP
+.B q
+Quit.
+.TP
+.BI p n
+Print page
+.IR n .
+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.
+.TP
+.I n
+Same as
+.BI p n\f1.
+.TP
+.B c
+Clear the screen, then wait for another command.
+.TP
+.BI m mag
+Change the magnification at which the output is printed.
+Normally it is printed with magnification .9;
+.IR mag "=.5"
+shrinks it to half size;
+.IR mag "=2"
+doubles the size.
+.TP
+.BI x val
+Move everything
+.I val
+screen pixels to the right (left, if
+.I val
+is negative).
+.TP
+.BI y val
+Move everything
+.I val
+screen pixels down (up, if
+.I val
+is negative).
+.TP
+.BI / nview
+Split the window into
+.I nview
+pieces. The current page goes into the rightmost, bottommost piece,
+and previous pages are shown in the other pieces.
+.TP
+.BI "-F " dir
+Use
+.I dir
+for fonts instead of
+.BR /lib/font/bit .
+.TP
+.B d
+Toggle the debug flag.
+.PD
+.PP
+These commands are also available, under slightly different form,
+from a menu on button 3. The
+.B pan
+menu item allows arbitrary positioning of the page:
+after selecting
+.BR pan ,
+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.
+.PP
+The
+.BR m ,
+.BR x ,
+.BR y ,
+.BR F ,
+.BR / ,
+and
+.B d
+commands are also available as command line options.
+.SH FILES
+.TF /lib/font/bit/MAP
+.TP
+.B /lib/font/bit/*
+fonts
+.TP
+.B /lib/font/bit/MAP
+how to convert troff output fonts and character names
+into screen fonts and character numbers
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/proof
+.SH SEE ALSO
+.IR lp (1),
+.IR gs (1),
+.IR page (1)
+.br
+J. F. Ossanna and B. W. Kernighan,
+``Troff User's Manual''
diff --git a/man/man1/ps.1 b/man/man1/ps.1
new file mode 100644
index 00000000..9cfcb2ea
--- /dev/null
+++ b/man/man1/ps.1
@@ -0,0 +1,107 @@
+.TH PS 1
+.SH NAME
+ps, psu \- process status
+.SH SYNOPSIS
+.B ps
+[
+.B -pa
+]
+.PP
+.B psu
+[
+.B -pa
+]
+[
+.I user
+]
+.SH DESCRIPTION
+.I Ps
+prints information about processes.
+.I Psu
+prints only information about processes started by
+.I user
+(default
+.BR $USER ).
+.PP
+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:
+.TP \w'\fLno\ \fIresource\ \ \ 'u
+.B Moribund
+Process has exited and is about to have its
+resources reclaimed.
+.TP
+.B Ready
+on the queue of processes ready to be run.
+.TP
+.B Scheding
+about to be run.
+.TP
+.B Running
+running.
+.TP
+.B Queueing
+waiting on a queue for a resource.
+.TP
+.B Wakeme
+waiting for I/O or some other kernel event to wake it up.
+.TP
+.B Broken
+dead of unnatural causes; lingering
+so that it can be examined.
+.TP
+.B Stopped
+stopped.
+.TP
+.B Stopwait
+waiting for another process to stop.
+.TP
+.B Fault
+servicing a page fault.
+.TP
+.B Idle
+waiting for something to do (kernel processes only).
+.TP
+.B New
+being created.
+.TP
+.B Pageout
+paging out some other process.
+.TP
+.I Syscall
+performing the named system call.
+.TP
+.BI no " resource
+waiting for more of a critical
+.IR resource .
+.TP
+.BI wchan
+waiting on the named wait channel
+(on a Unix kernel).
+.PD
+.PP
+With the
+.B -p
+flag,
+.I ps
+also prints, after the system time, the baseline and current priorities of each process.
+.PP
+The
+.B -a
+flag causes
+.I ps
+to print the arguments for the process. Newlines in arguments will be translated to spaces for display.
+.SH SOURCE
+.B /usr/local/plan9/bin/ps
+.br
+.B /usr/local/plan9/bin/psu
+.SH "SEE ALSO"
+.IR acid (1),
+.IR db (1),
+.IR kill (1)
diff --git a/man/man1/psfonts.1 b/man/man1/psfonts.1
new file mode 100644
index 00000000..19f3de8e
--- /dev/null
+++ b/man/man1/psfonts.1
@@ -0,0 +1,125 @@
+.TH PSFONTS 1
+.SH NAME
+psfonts, psdownload \- add necessary fonts to PostScript document for printing
+.SH SYNOPSIS
+.B psfonts
+[
+.I files ...
+]
+.PP
+.B psdownload
+[
+.B options
+]
+[
+.I files ...
+]
+.SH DESCRIPTION
+Plan 9's
+.IR troff (1)
+and
+.IR tr2post (1)
+use non-standard PostScript fonts
+(found in
+.BR /usr/local/plan9/postscript/font ).
+Before sending PostScript output from
+.I tr2post
+to a standard printer, code implementing
+the non-standard fonts must be added to the PostScript.
+.PP
+.I Psfonts
+copies
+.I files
+(or standard input)
+to standard output, adding necessary PostScript fonts.
+.PP
+.I Psdownload
+is the more general program used to implement
+.IR psfonts .
+The options are:
+.TP
+.BI -c " comment
+Expect the fonts used in the document to be listed in
+a comment beginning with this string
+(default
+.BR %%DocumentFonts: ).
+.TP
+.BI -f " atend
+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
+.B %%DocumentFonts:
+.B (atend)
+comment is encountered).
+.TP
+.BI -m " mapfile
+Use
+.I mapfile
+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
+is not a rooted path, it is evaluated relative to the
+.I fontdir
+(see
+.B -H
+below).
+.TP
+.BI -p " printer
+Set the name of the printer.
+This option is deprecated. Its only effect is to override the
+.B -r
+option, causing
+.IB fontdir /printers/ printer
+to be used as the resident fonts list.
+.TP
+.BI -r " residentfonts
+Read a list of fonts assumed to be on the printer
+(not necessary to re-download) from the file
+.IR residentfonts .
+If
+.I residentfonts
+is not a rooted path, it is evaluated relative to the
+.I fontdir
+(see
+.B -H
+below).
+.TP
+.BI -H " fontdir
+Set the directory that is assumed to contain the PostScript fonts
+and information about printers
+(see
+.BR -m ,
+.BR -p ,
+and
+.B -r
+above;
+default
+.BR /usr/local/plan9/postscript/font ).
+.TP
+.BI -T " tmpdir
+Use
+.I tmpdir
+for storing temporary files
+(default
+.BR /var/tmp ).
+.B
+.TP
+.BI -D
+Produce copious amounts of debugging information on standard error.
+.TP
+.BI -I
+Continue running even after fatal errors occur.
+.PD
+.SH EXAMPLE
+See
+.IR tr2post (1)
+for an example.
+.SH SOURCE
+.B /usr/local/plan9/bin/psfonts
+.br
+.B /usr/local/plan9/src/cmd/postscript/download
+.SH SEE ALSO
+.IR troff (1),
+.IR tr2post (1)
diff --git a/man/man1/pwd.1 b/man/man1/pwd.1
new file mode 100644
index 00000000..a154379d
--- /dev/null
+++ b/man/man1/pwd.1
@@ -0,0 +1,26 @@
+.TH PWD 1
+.SH NAME
+pwd, pbd \- working directory
+.SH SYNOPSIS
+.B pwd
+.br
+.B pbd
+.SH DESCRIPTION
+.I Pwd
+prints the path name of the working (current) directory.
+.PP
+.I Pbd
+prints the base name of the working (current) directory.
+It prints no final newline and is intended for applications
+such as constructing shell prompts.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/pbd.c
+.SH SEE ALSO
+.I cd
+in
+.IR rc (1),
+.IR getwd (3)
+.SH BUGS
+.I Pwd
+is not provided.
+Unix already provides one.
diff --git a/man/man1/rc.1 b/man/man1/rc.1
index b294bee8..51a2b22a 100644
--- a/man/man1/rc.1
+++ b/man/man1/rc.1
@@ -50,7 +50,7 @@ exits or is terminated, the
variable
.B $status
gets the process's wait message (see
-.IR wait (2));
+.IR wait (3));
it will be the null string if the command was successful.
.PP
A long command line may be continued on subsequent lines by typing
@@ -83,7 +83,7 @@ in a directory in
.B $path
is the program to be executed.
To be executable, the user must have execute permission (see
-.IR stat (2))
+.IR stat (3))
and the file must be either an executable binary
for the current machine's CPU type, or a shell script.
Shell scripts begin with a line containing the full path name of a shell
@@ -349,7 +349,7 @@ or
is a previously opened file descriptor and
.I fd0
becomes a new copy (in the sense of
-.IR dup (2))
+.IR dup (3))
of it.
A file descriptor may be closed by writing
.BI >[ fd0 =]
@@ -542,7 +542,7 @@ function definition.
A function with a special name will be called when
.I rc
receives a corresponding note; see
-.IR notify (2).
+.IR notify (3).
The valid note names (and corresponding notes) are
.B sighup
.RB ( hangup ),
@@ -757,10 +757,7 @@ command is executed, so they need not be enclosed in quotation marks.
The
.I environment
is a list of strings made available to executing binaries by the
-.B env
-device
-(see
-.IR env (3)).
+kernel.
.I Rc
creates an environment entry for each variable whose value is non-empty,
and for each function.
@@ -768,7 +765,7 @@ The string for a variable entry has the variable's name followed by
.B =
and its value.
If the value has more than one component, these
-are separated by ctrl-a
+are separated by SOH
.RB ( '\e001' )
characters.
The string for a function is just the
@@ -824,12 +821,23 @@ for the
.B .
command.
If not set in the environment, it is initialized by
+parsing the
+.B $PATH
+variable
+(as in
+.IR sh (1))
+or by
.BR "path=(.\ /bin)" .
-Its use is discouraged; instead use
-.IR bind (1)
-to build a
-.B /bin
-containing what's needed.
+The variables
+.B $path
+and
+.B $PATH
+are maintained together: changes to one will be reflected in the other.
+.\" Its use is discouraged; instead use
+.\" .IR bind (1)
+.\" to build a
+.\" .B /bin
+.\" containing what's needed.
.TP
.B $pid
Set during initialization to
diff --git a/man/man1/rio.1 b/man/man1/rio.1
index 9af90e81..4e30e587 100644
--- a/man/man1/rio.1
+++ b/man/man1/rio.1
@@ -1,54 +1,101 @@
-.if t .ds 85 8\(12
-.if n .ds 85 8-1/2
.TH RIO 1
.SH NAME
rio \- rio-like Window Manager for X
.SH SYNOPSIS
.B rio
[
-.B \-grey
-] [
-.B \-version
-] [
.B \-font
-.I fname
-] [
+.I fontname
+]
+[
+.B \-grey
+]
+[
+.B \-s
+]
+[
.B \-term
.I termprog
-] [
-.BR exit | restart
+]
+[
+.B \-version
+]
+[
+.B \-virtuals
+.I num
+]
+[
+.B exit
+|
+.B restart
]
.SH DESCRIPTION
+.if t .ds 85 8\(12
+.if n .ds 85 8-1/2
.I Rio
is a window manager for X which attempts to emulate the window management
policies of Plan 9's
.I rio
window manager.
+Rio is derived from David Hogan's \*(85.
.PP
The
.B \-grey
-option makes the background light grey, as does \*(85.
-Use this option for maximum authenticity.
+option makes the background stippled grey, the default X11 background,
+instead of solid grey, the Plan 9 background.
+.PP
+The
.B \-font
-.I fname
+option
sets the font in
.IR rio 's
menu to
.IR fname ,
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.
+.PP
+The
.B \-term
-.I termprog
+option
specifies an alternative program to run when the
.I New
menu item is selected.
+The default is to try
+.IR 9term (1)
+and then to fall back to
+.IR xterm (1).
+The
+.B \-s
+option causes
+.I rio
+to add
+.B -s
+to
+.IR 9term 's
+command-line, starting the window in scrolling mode.
+.PP
+The
.B \-version
+option
prints the current version on standard error, then exits.
.PP
-To make
+The
+.B \-virtuals
+option sets the number of virtual screens (the default is 1,
+and the maximum is 12).
+.PP
+If the argument
+.B exit
+or
+.B restart
+is given,
+it is sent to an already-running
+.IR rio ,
+causing the extant
.I rio
-exit, you have to run
-.B "rio exit"
-on the command line. There is no ``exit'' menu item.
+to exit or restart.
+.SS Using rio
.PP
One window is
.IR current ,
@@ -130,7 +177,16 @@ Windows may also be arranged by dragging their borders.
Pressing button 1 or 2 over a window's border allows one to
move the corresponding edge or corner, while button 3
moves the whole window.
-.PD
+.PP
+When the mouse cursor points to the background area
+and
+.I rio
+has been started with multiple virtual screens using the
+.B \-virtuals
+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.
.SH BUGS
In
Plan 9's
@@ -154,4 +210,4 @@ starts a particular program.)
There is a currently a compiled-in limit of 128 hidden windows.
.SH "SEE ALSO"
.IR 9term (1),
-.IR xterm (1).
+.IR xterm (1)
diff --git a/man/man1/rm.1 b/man/man1/rm.1
index 97893960..a2ab0d1c 100644
--- a/man/man1/rm.1
+++ b/man/man1/rm.1
@@ -25,4 +25,4 @@ and the directory itself.
.SH SOURCE
.B /usr/local/plan9/src/cmd/rm.c
.SH "SEE ALSO"
-.IR remove (2)
+.IR remove (3)
diff --git a/man/man1/sam.1 b/man/man1/sam.1
index b4194b4b..e2085ad7 100644
--- a/man/man1/sam.1
+++ b/man/man1/sam.1
@@ -1,7 +1,7 @@
.TH SAM 1
.ds a \fR*\ \fP
.SH NAME
-sam, B, sam.save \- screen editor with structural regular expressions
+sam, B, E, sam.save, samterm, samsave \- screen editor with structural regular expressions
.SH SYNOPSIS
.B sam
[
@@ -17,10 +17,8 @@ sam, B, sam.save \- screen editor with structural regular expressions
.B sam.save
.PP
.B B
-[
-.BI -nnnn
-]
-.I file ...
+.IB file \fR[\fP: line \fR]
+\&...
.SH DESCRIPTION
.I Sam
is a multi-file editor.
@@ -62,7 +60,7 @@ for debugging.
.PD
.SS Regular expressions
Regular expressions are as in
-.IR regexp (6)
+.IR regexp (7)
with the addition of
.BR \en
to represent newlines.
@@ -791,7 +789,7 @@ the white-space-delimited block of text is sent as a plumb message
with a
.B click
attribute defining where the selection lies (see
-.IR plumb (6)).
+.IR plumb (7)).
.TP
.B look
Search forward for the next occurrence of the literal text in dot.
@@ -838,6 +836,20 @@ 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).
+.PP
+.I E
+is a shell-level command that can be used as
+.B $EDITOR
+in a Unix environment.
+It runs
+.I B
+on
+.I file
+and then waits to exit until
+.I file
+is changed, which is taken as a signal that
+.I file
+is done being edited.
.SS Abnormal termination
If
.I sam
@@ -879,7 +891,7 @@ source for the separate terminal part
.IR sed (1),
.IR grep (1),
.IR rio (1),
-.IR regexp (6).
+.IR regexp (7).
.PP
Rob Pike,
``The text editor sam''.
diff --git a/man/man1/scat.1 b/man/man1/scat.1
index d9bf8db8..8840c1dc 100644
--- a/man/man1/scat.1
+++ b/man/man1/scat.1
@@ -1,4 +1,4 @@
-.TH SCAT 7
+.TH SCAT 1
.SH NAME
scat \- sky catalogue and Digitized Sky Survey
.SH SYNOPSIS
@@ -10,7 +10,7 @@ outside the solar system
and implements database-like manipulations
on sets of such objects.
It also provides an interface to
-.IR astro (7)
+.IR astro (1)
to plot the locations of solar system objects.
Finally, it displays images from the
Space Telescope Science Institute's
@@ -119,7 +119,7 @@ The names
and
.B comet
refer to the earth's penumbra at lunar distance and the comet installed in the current
-.IR astro (7).
+.IR astro (1).
The output is the planet's name, right ascension and declination, azimuth and altitude, and phase
for the moon and sun, as shown by
.BR astro .
@@ -182,7 +182,7 @@ collects all objects in the patches that cover the current set.
.TP
.BI astro " option"
Run
-.IR astro (7)
+.IR astro (1)
with the specified
.I options
(to which will be appended
@@ -322,9 +322,9 @@ Show a pretty galaxy.
.SH FILES
.B /lib/sky/*.scat
.SH SOURCE
-.B /sys/src/cmd/scat
+.B /usr/local/plan9/src/cmd/scat
.SH SEE ALSO
-.IR astro (7)
+.IR astro (1)
.br
.B /lib/sky/constelnames\ \
the three-letter abbreviations of the constellation names.
diff --git a/man/man1/secstore.1 b/man/man1/secstore.1
new file mode 100644
index 00000000..862857da
--- /dev/null
+++ b/man/man1/secstore.1
@@ -0,0 +1,212 @@
+.TH SECSTORE 1
+.SH NAME
+aescbc, secstore, ipso \- secstore commands
+.SH SYNOPSIS
+.B secstore
+[
+.B -s
+.I server
+]
+[
+.B -(g|G)
+.I getfile
+]
+[
+.B -p
+.I putfile
+]
+[
+.B -r
+.I rmfile
+]
+[
+.B -c
+]
+[
+.B -u
+.I user
+]
+[
+.B -v
+]
+[
+.B -i
+]
+.PP
+.B aescbc
+-e
+.I <cleartext
+.I >ciphertext
+.br
+.B aescbc
+-d
+.I <ciphertext
+.I >cleartext
+.PP
+.B ipso
+[
+.B -a -e -l -f -s
+] [
+.I file
+\&...
+]
+.PP
+.SH DESCRIPTION
+.PP
+.I Secstore
+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.
+.PP
+Option
+.B -p
+stores a file on the secstore.
+.PP
+Option
+.B -g
+retrieves a file to the local directory;
+option
+.B -G
+writes it to standard output instead.
+Specifying
+.I getfile
+of . will send to standard output
+a list of remote files with dates, lengths and SHA1 hashes.
+.PP
+Option
+.B -r
+removes a file from the secstore.
+.PP
+Option
+.B -c
+prompts for a password change.
+.PP
+Option
+.B -v
+produces more verbose output, in particular providing a few
+bits of feedback to help the user detect mistyping.
+.PP
+Option
+.B -i
+says that the password should be read from standard input
+instead of from
+.BR /dev/cons .
+.PP
+Option
+.B -n
+says that the password should be read from NVRAM
+instead of from
+.BR /dev/cons .
+This option is unsupported.
+.PP
+The server is
+.BR tcp!$auth!5356 ,
+or the server specified by option
+.BR -s .
+.PP
+For example, to add a secret to the file read by
+.IR factotum (4)
+at startup, open a new window, type
+.sp
+.EX
+ % ramfs -p; cd /tmp
+ % auth/secstore -g factotum
+ secstore password:
+ % echo 'key proto=apop dom=x.com user=ehg !password=hi' >> factotum
+ % auth/secstore -p factotum
+ secstore password:
+ % read -m factotum > /mnt/factotum/ctl
+.EE
+.PP
+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.
+.PP
+The
+.I ipso
+command packages this sequence into a convenient script to simplify editing of
+.I files
+stored on a secure store.
+It copies the named
+.I files
+into a local
+.IR ramfs (4)
+and invokes
+.IR acme (1)
+on them. When the editor exits,
+.I ipso
+prompts the user to confirm copying modifed or newly created files back to
+.I secstore.
+If no
+.I file
+is mentioned,
+.I ipso
+grabs all the user's files from
+.I secstore
+for editing.
+.PP
+By default, ipso will edit the
+.I secstore
+files and, if
+one of them is named
+.BR factotum ,
+flush your current keys from factotum and load
+the new ones from the file.
+If you supply any of the
+.BR -e ,
+.BR -f ,
+or
+.BR -l
+options,
+.I ipso
+will just perform the operations you requested, i.e.,
+edit, flush, and/or load.
+.PP
+The
+.B -s
+option of
+.I ipso
+invokes
+.IR sam (1)
+as the editor insted of
+.BR acme ;
+the
+.B -a
+option provides a similar service for files encrypted by
+.I aescbc
+.RI ( q.v. ).
+With the
+.B -a
+option, the full rooted pathname of the
+.I file
+must be specified and all
+.I files
+must be encrypted with the same key.
+Also with
+.BR -a ,
+newly created files are ignored.
+.PP
+.I Aescbc
+encrypts and decrypts using AES (Rijndael) in cipher
+block chaining (CBC) mode.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/secstore
+.SH SEE ALSO
+.IR factotum (4),
+Plan 9's \fIsecstore\fR(8)
+.SH BUGS
+There is deliberately no backup of files on the secstore, so
+.B -r
+(or a disk crash) is irrevocable. You are advised to store
+important secrets in a second location.
+.PP
+When using
+.IR ipso ,
+secrets will appear as plain text in the editor window,
+so use the command in private.
diff --git a/man/man1/sed.1 b/man/man1/sed.1
new file mode 100644
index 00000000..4e9ac33f
--- /dev/null
+++ b/man/man1/sed.1
@@ -0,0 +1,385 @@
+.TH SED 1
+.SH NAME
+9sed \- stream editor
+.SH SYNOPSIS
+.B 9sed
+[
+.B -n
+]
+[
+.B -g
+]
+[
+.B -e
+.I script
+]
+[
+.B -f
+.I sfile
+]
+[
+.I file ...
+]
+.SH DESCRIPTION
+.I Sed
+copies the named
+.I files
+(standard input default) to the standard output,
+edited according to a script of commands.
+The
+.B -f
+option causes the script to be taken from file
+.IR sfile ;
+these options accumulate.
+If there is just one
+.B -e
+option and no
+.BR -f 's,
+the flag
+.B -e
+may be omitted.
+The
+.B -n
+option suppresses the default output;
+.B -g
+causes all substitutions to be global, as if suffixed
+.BR g .
+.PP
+A script consists of editing commands, one per line,
+of the following form:
+.IP
+[\fIaddress\fR [\fL,\fI address\fR] ] \fIfunction\fR [\fIargument\fR ...]
+.PP
+In normal operation
+.I sed
+cyclically copies a line of input into a
+.I pattern space
+(unless there is something left after
+a
+.L D
+command),
+applies in sequence
+all commands whose
+.I addresses
+select that pattern space,
+and at the end of the script copies the pattern space
+to the standard output (except under
+.BR -n )
+and deletes the pattern space.
+.PP
+An
+.I address
+is either a decimal number that counts
+input lines cumulatively across files, a
+.L $
+that
+addresses the last line of input, or a context address,
+.BI / regular-expression / \f1,
+in the style of
+.IR regexp (7),
+with the added convention that
+.L \en
+matches a
+newline embedded in the pattern space.
+.PP
+A command line with no addresses selects every pattern space.
+.PP
+A command line with
+one address selects each pattern space that matches the address.
+.PP
+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.
+.PP
+Editing commands can be applied to non-selected pattern
+spaces by use of the negation function
+.L !
+(below).
+.PP
+An argument denoted
+.I text
+consists of one or more lines,
+all but the last of which end with
+.L \e
+to hide the
+newline.
+Backslashes in text are treated like backslashes
+in the replacement string of an
+.L s
+command,
+and may be used to protect initial blanks and tabs
+against the stripping that is done on
+every script line.
+.PP
+An argument denoted
+.I rfile
+or
+.I wfile
+must terminate the command
+line and must be preceded by exactly one blank.
+Each
+.I wfile
+is created before processing begins.
+There can be at most 120 distinct
+.I wfile
+arguments.
+.TP \w'\fL!\ \fIfunction\fLXXX'u
+.B a\e
+.br
+.ns
+.TP
+.I text
+Append.
+Place
+.I text
+on the output before
+reading the next input line.
+.TP
+.BI b " label"
+Branch to the
+.B :
+command bearing the
+.IR label .
+If
+.I label
+is empty, branch to the end of the script.
+.TP
+.B c\e
+.br
+.ns
+.TP
+.I text
+Change.
+Delete the pattern space.
+With 0 or 1 address or at the end of a 2-address range, place
+.I text
+on the output.
+Start the next cycle.
+.TP
+.B d
+Delete the pattern space.
+Start the next cycle.
+.TP
+.B D
+Delete the initial segment of the
+pattern space through the first newline.
+Start the next cycle.
+.TP
+.B g
+Replace the contents of the pattern space
+by the contents of the hold space.
+.TP
+.B G
+Append the contents of the hold space to the pattern space.
+.TP
+.B h
+Replace the contents of the hold space by the contents of the pattern space.
+.TP
+.B H
+Append the contents of the pattern space to the hold space.
+.ne 3
+.TP
+.B i\e
+.br
+.ns
+.TP
+.I text
+Insert.
+Place
+.I text
+on the standard output.
+.TP
+.B n
+Copy the pattern space to the standard output.
+Replace the pattern space with the next line of input.
+.TP
+.B N
+Append the next line of input to the pattern space
+with an embedded newline.
+(The current line number changes.)
+.TP
+.B p
+Print.
+Copy the pattern space to the standard output.
+.TP
+.B P
+Copy the initial segment of the pattern space through
+the first newline to the standard output.
+.TP
+.B q
+Quit.
+Branch to the end of the script.
+Do not start a new cycle.
+.TP
+.BI r " rfile"
+Read the contents of
+.IR rfile .
+Place them on the output before reading
+the next input line.
+.TP
+.B s/\fIregular-expression\fP/\fIreplacement\fP/\fIflags
+Substitute the
+.I replacement
+string for instances of the
+.I regular-expression
+in the pattern space.
+Any character may be used instead of
+.LR / .
+For a fuller description see
+.IR regexp (7).
+.I Flags
+is zero or more of
+.RS
+.TP
+.B g
+Global.
+Substitute for all non-overlapping instances of the
+.I regular expression
+rather than just the
+first one.
+.TP
+.B p
+Print the pattern space if a replacement was made.
+.TP
+.BI w " wfile"
+Write.
+Append the pattern space to
+.I wfile
+if a replacement
+was made.
+.RE
+.TP
+.BI t " label"
+Test.
+Branch to the
+.L :
+command bearing the
+.I label
+if any
+substitutions have been made since the most recent
+reading of an input line or execution of a
+.LR t .
+If
+.I label
+is empty, branch to the end of the script.
+.TP
+.B w
+.I wfile
+.br
+Write.
+Append the pattern space to
+.IR wfile .
+.TP
+.B x
+Exchange the contents of the pattern and hold spaces.
+.TP
+.B y/\fIstring1\fP/\fIstring2\fP/
+Transform.
+Replace all occurrences of characters in
+.I string1
+with the corresponding character in
+.IR string2 .
+The lengths of
+.I
+string1
+and
+.I string2
+must be equal.
+.TP
+.BI ! "function"
+Don't.
+Apply the
+.I function
+(or group, if
+.I function
+is
+.LR { )
+only to lines
+.I not
+selected by the address(es).
+.TP
+.BI : " label"
+This command does nothing; it bears a
+.I label
+for
+.B b
+and
+.B t
+commands to branch to.
+.TP
+.B =
+Place the current line number on the standard output as a line.
+.TP
+.B {
+Execute the following commands through a matching
+.L }
+only when the pattern space is selected.
+.TP
+.B " "
+An empty command is ignored.
+.ne 4
+.SH EXAMPLES
+.TP
+.B sed 10q file
+Print the first 10 lines of the file.
+.TP
+.B sed '/^$/d'
+Delete empty lines from standard input.
+.TP
+.B sed 's/UNIX/& system/g'
+Replace every instance of
+.L UNIX
+by
+.LR "UNIX system" .
+.PP
+.EX
+sed 's/ *$// \fRdrop trailing blanks\fP
+/^$/d \fRdrop empty lines\fP
+s/ */\e \fRreplace blanks by newlines\fP
+/g
+/^$/d' chapter*
+.EE
+.ns
+.IP
+Print the files
+.BR chapter1 ,
+.BR chapter2 ,
+etc. one word to a line.
+.PP
+.EX
+nroff -ms manuscript | sed '
+${
+ /^$/p \fRif last line of file is empty, print it\fP
+}
+//N \fRif current line is empty, append next line\fP
+/^\en$/D' \fRif two lines are empty, delete the first\fP
+.EE
+.ns
+.IP
+Delete all but one of each group of empty lines from a
+formatted manuscript.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/9sed.c
+.SH SEE ALSO
+.IR ed (1),
+.IR grep (1),
+.IR awk (1),
+.IR lex (1),
+.IR sam (1),
+.IR regexp (7)
+.br
+L. E. McMahon,
+`SED \(em A Non-interactive Text Editor',
+Unix Research System Programmer's Manual, Volume 2.
+.SH BUGS
+If input is from a pipe, buffering may consume
+characters beyond a line on which a
+.L q
+command is executed.
diff --git a/man/man1/seq.1 b/man/man1/seq.1
index 73796c26..5fda241e 100644
--- a/man/man1/seq.1
+++ b/man/man1/seq.1
@@ -38,7 +38,7 @@ The options are
.TP "\w'\fL-f \fIformat\fLXX'u"
.BI -f format
Use the
-.IR print (2)-style
+.IR print (3)-style
.I format
.IR print
for printing each (floating point) number.
diff --git a/man/man1/sleep.1 b/man/man1/sleep.1
index 6416bc1d..68c94a92 100644
--- a/man/man1/sleep.1
+++ b/man/man1/sleep.1
@@ -28,4 +28,4 @@ while (){
.SH SOURCE
.B /usr/local/plan9/src/cmd/sleep.c
.SH "SEE ALSO"
-.IR sleep (2)
+.IR sleep (3)
diff --git a/man/man1/split.1 b/man/man1/split.1
index 6e7f7ebf..e00e3d01 100644
--- a/man/man1/split.1
+++ b/man/man1/split.1
@@ -41,7 +41,7 @@ File divisions occur at each line
that matches a regular
.IR expression ;
see
-.IR regexp (6).
+.IR regexp (7).
Multiple
.B -e
options may appear.
@@ -79,4 +79,4 @@ to lower case.
.IR sed (1),
.IR awk (1),
.IR grep (1),
-.IR regexp (6)
+.IR regexp (7)
diff --git a/man/man1/src.1 b/man/man1/src.1
new file mode 100644
index 00000000..4c03dd7c
--- /dev/null
+++ b/man/man1/src.1
@@ -0,0 +1,83 @@
+.TH SRC 1
+.SH NAME
+src \- find source code for executable
+.SH SYNOPSIS
+.B src
+[
+.B -n
+]
+[
+.B -s
+.I symbol
+]
+.I file
+.B ...
+.SH DESCRIPTION
+.I Src
+examines the named
+.I files
+to find the corresponding source code, which is then sent to the editor using
+.B B
+(see
+.IR sam (1)).
+If
+.I file
+is an
+.IR rc (1)
+script, the source is the file itself.
+If
+.I file
+is an executable, the source is defined to be the single file containing the
+definition of
+.B main
+and
+.I src
+will point the editor at the line that begins the definition.
+.I Src
+uses
+.IR db (1)
+to extract the symbol table information that identifies the source.
+.PP
+.I Src
+looks for each
+.I file
+in the current directory, in
+.BR /bin ,
+and in the subdirectories of
+.BR /bin ,
+in that order.
+.PP
+The
+.B -n
+flag causes
+.B src
+to print the file name but not send it to the editor.
+The
+.B -s
+flag identifies a
+.I symbol
+other than
+.B main
+to locate.
+.SH EXAMPLES
+Find the source to the
+.B main
+routine in
+.BR /bin/ed :
+.IP
+.EX
+src ed
+.EE
+.PP
+Find the source for
+.BR strcmp :
+.IP
+.EX
+src -s strcmp rc
+.EE
+.SH SOURCE
+.B /usr/local/plan9/bin/src
+.SH "SEE ALSO"
+.IR db (1),
+.IR plumb (1),
+.IR sam (1).
diff --git a/man/man1/tbl.1 b/man/man1/tbl.1
index 921e9e85..0e986e9a 100644
--- a/man/man1/tbl.1
+++ b/man/man1/tbl.1
@@ -272,7 +272,7 @@ Bernardsville 2018 3.30
.if t \{.sp3
.1C\}
.SH SOURCE
-.B /sys/src/cmd/tbl
+.B /usr/local/plan9/src/cmd/tbl
.SH SEE ALSO
.IR troff (1),
.IR eqn (1),
diff --git a/man/man1/tcs.1 b/man/man1/tcs.1
new file mode 100644
index 00000000..e1a410c3
--- /dev/null
+++ b/man/man1/tcs.1
@@ -0,0 +1,167 @@
+.TH TCS 1
+.SH NAME
+tcs \- translate character sets
+.SH SYNOPSIS
+.B tcs
+[
+.B -slcv
+]
+[
+.B -f
+.I ics
+]
+[
+.B -t
+.I ocs
+]
+[
+.I file ...
+]
+.SH DESCRIPTION
+.I Tcs
+interprets the named
+.I file(s)
+(standard input default) as a stream of characters from the
+.I ics
+character set or format, converts them to runes,
+and then converts them into a stream of characters from the
+.I ocs
+character set or format on the standard output.
+The default value for
+.I ics
+and
+.I ocs
+is
+.BR utf ,
+the
+.SM UTF
+encoding described in
+.IR utf (7).
+The
+.B -l
+option lists the character sets known to
+.IR tcs .
+Processing continues in the face of conversion errors (the
+.B -s
+option prevents reporting of these errors).
+The
+.B -c
+option forces the output to contain only correctly converted characters;
+otherwise,
+.B 0x80
+characters will be substituted for
+.SM UTF
+encoding errors and
+.B 0xFFFD
+characters will substituted for unknown characters.
+.PP
+The
+.B -v
+option generates various diagnostic and summary information on standard error,
+or makes the
+.B -l
+output more verbose.
+.PP
+.I Tcs
+recognizes an ever changing list of character sets.
+In particular, it supports a variety of Russian and Japanese encodings.
+Some of the supported encodings are
+.TF jis-kanji
+.TP
+.B utf
+The Plan 9
+.SM UTF
+encoding, known by ISO as UTF-8
+.TP
+.B utf1
+The deprecated original
+.SM UTF
+encoding from ISO 10646
+.TP
+.B ascii
+7-bit ASCII
+.TP
+.B 8859-1
+Latin-1 (Central European)
+.TP
+.B 8859-2
+Latin-2 (Czech .. Slovak)
+.TP
+.B 8859-3
+Latin-3 (Dutch .. Turkish)
+.TP
+.B 8859-4
+Latin-4 (Scandinavian)
+.TP
+.B 8859-5
+Part 5 (Cyrillic)
+.TP
+.B 8859-6
+Part 6 (Arabic)
+.TP
+.B 8859-7
+Part 7 (Greek)
+.TP
+.B 8859-8
+Part 8 (Hebrew)
+.TP
+.B 8859-9
+Latin-5 (Finnish .. Portuguese)
+.TP
+.B koi8
+KOI-8 (GOST 19769-74)
+.TP
+.B jis-kanji
+ISO 2022-JP
+.TP
+.B ujis
+EUC-JX: JIS 0208
+.TP
+.B ms-kanji
+Microsoft, or Shift-JIS
+.TP
+.B jis
+(from only) guesses between ISO 2022-JP, EUC or Shift-Jis
+.TP
+.B gb
+Chinese national standard (GB2312-80)
+.TP
+.B big5
+Big 5 (HKU version)
+.TP
+.B unicode
+Unicode Standard 1.0
+.TP
+.B tis
+Thai character set plus
+.SM ASCII
+(TIS 620-1986)
+.TP
+.B msdos
+IBM PC: CP 437
+.TP
+.B atari
+Atari-ST character set
+.SH EXAMPLES
+.TP
+.B tcs -f 8859-1
+Convert 8859-1 (Latin-1) characters into
+.SM UTF
+format.
+.TP
+.B tcs -s -f jis
+Convert characters encoded in one of several shift JIS encodings into
+.SM UTF
+format.
+Unknown Kanji will be converted into
+.B 0xFFFD
+characters.
+.TP
+.B tcs -lv
+Print an up to date list of the supported character sets.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/tcs
+.SH SEE ALSO
+.IR ascii (1),
+.IR rune (3),
+.IR utf (7).
diff --git a/man/man1/touch.1 b/man/man1/touch.1
index 3b074896..551ea2ca 100644
--- a/man/man1/touch.1
+++ b/man/man1/touch.1
@@ -28,7 +28,7 @@ is present.
.B /usr/local/plan9/src/cmd/touch.c
.SH SEE ALSO
.IR ls (1),
-.IR stat (2),
+.IR stat (3),
.IR chmod (1)
.SH BUGS
.I Touch
diff --git a/man/man1/tr2post.1 b/man/man1/tr2post.1
new file mode 100644
index 00000000..3c4597f3
--- /dev/null
+++ b/man/man1/tr2post.1
@@ -0,0 +1,111 @@
+.TH TR2POST 1
+.SH NAME
+tr2post \- convert troff intermediate to PostScript
+.SH SYNOPSIS
+.B tr2post
+[
+.B options
+]
+[
+.I files ...
+]
+.SH DESCRIPTION
+.I Tr2post
+converts
+.I files
+(or standard input),
+which should be the device-independent output of
+.IR troff (1),
+into the PostScript printer language.
+.PP
+The options are:
+.TP
+.BI -a " aspectratio
+Set an aspect ratio
+.RI ( y / x )
+to stretch the PostScript output (default 1.0).
+.TP
+.BI -c " copies
+Set a comment in the PostScript output
+marking the number of copies that should be printed.
+The comment is intended for ancient versions of the Unix
+\fIlp\fR(1) and is not recognized by any current printer
+or print spooler.
+.TP
+.BI -d
+Emit volumes of debugging output on standard error.
+.TP
+.BI -m " magnification
+Magnify the PostScript output (default 1.0).
+.TP
+.BI -n " formsperpage
+Print the PostScript with
+.I formsperpage
+logical pages per physical page
+(default 1).
+Using this option emits PostScript with invalid document structuring
+comments.
+It will print fine but will not view correctly in
+.IR gv (1)
+or
+.IR psv (1).
+.TP
+.BI -o " pagelist
+Print only the pages in the
+.IR pagelist ,
+which is a comma-separated list of ranges.
+Each range is of the form
+.I p
+(just page
+.IR p ),
+.IB p - q
+(pages
+.I p
+through
+.IR q ),
+.BI - p
+(pages 1 through
+.IR p ),
+or
+.IB p -
+(pages
+.I p
+through the end of the document).
+.TP
+.BI -p " " l
+Print the document in landscape mode.
+An argument that does not begin with
+.L l
+will print the document in portrait mode.
+.TP
+.BI -x " xoffset
+Translate the page output by
+.I xoffset
+inches to the right.
+(Negative offsets translate to the left.)
+.TP
+.BI -y " yoffset
+Translate the page output by
+.I yoffset
+inches down.
+(Negative offsets translate up.)
+.TP
+.BI -P " pscode
+Emit the text
+.I pscode
+at the end of the usual PostScript header.
+.PD
+.SH EXAMPLE
+Preview this manual page:
+.IP
+.EX
+troff -man /usr/local/plan9/man/man1/tr2post.1 |
+tr2post |
+psfonts >/tmp/a.ps
+psv /tmp/a.ps
+.EE
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/postscript/tr2post
+.SH SEE ALSO
+.IR troff (1),
+.IR psfonts (1)
diff --git a/man/man1/troff.1 b/man/man1/troff.1
index db5b9e6f..3f990ab7 100644
--- a/man/man1/troff.1
+++ b/man/man1/troff.1
@@ -174,17 +174,18 @@ terminal driving tables for
font width tables for
.I troff
.SH SOURCE
-.B /sys/src/cmd/troff
+.B /usr/local/plan9/src/cmd/troff
.SH "SEE ALSO"
-.IR lp (1),
+.IR lpr (1),
.IR proof (1),
+.IR tr2post (1),
.IR eqn (1),
.IR tbl (1),
.IR pic (1),
.IR grap (1),
.IR doctype (1),
-.IR ms (6),
-.IR image (6),
+.IR ms (7),
+.IR image (7),
.IR tex (1),
.IR deroff (1)
.br
diff --git a/man/man1/tweak.1 b/man/man1/tweak.1
new file mode 100644
index 00000000..511e1ce8
--- /dev/null
+++ b/man/man1/tweak.1
@@ -0,0 +1,167 @@
+.TH TWEAK 1
+.CT 1 graphics
+.SH NAME
+tweak \- edit image files, subfont files, face files, etc.
+.SH SYNOPSIS
+.B tweak
+[
+.I file ...
+]
+.SH DESCRIPTION
+.I Tweak
+edits existing files holding various forms of images.
+To create original images, start from an existing image, subfont, etc.
+.PP
+.I Tweak
+reads its argument
+.I files
+and displays the resulting images in a vertical column.
+If the image is too wide to fit across the display, it
+is folded much like a long line of text in an
+.IR rio
+window.
+Under each image is displayed one or two lines of text
+presenting its parameters.
+The first line shows the image's
+.BR depth ,
+the number
+of bits per pixel;
+.BR r ,
+the rectangle covered by the image;
+and the name of the
+.B file
+from which it was read.
+If the file is a subfont, a second line presents a hexadecimal 16-bit
+.B offset
+to be applied to character values from the subfont
+(typically as stored in a font file; see
+.IR font (7));
+and the subfont's
+.BR n ,
+.BR height ,
+and
+.B ascent
+as defined in
+.IR cachechars (3).
+.PP
+By means described below, magnified views of portions of the images
+may be displayed.
+The text associated with such a view includes
+.BR mag ,
+the magnification.
+If the view is of a single character from a subfont, the second
+line of text shows the character's value (including the subfont's offset)
+in hexadecimal and as a character in
+.I tweak's
+default font; the character's
+.BR x ,
+.BR top ,
+.BR bottom ,
+.BR left ,
+and
+.BR width
+as defined in
+.IR cachechars (3);
+and
+.BR iwidth ,
+the physical width of the image in the subfont's image.
+.PP
+There are two methods to obtain a magnified view of a character from a
+subfont.
+The first is to click mouse button 1 over the image of the character in
+the subfont. The second is to select the
+.B char
+entry on the button 3 menu,
+point the resulting gunsight cursor at the desired subfont and click button 3,
+and then type at the text prompt at the bottom of the screen the
+character value, either as a multi-digit hexadecimal number or as a single
+rune representing the character.
+.PP
+To magnify a portion of other types of image files,
+click button 1 over the unmagnified file.
+The cursor will switch to a cross.
+Still with button 1, sweep a rectangle, as in
+.BR rio ,
+that encloses the portion of the image to be magnified.
+(If the file is 16×16 or smaller,
+.I tweak
+will just magnify the entire file; no sweeping is necessary.)
+.PP
+Pressing buttons 1 and 2 within magnified images changes pixel values.
+By default, button 1 sets the pixel to all zeros and button 2 sets the pixel
+to all ones.
+.PP
+Across the top of the screen is a textual display of global parameters.
+These values, as well as many of the textual values associated with
+the images, may be edited by clicking button 1 on the displayed
+value and typing a new value.
+The values along the top of the screen are:
+.TP
+.B mag
+Default magnification.
+.TP
+.B val(hex)
+The value used to modify pixels within magnified images.
+The value must be in hexadecimal, optionally preceded by a
+tilde for bitwise negation.
+.TP
+.B but1
+.TP
+.B but2
+The pixel value written when the corresponding button is pressed over a pixel.
+.TP
+.B invert-on-copy
+Whether the pixel values are inverted when a
+.B copy
+operation is performed.
+.PP
+Under button 3 is a menu holding a variety of functions.
+Many of these functions prompt for the image upon which to act
+by switching to a gunsight cursor; click button 3 over the
+selection, or click a different button to cancel the action.
+.TP
+.B open
+Read and display a file. The name of the file is typed to the prompt
+on the bottom line.
+.TP
+.B read
+Reread a file.
+.TP
+.B write
+Write a file.
+.TP
+.B copy
+Use the copy function, default
+.BR S ,
+to transfer a rectangle of pixels from one image to another.
+The program prompts with a cross cursor; sweep out a rectangle in
+one image or just click button 3 to select the whole image.
+The program will leave that rectangle in place and
+attach another one to the cursor. Move that rectangle to the desired
+place in any image and click button 3, or another button to cancel the action.
+.TP
+.B char
+As described above, open a magnified view of a character image in a subfont.
+.TP
+.B pixels
+Report the coordinate and value of individual pixels indicated by pressing button 3.
+This is a mode of operation canceled by pressing button 1 or 2.
+.TP
+.B close
+Close the specified image.
+If the image is the unmagnified file, also close any magnified views of that file.
+.TP
+.B exit
+Quit
+.IR tweak .
+The program will complain once about modified but unwritten files.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/draw/tweak.c
+.SH "SEE ALSO"
+.IR cachechars (3),
+.IR image (7),
+.IR font (7)
+.SH BUGS
+For a program written to adjust width tables in fonts,
+.I tweak
+has been pushed unreasonably far.
diff --git a/man/man1/units.1 b/man/man1/units.1
new file mode 100644
index 00000000..23863569
--- /dev/null
+++ b/man/man1/units.1
@@ -0,0 +1,108 @@
+.TH UNITS 1
+.if n .ds / /
+.SH NAME
+units \- conversion program
+.SH SYNOPSIS
+.B units
+[
+.B -v
+]
+[
+.I file
+]
+.SH DESCRIPTION
+.I Units
+converts quantities expressed
+in various standard scales to
+their equivalents in other scales.
+It works interactively in this fashion:
+.IP
+.EX
+you have: inch
+you want: cm
+ * 2.54
+ / 0.393701
+.EE
+.PP
+A quantity is specified as a multiplicative combination
+of units and floating point numbers.
+Operators have the following precedence:
+.IP
+.EX
+.ta \w'\fLXXXXXXXXXXXXXXX'u
+\fL+\fP \fL-\fP \f1add and subtract
+\fL*\fP \fL/\fP \fL×\fP \fL÷\fP \f1multiply and divide
+catenation multiply
+\fL²\fP \fL³\fP \fL^\fP \f1exponentiation
+\fL|\fP \f1divide
+\fL(\fP ... \fL)\fP \f1grouping
+.EE
+.PP
+Most familiar units,
+abbreviations, and metric prefixes are recognized,
+together with a generous leavening of exotica
+and a few constants of nature including:
+.IP
+.de fq
+\fL\\$1\\fP \\$2 \\$3 \\$4 \\$5 \\$6
+..
+.ta \w'\fLwaterXXX'u
+.nf
+.fq pi,\f1π\fP ratio of circumference to diameter
+.fq c speed of light
+.fq e charge on an electron
+.fq g acceleration of gravity
+.fq force same as \fLg\fP
+.fq mole Avogadro's number
+.fq water "pressure head per unit height of water"
+.fq au astronomical unit
+.fi
+.PP
+The
+.L pound
+is a unit of
+mass.
+Compound names are run together, e.g.
+.LR lightyear .
+British units that differ from their US counterparts
+are prefixed thus:
+.LR brgallon .
+Currency is denoted
+.LR belgiumfranc ,
+.LR britainpound ,
+etc.
+.PP
+The complete list of units can be found in
+.BR /lib/units .
+A
+.I file
+argument to
+.I units
+specifies a file to be used instead of
+.BR /lib/units.
+The
+.B -v
+flag causes
+.I units
+to print its entire database.
+.SH EXAMPLE
+.EX
+you have: 15 pounds force/in²
+you want: atm
+ * 1.02069
+ / .97973
+.EE
+.SH FILES
+.B /lib/units
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/units.y
+.SH BUGS
+Since
+.I units
+does only multiplicative scale changes,
+it can convert Kelvin to Rankine but not Centigrade to
+Fahrenheit.
+.br
+Currency conversions are only as accurate as the last time someone
+updated
+.BR /lib/units .
diff --git a/man/man1/vac.1 b/man/man1/vac.1
new file mode 100644
index 00000000..4d3208d7
--- /dev/null
+++ b/man/man1/vac.1
@@ -0,0 +1,130 @@
+.TH VAC 1
+.SH NAME
+vac \- create a vac archive on Venti
+.SH SYNOPSIS
+.B vac
+[
+.B -mqsv
+] [
+.B -b
+.I blocksize
+] [
+.B -d
+.I oldvacfile
+] [
+.B -e
+.I exclude
+] [
+.B -f
+.I vacfile
+] [
+.B -i
+.I name
+] [
+.B -h
+.I host
+]
+.I file ...
+.SH DESCRIPTION
+.I Vac
+creates an archival copy of Plan 9 file trees on Venti. It can be used
+to build a simple backup system. One of the unusual properties of Venti is
+that duplicate blocks are detected and coalesced. When
+.I vac
+is used on a file tree that shares data with an existing archive, the consumption of
+storage will be approximately equal to an incremental backup.
+This reduction in storage consumption occurs transparently to the user.
+.PP
+As an optimization, the
+.B -d
+and
+.B -q
+options, described below, can be used to explicitly create an archive relative to an existing archive.
+These options do not change the resulting archive generated by
+.IR vac ,
+but simply reduce the number of write operations to Venti.
+.PP
+The output of
+.I vac
+is the hexadecimal representation of the Sha1 fingerprint of the root of the archive, in this format:
+.IP
+.EX
+vac:64daefaecc4df4b5cb48a368b361ef56012a4f46
+.EE
+.PP
+Option to
+.I vac
+are:
+.TP
+.BI -b " blocksize
+Specifies the block size that data will be broken into.
+The units for the size can be specified by appending
+.L k
+to indicate kilobytes.
+The default is 8k.
+The size must be in the range
+of 512 bytes to 52k.
+.TP
+.BI -d " oldvacfile
+Reduce the number of blocks written to Venti by comparing the files to be stored with
+the contents of an existing
+.I vac
+file tree given by
+.IR oldvacfile .
+.TP
+.BI -e " exclude
+Do not include the file or directory specified by
+.IR exclude .
+This option may be repeated multiple times.
+.TP
+.BI -f " vacfile
+The results of
+.I vac
+are place in
+.IR vacfile ,
+or the standard output if no file is given.
+.TP
+.BI -i " name
+Include standard input as one of the input files, storing it in the archive
+with the specified
+.IR name .
+.TP
+.BI -h " host
+The network address of the Venti server.
+The default is taken from the environment variable
+.BR venti .
+.\" If this variable does not exist, then the default is the
+.\" metaname
+.\" .BR $venti ,
+.\" which can be configured via
+.\" .IR ndb (6).
+.TP
+.B -m
+Expand and merge any
+.I vac
+archives that are found while reading the input files. This option is
+useful for building an archive from a collection of existing archives. Each archive is inserted
+into the new archive as if it had been unpacked in the directory in which it was found. Multiple
+archives can be unpacked in a single directory and the contents will be merged. To be detected, the
+archives must end in
+.LR .vac .
+Note, an archive is inserted by simply copying the root fingerprint and does not require
+the archive to be unpacked.
+.TP
+.B -q
+Increase the performance of the
+.B -d
+option by detecting unchanged files based on a match of the files name and other meta data,
+rather than examining the contents of the files.
+.TP
+.B -s
+Print out various statistics on standard error.
+.TP
+.B -v
+Produce more verbose output on standard error, including the name of the files added to the archive
+and the vac archives that are expanded and merged.
+.SH SOURCE
+.B /usr/local/plan9/src/cmd/vac
+.SH "SEE ALSO"
+Plan 9's \fIvacfs\fR(4) and \fIventi\fR(8)
+
diff --git a/man/man1/web.1 b/man/man1/web.1
new file mode 100644
index 00000000..0bcc9ca1
--- /dev/null
+++ b/man/man1/web.1
@@ -0,0 +1,75 @@
+.TH WEB 1
+.SH NAME
+web, wmail \- handle web page, mail message for plumber
+.SH SYNOPSIS
+.B web
+.I url
+\&...
+.br
+.B wmail
+.I address
+.SH DESCRIPTION
+.I Web
+opens each of the named
+.I urls
+in a new web browser window.
+Any of the
+.I urls
+may be relative paths to files in the file system;
+they will be translated into
+.B file://
+URLs before being passed to the web browser.
+.PP
+.I Web
+uses the
+web browser's
+.B -remote
+option command-line option,
+which requires an instance of the web browser
+to be already running.
+The choice of browser is determined by the
+.B $BROWSER
+environment variable, which should be the name of
+the executable for your choice of web browser.
+Since the various browsers all use different syntaxes
+in their
+.B -remote
+options, the executable name is inspected to determine
+the type of browser.
+The supported browsers are Opera, Mozilla Firefox, Mozilla Firebird, and Mozilla.
+When possible,
+.I web
+opens each URL in a new tab rather than a new window.
+.PP
+.I Wmail
+starts the composition of a new mail message to
+.IR address .
+.PP
+The choice of mailer is determined by the
+.B $MAILER
+environment variable.
+The supported mailers are:
+.TP browser
+invoke the mailer via a
+.B mailto://
+URL passed to
+.I web
+.PD
+.PP
+.I Web
+and
+.I wmail
+are invoked as start commands in the
+.IR plumber (4)'s
+rules for opening web pages and writing mail messages.
+.SH FILES
+.TP
+.B /usr/local/plan9/plumb/basic
+plumbing rules using
+.I web
+and
+.I wmail
+.SH SOURCE
+.B /usr/local/plan9/bin
+.SH SEE ALSO
+.IR plumber (4)
diff --git a/man/man1/wintext.1 b/man/man1/wintext.1
new file mode 100644
index 00000000..7d3463d1
--- /dev/null
+++ b/man/man1/wintext.1
@@ -0,0 +1,98 @@
+.TH WINTEXT 1
+.SH NAME
+wintext, ", "" \- access text in current window
+.SH SYNOPSIS
+.B wintext
+.br
+.B \C'"'\
+[
+.I prefix
+]
+.br
+.B \C'"'\C'"'\
+[
+.I prefix
+]
+.SH DESCRIPTION
+.I Wintext
+prints the text of the current
+.I win
+(see
+.IR acme (1))
+or
+.IR 9term (1)
+window to standard output.
+.PP
+.I \C'"'
+searches the window text for commands typed with a particular prefix
+and prints them, indented, to standard output.
+.I Prefix
+is a regular expression that is matched against the beginning of the command-line.
+If
+.I prefix
+is omitted,
+.I \C'"'
+prints the last command executed.
+.I \C'"'\C'"'
+prints the last command that
+.I \C'"'
+would print and then executes it by piping it into
+.IR rc (1).
+.PP
+Both
+.I \C'"'
+and
+.I \C'"'\C'"'
+identify commands in the window text by looking for lines
+beginning with a shell prompt.
+Prompts are assumed to be an unindented sequence of
+non-whitespace characters followed by one of the
+characters
+.BR % ,
+.BR ; ,
+.BR $ ,
+or
+.BR # .
+.SH EXAMPLES
+Print the
+.IR ls (1)
+and
+.I lc
+commands executed in this window:
+.IP
+.EX
+.ta +4n
+% \C'"' 'l[sc]'
+ % ls -l /tmp/qq*
+ # ls -lrt /etc
+ % lc r*
+%
+.EE
+.PP
+Execute the most recent
+.I lc
+command again:
+.IP
+.EX
+.ta +4n
+% \C'"'\C'"' lc
+ % lc r*
+ramfs rc read rio rm
+%
+.EE
+.SH SEE ALSO
+.IR 9term (1),
+.IR acme (1)
+.SH SOURCE
+.B /usr/local/plan9/bin
+.SH BUGS
+.I \C'"'
+and
+.I \C'"'\C'"'
+are hard to type in shells other than
+.IR rc (1).
+.\" and in troff!
+.PP
+Don't run
+.I \C'"'\C'"'
+twice in a row.
diff --git a/man/man1/yacc.1 b/man/man1/yacc.1
index 08d51b79..91bc7d0d 100644
--- a/man/man1/yacc.1
+++ b/man/man1/yacc.1
@@ -106,7 +106,7 @@ option reverses this.
The parser accepts
.SM UTF
input text (see
-.IR utf (6)),
+.IR utf (7)),
which has a couple of effects.
First, the return value of
.B yylex()
@@ -145,7 +145,7 @@ parser prototype
.B /usr/local/plan9/lib/yaccpars
parser prototype using stdio
.SH SOURCE
-.B /usr/local/plan9/src/cmd/yacc.c
+.B /usr/local/plan9/src/cmd/9yacc.c
.SH "SEE ALSO"
.IR lex (1)
.br