summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
Diffstat (limited to 'man')
-rw-r--r--man/1/INDEX2
-rw-r--r--man/1/vacget75
-rw-r--r--man/4/INDEX1
-rw-r--r--man/4/vacfs47
-rw-r--r--man/lib/checkman.awk187
-rw-r--r--man/lib/colophon26
-rw-r--r--man/lib/lookman/junkwords509
-rwxr-xr-xman/lib/lookman/mkindex13
-rw-r--r--man/lib/notes10
-rw-r--r--man/lib/preface73
-rwxr-xr-xman/lib/secindex43
-rw-r--r--man/lib/title77
-rw-r--r--man/lib/trademarks46
-rw-r--r--man/mkfile119
14 files changed, 1228 insertions, 0 deletions
diff --git a/man/1/INDEX b/man/1/INDEX
index 3d907507..159a36d9 100644
--- a/man/1/INDEX
+++ b/man/1/INDEX
@@ -283,6 +283,8 @@ uniq uniq
units units
uudecode uuencode
uuencode uuencode
+vacget vacget
+vacput vacget
wc wc
webgrab webgrab
wish wish
diff --git a/man/1/vacget b/man/1/vacget
new file mode 100644
index 00000000..8a5b04f9
--- /dev/null
+++ b/man/1/vacget
@@ -0,0 +1,75 @@
+.TH VACGET 1
+.SH NAME
+vacget, vacput \- venti archive utilities
+.SH SYNOPSIS
+.B vacget
+[
+.B -vdpt
+] [
+.B -a
+.I addr
+]
+.I vac:score
+.br
+.B vacput
+[
+.B -vd
+] [
+.B -a
+.I addr
+] [
+.B -b
+.I blocksize
+] [
+.B -n
+.I name
+]
+.I path ...
+.SH DESCRIPTION
+.I Vacget
+retrieves a venti archive from a venti server to the current working directory.
+.PP
+.I Vacput
+writes a venti archive to a venti server. The
+.I paths
+are walked recursively and all files and directories written to the archive. Temporary files, i.e. those with the
+.B DMTMP
+bit set, are skipped. Writing only changed files relative to a previously written archive is not implemented.
+.TP
+.B -d
+Print debug messages.
+.TP
+.B -p
+Try to preserve file permissions and owner/group. Only for vacget.
+.TP
+.B -v
+Be verbose. Prints files as they are being retrieved or written.
+.TP
+.B -t
+List files, do not write them. Only for vacget.
+.TP
+.BI -a " address"
+Dial
+.I address
+instead of the default venti server.
+.TP
+.BI -b " blocksize"
+Use blocks with
+.I blocksize
+bytes instead of the default 8192 byte blocks. Only for vacput.
+.TP
+.BI -n " name"
+Use
+.I name
+as the name in the root block. Only for vacput.
+.SH SOURCE
+.B /appl/cmd/vacget.b
+.br
+.B /appl/cmd/vacput.b
+.SH SEE ALSO
+.IR vcache (1),
+.IR venti (2),
+.IR vacfs (4),
+.IR ventisrv (8)
+.SH BUGS
+These tools need more testing.
diff --git a/man/4/INDEX b/man/4/INDEX
index ce9e711e..69dcfb7c 100644
--- a/man/4/INDEX
+++ b/man/4/INDEX
@@ -29,3 +29,4 @@ regquery registry
spree spree
tarfs tarfs
trfs trfs
+vacfs vacfs
diff --git a/man/4/vacfs b/man/4/vacfs
new file mode 100644
index 00000000..1cfeaff2
--- /dev/null
+++ b/man/4/vacfs
@@ -0,0 +1,47 @@
+.TH VACFS 4
+.SH NAME
+vacfs \- mount venti archive
+.SH SYNOPSIS
+.B vacfs
+[
+.B -Ddp
+] [
+.B -a
+.I addr
+]
+.I [vac:score]
+.SH DESCRIPTION
+.I Vacfs
+makes the contents of a venti archive available over styx. Standard input is used for reading and writing styx messages.
+If
+.I score
+is not specified, vacfs
+serves multiple venti archives. In this case the root directory lists no files, but walking to a directory
+.I score
+opens the venti archive with that score. Note that the vacfs does not support writing.
+.TP
+.B -D
+Print styx trace messages.
+.TP
+.B -d
+Print debug messages.
+.TP
+.B -p
+Disable permission checking.
+.TP
+.BI -a " address"
+Dial
+.I address
+instead of the default venti server.
+.SH SOURCE
+.B /appl/cmd/vacfs.b
+.SH SEE ALSO
+.IR vacget (1),
+.IR vacput (1),
+.IR vcache (1),
+.IR venti (2),
+.IR ventisrv (8)
+.SH BUGS
+Vacfs needs more testing.
+.br
+When the venti connection is broken, directories appear empty.
diff --git a/man/lib/checkman.awk b/man/lib/checkman.awk
new file mode 100644
index 00000000..ea17e8d6
--- /dev/null
+++ b/man/lib/checkman.awk
@@ -0,0 +1,187 @@
+# Usage: awk -f checkman.awk man?/*.?
+#
+# Checks:
+# - .TH is first line, and has proper name section number
+# - sections are in order NAME, SYNOPSIS, DESCRIPTION, EXAMPLES,
+# FILES, SOURCE, SEE ALSO, DIAGNOSTICS, BUGS
+# - there's a manual page for each cross-referenced page
+
+BEGIN {
+
+# .SH sections should come in the following order
+
+ Weight["NAME"] = 1
+ Weight["SYNOPSIS"] = 2
+ Weight["DESCRIPTION"] = 4
+ Weight["EXAMPLE"] = 8
+ Weight["EXAMPLES"] = 16
+ Weight["FILES"] = 32
+ Weight["SOURCE"] = 64
+ Weight["SEE ALSO"] = 128
+ Weight["DIAGNOSTICS"] = 256
+ Weight["SYSTEM CALLS"] = 512
+ Weight["BUGS"] = 1024
+}
+
+FNR==1 {
+ n = length(FILENAME)
+ seclen = 0
+ if (substr(FILENAME, 2, 1) == "/")
+ seclen = 1
+ else if (substr(FILENAME, 3, 1) == "/")
+ seclen = 2
+ if(seclen == 0)
+ print "FILENAME", FILENAME, "not of form [0-9][0-9]?/*"
+ else if(!(substr(FILENAME, seclen+2, n-seclen-1) ~ /^[A-Z]+$/)){
+ section = substr(FILENAME, 1, seclen)
+ name = substr(FILENAME, seclen+2, n-seclen-1)
+ if($1 != ".TH" || NF != 3)
+ print "First line of", FILENAME, "not a proper .TH"
+ else if($2 != toupper(name) || substr($3, 1, seclen) != section){
+ if($2!="INTRO" || name!="0intro")
+ print ".TH of", FILENAME, "doesn't match filename"
+ }else
+ Pages[section "/" $2] = 1
+ }
+ Sh = 0
+ }
+
+$1 == ".SH" {
+ if(inex)
+ print "Unterminated .EX in", FILENAME, ":", $0
+ inex = 0;
+ if (substr($2, 1, 1) == "\"") {
+ if (NF == 2) {
+ print "Unneeded quote in", FILENAME, ":", $0
+ $2 = substr($2, 2, length($2)-2)
+ } else if (NF == 3) {
+ $2 = substr($2, 2) substr($3, 1, length($3)-1)
+ NF = 2
+ }
+ }
+ w = Weight[$2]
+ if (w) {
+ if (w < Sh)
+ print "Heading", $2, "out of order in", FILENAME
+ Sh += w
+ }
+}
+
+$1 == ".EX" {
+ if(inex)
+ print "Nested .EX in", FILENAME, ":", $0
+ inex = 1
+}
+
+$1 == ".EE" {
+ if(!inex)
+ print "Bad .EE in", FILENAME, ":", $0
+ inex = 0;
+}
+
+$0 ~ /^\..*\([0-9]\)/ {
+ if ($1 == ".IR" && $3 ~ /\([0-9]\)/) {
+ name = $2
+ section = $3
+ }else if ($1 == ".RI" && $2 == "(" && $4 ~ /\([0-9]\)/) {
+ name = $3
+ section = $4
+ }else if ($1 == ".IR" && $3 ~ /9.\([0-9]\)/) {
+ name = $2
+ section = "9"
+ }else if ($1 == ".RI" && $2 == "(" && $4 ~ /9.\([0-9]\)/) {
+ name = $3
+ section = "9"
+ } else {
+ print "Possible bad cross-reference format in", FILENAME
+ print $0
+ next
+ }
+ gsub(/[^0-9]/, "", section)
+ Refs[section "/" toupper(name)]++
+}
+
+END {
+ print "Checking Cross-Referenced Pages"
+ for (i in Refs) {
+ if (!(i in Pages))
+ print "Need", tolower(i)
+ }
+ print ""
+ print "Checking commands"
+ getindex("/usr/inferno/doc/man/1")
+ getindex("/usr/inferno/doc/man/8")
+ Skipdirs["lib"] = 1
+ getbinlist("/usr/inferno/dis")
+ for (i in List) {
+ if (!(i in Index))
+ print "Need", i, "(in " List[i] ")"
+ }
+ clearindex()
+ clearlist()
+ print ""
+ print "Checking libraries"
+ getindex("/usr/inferno/doc/man/2")
+ getbinlist("/usr/inferno/dis/lib")
+ for (i in List) {
+ if (!(i in Index))
+ print "Need", i, "(in " List[i] ")"
+ }
+}
+
+func getindex(dir, fname)
+{
+ fname = dir "/INDEX"
+ while ((getline < fname) > 0)
+ Index[$1] = dir
+ close(fname)
+}
+
+func getindex9(dir, fname)
+{
+ fname = dir "/INDEX"
+ while ((getline < fname) > 0)
+ if($2 ~ "(getflags|picopen|getcmap)")
+ Index[$1] = dir
+ close(fname)
+}
+
+func getbinlist(dir, cmd, subdirs, nsd)
+{
+ cmd = "ls -p -l " dir
+ nsd = 0
+ while (cmd | getline) {
+ if ($1 ~ /^d/) {
+ if (!($10 in Skipdirs))
+ subdirs[++nsd] = $10
+ } else {
+ sub(".dis", "", $10)
+ List[$10] = dir
+ }
+ }
+ for ( ; nsd > 0 ; nsd--)
+ getbinlist(dir "/" subdirs[nsd])
+ close(cmd)
+}
+
+func getnmlist(lib, cmd)
+{
+ cmd = "nm -g -h " lib
+ while (cmd | getline) {
+ if (($1 == "T" || $1 == "L") && $2 !~ "^_")
+ List[$2] = lib
+ }
+ close(cmd)
+}
+
+func clearindex( i)
+{
+ for (i in Index)
+ delete Index[i]
+}
+
+func clearlist( i)
+{
+ for (i in List)
+ delete List[i]
+}
diff --git a/man/lib/colophon b/man/lib/colophon
new file mode 100644
index 00000000..ac7180e8
--- /dev/null
+++ b/man/lib/colophon
@@ -0,0 +1,26 @@
+.sp |3i
+.vs 12
+.ll 5.1i
+.in |0.4i
+.fp 1 R LucidaSans
+.ft 1
+.fi
+This book was typeset by the authors using
+.sp
+.ft CW
+.ps -1
+.ce
+eqn | tbl | troff -mpm | lp -d stdout | cropmarks
+.ps +1
+.ft R
+.sp
+The input text was characters from the Unicode Standard encoded in UTF-8.
+.sp
+The fonts used were Lucida Sans,
+in a special version incorporating over 1700 characters from the Unicode Standard,
+along with Lucida Sans Italic,
+Lucida Sans DemiBold, and
+Lucida Typewriter,
+designed by Bigelow & Holmes, Atherton, California.
+The hinted Adobe Type 1 representation of the fonts was
+provided by Y&Y Inc., 45 Walden Street, Concord, MA, 01742, USA.
diff --git a/man/lib/lookman/junkwords b/man/lib/lookman/junkwords
new file mode 100644
index 00000000..a0e8c6d4
--- /dev/null
+++ b/man/lib/lookman/junkwords
@@ -0,0 +1,509 @@
+
+a
+about
+above
+according
+across
+act
+action
+after
+again
+against
+ago
+air
+all
+allowed
+almost
+along
+already
+also
+although
+always
+american
+among
+an
+and
+another
+any
+anything
+appear
+appears
+appropriate
+are
+area
+areas
+argument
+arguments
+around
+as
+asked
+associated
+at
+available
+away
+b
+back
+be
+became
+because
+become
+been
+before
+began
+begin
+beginning
+begins
+behind
+being
+below
+best
+better
+between
+big
+board
+body
+both
+boy
+brought
+business
+but
+by
+c
+call
+called
+calls
+came
+can
+cannot
+car
+case
+cause
+causes
+certain
+change
+changed
+changes
+changing
+children
+church
+city
+close
+college
+come
+command
+commands
+community
+company
+contain
+containing
+contents
+corresponding
+could
+country
+course
+court
+currently
+d
+day
+days
+death
+depending
+description
+development
+did
+didnt
+different
+do
+does
+doesnt
+done
+dont
+door
+down
+during
+e
+each
+early
+economic
+effect
+either
+element
+elements
+else
+empty
+encountered
+end
+enough
+even
+ever
+every
+example
+examples
+experience
+eyes
+f
+face
+fact
+family
+far
+federal
+feet
+felt
+few
+field
+find
+first
+five
+followed
+following
+follows
+for
+force
+form
+found
+four
+free
+from
+function
+functions
+g
+gave
+general
+get
+give
+given
+gives
+giving
+go
+god
+going
+good
+got
+government
+great
+group
+h
+had
+half
+hand
+hands
+has
+have
+having
+he
+head
+heard
+held
+help
+her
+here
+high
+him
+himself
+his
+history
+home
+house
+how
+however
+human
+i
+if
+ignored
+im
+immediately
+implemented
+important
+in
+including
+individual
+information
+initial
+instead
+interest
+interpreted
+into
+is
+it
+its
+itself
+j
+job
+john
+just
+k
+keep
+kind
+knew
+know
+known
+l
+large
+last
+later
+law
+least
+left
+less
+let
+life
+light
+like
+line
+little
+local
+long
+look
+looked
+love
+m
+made
+major
+make
+makes
+making
+man
+many
+marked
+matter
+may
+me
+meaning
+means
+members
+men
+might
+mind
+miss
+moment
+money
+more
+most
+mr
+mrs
+much
+multiple
+must
+my
+n
+name
+named
+national
+need
+never
+new
+next
+night
+no
+nonzero
+normal
+normally
+not
+nothing
+now
+number
+numbers
+o
+of
+off
+office
+often
+old
+on
+once
+one
+only
+open
+or
+order
+other
+others
+otherwise
+our
+out
+over
+own
+p
+part
+passed
+past
+people
+per
+perhaps
+period
+place
+placed
+point
+political
+position
+possible
+power
+preceded
+present
+president
+previous
+probably
+problem
+problems
+program
+public
+put
+q
+question
+quite
+r
+rather
+really
+reason
+represented
+respectively
+result
+right
+room
+s
+said
+same
+saw
+say
+school
+second
+see
+seemed
+seems
+seen
+sense
+separate
+separated
+sequence
+service
+set
+sets
+several
+shall
+she
+should
+show
+side
+simple
+since
+single
+small
+so
+social
+society
+some
+something
+south
+special
+specified
+start
+starting
+state
+states
+still
+street
+study
+subsequent
+such
+supplied
+sure
+synopsis
+system
+t
+take
+taken
+tell
+terminated
+terminating
+than
+that
+the
+their
+them
+themselves
+then
+there
+these
+they
+thing
+things
+think
+this
+those
+though
+thought
+three
+through
+thus
+to
+today
+together
+told
+too
+took
+top
+toward
+trailing
+treated
+true
+turn
+turned
+two
+u
+under
+united
+until
+up
+upon
+us
+use
+used
+useful
+uses
+usually
+v
+very
+w
+want
+war
+was
+water
+way
+we
+week
+well
+went
+were
+west
+what
+when
+where
+whether
+which
+while
+white
+who
+whole
+whose
+why
+will
+with
+within
+without
+word
+words
+work
+world
+would
+x
+y
+year
+years
+yet
+york
+you
+young
+your
+z
+zero
+zeros
diff --git a/man/lib/lookman/mkindex b/man/lib/lookman/mkindex
new file mode 100755
index 00000000..45c48d74
--- /dev/null
+++ b/man/lib/lookman/mkindex
@@ -0,0 +1,13 @@
+#!/bin/rc
+# creates the index used by lookman
+>index
+for(i in /usr/inferno/man/[0-9]*/[a-z0-9:]*){
+ p=`{echo $i | sed 's@/usr/inferno(/man/.*)$@\1@'}
+ deroff -w < $i |
+ tr 'A-Z' 'a-z' |
+ sort -u |
+ comm -23 - junkwords |
+ sed 's@$@ '$p'@' >>index # stick file name on end of line
+}
+sort -o index index
+mv index /usr/inferno/man/index
diff --git a/man/lib/notes b/man/lib/notes
new file mode 100644
index 00000000..5ea602d9
--- /dev/null
+++ b/man/lib/notes
@@ -0,0 +1,10 @@
+.fp 1 R LucidaSans
+.ft 1
+.ps 20
+.sp |0.5i
+.ce
+Notes
+.bp
+.sp |0.5i
+.ce
+Notes
diff --git a/man/lib/preface b/man/lib/preface
new file mode 100644
index 00000000..a49bc721
--- /dev/null
+++ b/man/lib/preface
@@ -0,0 +1,73 @@
+.FP lucidasans
+.nr PS -1
+.nr VS -1
+.TL
+Preface
+.SP 0.4i exactly
+.LP
+Inferno benefits from the results of many years of systems research
+at the Computing Science Research Center at Lucent Technologies, Bell Labs.
+The system is clearly a cultural descendent of the earliest Unix systems,
+and amongst Inferno's inventors, listed below, are several venerable programmers
+associated with the development of Unix.
+Inferno looks out on a very different world from Unix: complexity is no longer
+confined to large mainframes, but has sprawled
+across world wide networks, trapping programmers in its web.
+.LP
+Inferno tackles this as radically now as Unix did then.
+First, it adopts key ideas from the system Plan 9, also from Bell Labs:
+.IP \(bu
+Replace a plethora of protocols by a simple, unifying file service protocol (Styx),
+that can be served even by tiny devices, giving a uniform
+way to access objects throughout the network.
+.IP \(bu
+Let applications `compute a name space': all resources are represented
+as file systems, which an application assembles into an application-specific
+hierarchy or `name space', private or shared, that hides their source (local or remote)
+and nature (static or dynamic), for completely transparent access.
+.IP \(bu
+Using those primitives, implement windowing systems, networked graphics, remote debugging,
+device control, and much more, with remarkable ease
+and great simplicity.
+.LP
+Inferno carries Plan 9's ideas further.
+Plan 9 virtualised resources; Inferno virtualises the whole system.
+The operating system kernel can run both native and `hosted' on a range
+of platforms presenting identical interfaces on all, offering wider portability.
+The Limbo programming language offers proper concurrent programming,
+and straightforward yet dynamic modularity.
+The Dis virtual machine allows applications to cross architecture boundaries
+invisibly during execution.
+Inferno shows the `continued appliance of computer science'.
+.LP
+The original development team at Bell Labs was
+Sean Dorward, Rob Pike and Phil Winterbottom,
+with Eric Grosse, Jim McKie, Dave Presotto,
+Dennis Ritchie, Ken Thompson and Howard Trickey.
+Many others have contributed much since then, both within Lucent and without.
+.LP
+Inferno® is now a supported, commercial product of Vita Nuova.
+The Third Edition of the Programmer's manual marked that event.
+The Fourth Edition brings many changes in content, but also makes the full
+source available as Free Software under a new `dual licence' scheme.
+.LP
+.sp
+.in 4i
+.nf
+.ft I
+.ce 100
+Dave Atkin
+John Bates
+Danny Byrne
+John Firth
+Charles Forsyth
+Michael Jeffrey
+Chris Locke
+Roger Peppé
+Nigel Roles
+.sp
+Vita Nuova
+.br
+June 2003
+.ce 0
+.in -4i
diff --git a/man/lib/secindex b/man/lib/secindex
new file mode 100755
index 00000000..060e7a6a
--- /dev/null
+++ b/man/lib/secindex
@@ -0,0 +1,43 @@
+#!/bin/rc
+U='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+L='abcdefghijklmnopqrstuvwxyz'
+builtin cd $1
+for (i in [a-z0-9:]*) {
+ sed -n '
+ /SH *NAM/,/SH/{
+ /SH/d
+ s/, *$//
+ ty
+ :y
+ s/ *\\*-.*//
+ tx
+ s/ *\\\(mi.*//
+ tx
+ s/[,:] */\
+/g
+ s/\n\\n/\
+/g
+ y/'$U'/'$L'/
+ s/\n/ '$i'&/g
+ s/$/ '$i'/
+ p
+ }
+ /SH *DES/q
+ d
+ :x
+ s/ *\\*-.*//
+ s/ *\\\(mi.*//
+ /^$/d
+ s/[,:] */\
+/g
+ s/\n\n/\
+/g
+ y/'$U'/'$L'/
+ s/\n/ '$i'&/g
+ s/(.|\n)*$/& '$i'/
+ p
+ q
+' $i
+kw=`{echo $i | sed 's/0intro/intro/'}
+echo $kw $i
+} | sort -u
diff --git a/man/lib/title b/man/lib/title
new file mode 100644
index 00000000..f9b2f6ec
--- /dev/null
+++ b/man/lib/title
@@ -0,0 +1,77 @@
+.fp 1 R LucidaSans
+.fp 2 I LucidaSansI
+.ps36
+.sp |2i
+.ce
+Inferno\s36\u\s8\u™
+.sp |3.275i
+.ps24
+.ce
+Programmer's Manual
+.sp .3i
+.ce
+Volume 1
+.ps12
+.sp |4.8i
+.ft I
+.ce
+Fourth Edition
+.sp |7.6i
+.ce
+Vita Nuova Holdings Limited
+.ce
+3 Innovation Close
+.ce
+York Science Park
+.ce
+University Road
+.ce
+York YO10 5ZF
+.ce
+England
+.bp
+.ft R
+\" .ll 5.5i
+\" .in .5i
+.hy 0
+.vs 10p
+.ps 10
+.sp |1i
+.nf
+Published by Vita Nuova Holdings Limited,
+3 Innovation Close,
+York Science Park,
+University Road,
+York YO10 5ZF,
+England
+.sp 3
+.ps 8
+Copyright © 1995-1999 Lucent Technologies Inc. All Rights Reserved.
+Portions Copyright © 1999-2005 Vita Nuova Holdings Limited. All Rights Reserved.
+Portions of Section 9 are derived from works which themselves are
+Copyright © 1990 The Regents of the University of California, and
+Copyright © 1994-1996 Sun Microsystems, Inc.
+subject to the terms described in the copyright notice in Section 9.
+.ps 10
+.sp 3
+All rights reserved; no part of this publication may be reproduced,
+stored in a retrieval system or transmitted in any form or by any means,
+electronic, mechanical, photocopying, recording or otherwise without
+the prior written permission of the publishers.
+.sp 3
+First published 2000. This edition published 2005.
+.sp 3
+.ig
+ISBN for complete set of 2 volumes: 0 9538701 0 3
+.br
+ISBN for this volume: 0 9538701 1 1
+.sp 3
+.ft I
+Printed in Great Britain by
+William Clowes,
+Beccles,
+Suffolk NR34 9QE,
+England.
+.ft R
+.sp 3
+Cover Design: Jeff Parker
diff --git a/man/lib/trademarks b/man/lib/trademarks
new file mode 100644
index 00000000..efa19bb0
--- /dev/null
+++ b/man/lib/trademarks
@@ -0,0 +1,46 @@
+.sp |2i
+.vs 12
+.fp 1 R LucidaSans
+.ft 1
+.fi
+Trademarks referenced in this document:
+.sp 2
+.ps -1
+.vs -1
+.nf
+Inferno, Dis, Styx and Limbo are registered trademarks of Vita Nuova Holdings Limited
+ in the United States and other countries.
+68020 and 68040 are trademarks of Motorola.
+AMD is a trade mark of Advanced Micro Devices.
+ARM is a trade mark of Advanced Risc Machines, Limited.
+DSP3210 is a trade mark of AT&T.
+Aladdin Ghostscript is a trademark of Aladdin Enterprises.
+CGA is a trademark of International Business Machines Corporation.
+Challenge, Indigo\s-2\u2\d\s0, Indy, and POWER Series are trademarks of Silicon Graphics, Inc.
+Ethernet is a trademark of Xerox Corporation.
+IBM, PS/2, and VGA are registered trademarks of International Business Machines Corporation.
+IDEA is a trademark of Ascom-Tech AG.
+Intel, i386, 960, 8088, 80286, 80386, 80486, and Pentium are trademarks of Intel Corporation.
+Java is a trademark and Sun is a registered trademark of Sun Microsystems Inc.
+Lucida and Pellucida are registered trademarks of Bigelow & Holmes.
+MIPS and R3000 are registered trademarks of MIPS Technologies, Inc.
+Microsoft is a registered trademark of Microsoft Corporation.
+Windows, Windows NT and MS-DOS are registered trademarks of Microsoft Corporation
+ in the United States and other countries.
+NFS is a registered trademark of Sun Microsystems, Inc.
+PDP and VAX are registered trademarks of Digital Equipment Corp.
+Plan 9 is a trademark of Lucent Technologies Inc.
+PostScript is a registered trademark of Adobe Systems Incorporated.
+ProPhone is a registered trademark of Prolink Corporation.
+R2000, R6000, R4000, and R4400 are trademarks of MIPS Technologies, Inc.
+RC4 is a registered trademark of RSA Security Inc.
+SecureNet is a registered trademark of Digital Pathways, Inc.
+Silicon Graphics, IRIS Indigo, IRIS, and IRIX are registered trademarks of Silicon Graphics, Inc.
+Sound Blaster is a registered trademark of Creative Labs, Inc.
+SPARC is a registered trademark of SPARC International, Inc.
+StrongARM is a registered trademark of Advanced RISC Machines, Ltd.
+ThinkJet is a registered trademark of the Hewlett-Packard Company.
+Unicode is a registered trademark of Unicode, Inc.
+UNIX is a registered trademark of The Open Group.
+.ps
+.vs
diff --git a/man/mkfile b/man/mkfile
new file mode 100644
index 00000000..336c94ab
--- /dev/null
+++ b/man/mkfile
@@ -0,0 +1,119 @@
+<../mkconfig
+DOC=$ROOT
+<$DOC/man/fonts
+
+LIB=$DOC/man/lib
+
+default:V: check
+
+indices:V:
+ rfork n
+ for (i in [0-9] 10){
+ $LIB/secindex $i > $i/INDEX
+ }
+ mk lookindex
+
+
+permind:V:
+ rm -f $LIB/permind/toc
+ {
+ echo -n $FONTS
+ echo .am TH
+ echo .tm '\\$1' '\\$2' '\\n%'
+ echo ..
+ for (i in [0-9]){
+ builtin cd $i
+ for(j in [a-z0-9]*)
+ switch($i/$j){
+ case 1/tbl
+ tbl $j
+ case 1/eqn 6/auth
+ eqn $j
+ case 1/pic
+ pic $j
+ case 1/grap
+ grap $j | pic
+ case *
+ cat $j
+ }
+ builtin cd ..
+ }
+ # section 10 is in a special order
+ builtin cd 10
+ cat 0intro
+ cat `{grep -l '^\.TH.*\.1' *}
+ cat `{grep -l '^\.TH.*\.2' *}
+ cat `{grep -l '^\.TH.*\.6' *}
+ cat `{grep -l '^\.TH.*\.8' *}
+ builtin cd ..
+ } | troff -$MAN > /dev/null >[2] $LIB/permind/toc
+ builtin cd $LIB/permind
+ rm -f out
+ mk out > /dev/null >[2] /dev/null
+
+check:V: checksource
+ awk -f $LIB/checkman.awk [0-9]/* | sed '/\/(cda|av|midi|pub|weather|service\.9net|isdn)(\/|\))/d'
+
+checksource:QV:
+ sam -d >[2]/dev/null <<'!'
+ f input
+ < cat [0-9]/[0-9a-z]*
+ B output
+ b input
+ ,x/^\.SH SOURCE/ .,/^\.SH/ x g/^\.B/t "output
+ b output
+ ,x/^\.B.? / d
+ ,x/ .*/d
+ ,s/.+/if(! test -f $ROOT& \&\& ! test -d $ROOT&) echo no such SOURCE file '&'/g
+ ,>rc
+ !
+
+lookindex:V:
+ builtin cd $LIB/lookman
+ mkindex
+
+
+print.out:V: permind
+ {
+ {echo -n $FONTS; cat $LIB/title} | troff
+ {echo -n $FONTS; cat $LIB/trademarks} | troff -ms
+ {echo -n $FONTS; echo ' '} | troff
+ {echo -n $FONTS; cat $LIB/preface} | troff -ms
+ {echo -n $FONTS; echo ' '} | troff
+ {
+ for (i in [0-9]){
+ builtin cd $i
+ for(j in [a-z0-9]*)
+ switch($i/$j){
+ case 1/tbl
+ tbl $j
+ case 1/eqn 6/auth
+ eqn $j
+ case 1/pic
+ pic $j
+ case 1/grap
+ grap $j | pic
+ case *
+ cat $j
+ }
+ builtin cd ..
+ }
+ # section 10 is in a special order
+ builtin cd 10
+ cat 0intro
+ cat `{grep -l '^\.TH.*\.1' *}
+ cat `{grep -l '^\.TH.*\.2' *}
+ cat `{grep -l '^\.TH.*\.6' *}
+ cat `{grep -l '^\.TH.*\.8' *}
+ builtin cd ..
+ } | troff -$MAN
+ {echo -n $FONTS; echo ' '} | troff
+ {echo -n $FONTS; echo ' '} | troff
+ cat $LIB/permind/out
+ {echo -n $FONTS; echo ' '} | troff
+ {echo -n $FONTS; echo ' '} | troff
+ {echo -n $FONTS; cat $LIB/colophon} | troff
+ } > print.out
+
+clean:V:
+ rm -f man.out