BSD 4_1c_2 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sat, 12 Feb 1983 18:12:07 +0000 (10:12 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sat, 12 Feb 1983 18:12:07 +0000 (10:12 -0800)
Work on file usr/man/man0/bfile
Work on file usr/man/man0/changes
Work on file usr/man/man0/changes.4-81
Work on file usr/man/man0/copyr
Work on file usr/man/man0/changes.4-82
Work on file usr/man/man0/comm.sed
Work on file usr/man/man0/ignore
Work on file usr/man/man0/m1.sed
Work on file usr/man/man0/m2.sed
Work on file usr/man/man0/ptxmac
Work on file usr/man/man0/setup-4.1a
Work on file usr/man/man0/trman
Work on file usr/man/man0/trref.sed
Work on file usr/man/man0/xx
Work on file usr/man/man1/awk.1
Work on file usr/man/man1/at.1
Work on file usr/man/man1/bc.1
Work on file usr/man/man1/basename.1
Work on file usr/man/man1/cal.1
Work on file usr/man/man1/pi.1
Work on file usr/man/man1/calendar.1
Work on file usr/man/man1/cb.1
Work on file usr/man/man1/cat.1
Work on file usr/man/man1/ccat.1
Work on file usr/man/man1/checknr.1
Work on file usr/man/man1/cd.1
Work on file usr/man/man1/chmod.1
Work on file usr/man/man1/cmp.1
Work on file usr/man/man1/clear.1
Work on file usr/man/man1/col.1
Work on file usr/man/man1/colcrt.1
Work on file usr/man/man1/colrm.1
Work on file usr/man/man1/w.1
Work on file usr/man/man1/comm.1
Work on file usr/man/man1/cp.1
Work on file usr/man/man1/compact.1
Work on file usr/man/man1/crypt.1
Work on file usr/man/man1/dc.1
Work on file usr/man/man1/dd.1
Work on file usr/man/man1/deroff.1

Synthesized-from: CSRG/cd1/4.1c.2

40 files changed:
usr/man/man0/bfile [new file with mode: 0644]
usr/man/man0/changes [new file with mode: 0644]
usr/man/man0/changes.4-81 [new file with mode: 0644]
usr/man/man0/changes.4-82 [new file with mode: 0644]
usr/man/man0/comm.sed [new file with mode: 0644]
usr/man/man0/copyr [new file with mode: 0644]
usr/man/man0/ignore [new file with mode: 0644]
usr/man/man0/m1.sed [new file with mode: 0644]
usr/man/man0/m2.sed [new file with mode: 0644]
usr/man/man0/ptxmac [new file with mode: 0644]
usr/man/man0/setup-4.1a [new file with mode: 0644]
usr/man/man0/trman [new file with mode: 0644]
usr/man/man0/trref.sed [new file with mode: 0644]
usr/man/man0/xx [new file with mode: 0644]
usr/man/man1/at.1 [new file with mode: 0644]
usr/man/man1/awk.1 [new file with mode: 0644]
usr/man/man1/basename.1 [new file with mode: 0644]
usr/man/man1/bc.1 [new file with mode: 0644]
usr/man/man1/cal.1 [new file with mode: 0644]
usr/man/man1/calendar.1 [new file with mode: 0644]
usr/man/man1/cat.1 [new file with mode: 0644]
usr/man/man1/cb.1 [new file with mode: 0644]
usr/man/man1/ccat.1 [new file with mode: 0644]
usr/man/man1/cd.1 [new file with mode: 0644]
usr/man/man1/checknr.1 [new file with mode: 0644]
usr/man/man1/chmod.1 [new file with mode: 0644]
usr/man/man1/clear.1 [new file with mode: 0644]
usr/man/man1/cmp.1 [new file with mode: 0644]
usr/man/man1/col.1 [new file with mode: 0644]
usr/man/man1/colcrt.1 [new file with mode: 0644]
usr/man/man1/colrm.1 [new file with mode: 0644]
usr/man/man1/comm.1 [new file with mode: 0644]
usr/man/man1/compact.1 [new file with mode: 0644]
usr/man/man1/cp.1 [new file with mode: 0644]
usr/man/man1/crypt.1 [new file with mode: 0644]
usr/man/man1/dc.1 [new file with mode: 0644]
usr/man/man1/dd.1 [new file with mode: 0644]
usr/man/man1/deroff.1 [new file with mode: 0644]
usr/man/man1/pi.1 [new file with mode: 0644]
usr/man/man1/w.1 [new file with mode: 0644]

diff --git a/usr/man/man0/bfile b/usr/man/man0/bfile
new file mode 100644 (file)
index 0000000..1301163
--- /dev/null
@@ -0,0 +1 @@
+ +-\*,`():;/
diff --git a/usr/man/man0/changes b/usr/man/man0/changes
new file mode 100644 (file)
index 0000000..8f7e46a
--- /dev/null
@@ -0,0 +1,1057 @@
+.de IR
+\fI\\$1\fR\\$2\\fR\\fR
+..
+.TL
+Changes in the VAX system in the Fourth
+Berkeley Distribution, November, 1980
+.AU
+Bill Joy
+.AB
+This document describes briefly the changes in the Berkeley system
+for the VAX between the distribution of January 1980 (known as 3BSD)
+and this, the fourth distribution, of November 1980.
+It attempts to be summarize, without going into great detail, the
+changes which have been made, and is intended to be used by someone
+who is familiar with the system to quickly re-acclimate themselves to
+the new system.
+.AE
+.SH
+.ce
+.LG
+Major changes
+.SM
+.sp
+.PP
+.IP \s+1\(bu\s0 4
+There is a new format for \fB.o\fR files and also a new archive format.
+Old \fB.o\fR files must be discarded and the programs compiled from the
+source again.  Old archives can be converted to the new format with
+.IR arcv (8),
+but if they contain old \fB.o\fR files they have to be completely
+recreated.  New libraries for the loader \fBmust\fR have a table
+of contents, see
+.IR ranlib (1).
+.IP \s+1\(bu\s0
+The C compiler and associated programs now take arbitrary length names,
+not chopping them off at length 7 or 8.  Other changes in C are described under
+.B cc
+below.
+.IP \s+1\(bu\s0
+There is a new version of the C shell, which supports ``job control'' and
+which uses a new tty driver.  See
+.IR newcsh (1)
+and
+.IR newtty (1)
+for details.
+Programming considerations for the new system mechanisms involved are
+described in
+.IR jobs (3).
+Users of the older
+.B csh
+can use
+.B oldcsh
+until they have time to learn the new features.
+.IP \s+1\(bu\s0
+The standard output (in the standard i/o library) is now line buffered
+by default when the output is a terminal.  So that essentially all
+programs may work without change in the presence of this
+extra buffering, a partial output line is flushed whenever the library
+goes to the system to read from the standard input.
+.IP \s+1\(bu\s0
+A number of performance enhancements have been made.
+Under normal timesharing loads, the system time has been decreased about
+10%.  The changes to the standard i/o library and improvements to the
+character handling routines to terminals have reduced greatly the cost
+of terminal i/o.  The new version of the loader and the addition of table
+of contents to loader archives have speeded up loading of large programs
+by about a factor of 3.  Improvements to the system data structures have
+decreased the time required for most system calls, increasing the amount
+of time available to user programs.
+.IP \s+1\(bu\s0
+A bug has been fixed in the C optimizer which caused incorrect code to
+be generated for the random number generator.  A consequence of this is
+that the
+.B rand
+function in this version of the system produces different sequences.
+Fallout from this is the fact that the secret-mail facility encryption scheme
+is subtly changed by this bug fix.  All users should re-enroll in secretmail
+using
+.B enroll;
+messages sent before re-enrolling can be read using
+.B /usr/old/bin/xget.
+.bp
+.SH
+.LG
+.ce
+Section 1
+.SM
+.sp
+.PP
+This is a brief summary of the changes which have been made in
+section 1 of the manual.
+In general, a number of system maintenance
+commands have been moved to section 8 of the manual as they are of little
+interest to the average user.  In addition, to reduce the bulk of the manual,
+a number of very-closely related commands have been merged together onto
+a single manual page; thus \fBccat\fR, \fBcompact\fR and \fBuncompact\fR,
+which had three separate pages in the last edition of the manual, now have
+only one, and the line printer commands \fBlpr\fB, \fBlpq\fR and \fBlprm\fR
+have been placed on a single page.
+.de BP
+.IP \fB\\$1\\fR 11n
+..
+.BP ac
+Now appears in section 8.
+.BP adb
+Now correctly initializes the maps when debugging the system.
+Control characters are now printed using the \fB^x\fR convention when the
+\fBC\fR output format is used.  The increment for dot in the \fBp\fR
+format is now (correctly) 4.  A previously undocumented command is
+\fB$?\fR, giving the output of \fB$r\fR, preceded by the process
+id and signal stopping the process.  The bug which cause the running
+process to always stop at location 2 when first run has been fixed.
+.BP analyze
+Now appears in section 8.
+.BP ar
+Now creates a new archive format, in which the critical information
+is stored in ASCII, and thus portable between the VAX, PDP\-11, and
+other machines.  See
+.IR old (8)
+for information on dealing with the old format.
+The program
+.IR arcv (8)
+converts old (binary format) archives to new format, in place.
+Beware, however: the format of \fB\.o\fR files has changed, so archives
+of object files must be recompiled (see \fBcc\fR below).
+.BP ar11
+Is now in
+.B /usr/old/bin
+see
+.IR old (8).
+.BP arff
+Is now
+.IR arff (8).
+.BP as
+A new option \fB\-R\fR causes the assembler to make data segments
+read-only and shared; this replaces the cumbersome ``:rofix'' script
+used in the previous distribution.  For very large assemblies there
+is an option \fB\-J\fR which causes the assembler to use four-byte
+jumps to avoid ``Branch too far diagnostics.''  Local labels have been
+added to the assembler defined by ``\fIn\fR:'' and referenced as ``\fIn\fRf''
+or ``\fIn\fRb''; see the assembler manual in volume 2c for details.
+All tables in the assembler have been made extensible so that there should
+be no problems with assembling enormous files.  The assembler has also
+been sped up by 25-40%.
+.BP at
+A number of security problems with the
+.I at
+command have been fixed.
+.BP biff
+Is a new command which can enable immediate notification when
+mail arrives; if you give the command ``biff y'' then the first few
+lines of each piece of mail sent to you is printed on your terminal.
+This is a (different flavor) replacement for the MAIL variable of
+.B sh
+or the mail variable of
+.B csh.
+.BP cat
+New options \fB\-n\fR numbers lines;
+\fB\-s\fR crushes out multiple blank lines, replacing \fBssp\fR;
+\fB\-v\fR prints control characters in the \fB^x\fR format.
+The commands
+.IR num (1)
+and
+.IR see (1)
+now just invoke
+.I cat.
+.BP cc
+A newer version of the C compiler supports more strongly typed structures.
+Field names need not appear in only one structure; rather
+the compiler insists on correct typing of pointers accessing
+structures in contexts where this would cause ambiguity, and producing
+a warning in other cases when the pointer does not have the correct type
+to access the field name.
+.IP
+A new type
+\fBvoid\fR may be used in a declaration or a cast to indicate that there
+is no result, or that a value is to be discarded.
+.IP
+The compiler has been changed to accept arbitrary-length names.
+For maximum portability it is better to limit names to 8 characters,
+7 characters for externals, but this is no longer required.  The longer
+names bring a new \fB\.o\fR format, incorporating a string table, and
+consequently a large number of programs are changed.  The critical ones
+exist in ``old'' versions to ease conversion pains.
+.IP
+A number of bugs in the compiler have been fixed.  To avoid remaining bugs
+in the code generator, the declaration of \fBregister char\fR and
+\fBregister short\fR variables are currently being compiled as though
+the word \fBregister\fR were not present.
+(This does \fBnot\fR affect pointer variables.)
+This blindness is allowed in the semantics
+of the language, and is not as bad as it might seem at first.  It
+is sufficiently difficult to maintain the semantics of C in operating
+on such quantities that the code is often better when they are not placed
+in registers.  This applies to \fBunsigned char\fR and \fBunsigned short\fR
+variables also.
+.BP cd
+The
+.I cd
+command, in
+.IR csh
+is now affected by a
+.I cdpath
+variable which works similarly to the command search
+.I path
+variable; see
+.IR csh (1).
+.BP checknr
+A new command which checks macro bracketing structure in
+.I nroff
+or
+.I troff
+input.
+.BP chgrp
+Has been moved to section 8.
+.BP chown
+Has been moved to section 8.
+.BP cifplot
+Produces raster plots from CIF for integrated circuit designers.
+.BP clri
+Has been moved to section 8.
+.BP colrm
+Has had several bugs fixed.
+.BP cp
+It, along with
+.I mv
+now take
+.B \-i
+flags which cause them to ask before overwriting an existing file; thus
+.B cp
+can be usefully
+\fIalias\fR\|ed
+to ``cp \fB\-i\fR'' when using
+.IR csh (1)
+to provide a safer environment.
+.BP csh
+Has had a number of changes; most importantly, the shell now
+supports ``job control'', allowing arbitration of a terminal
+between several active groups of processes.  See
+.IR newcsh (1)
+for a short description of new
+.I csh
+features.
+Users of
+.I csh
+automatically use the new teletype driver summarized in
+.IR newtty (4).
+(An old version of
+.B csh,
+corresponding to that of the Third Distribution remains available as
+.B oldcsh
+to ease conversion to the new shell.)
+.BP ctags
+Now recognizes FORTRAN and Pascal routine definitions.
+.BP cu
+Is now functional on VADIC dial-out hardware with the necessary
+software to record outgoing calls; see
+.IR rv (4).
+.BP cxref
+Is now the
+.B \-x
+option to
+.B ctags.
+.BP date
+The internal date representation (maintained in the hardware)
+has been changed to be more compatible with the standard
+DEC system VMS, although VMS still poses problems (see \s-2BUGS\s0 in
+.IR date (1)).
+.BP dcheck
+Is now in section 8.
+.BP dd
+Options have been added to do blocking and unblocking of tapes
+without converting to and from EBCDIC.
+.BP ddate
+Is obsoleted by the new
+.B dump
+program, which lives in section 8.
+.BP df
+The output format is greatly improved.  It is now also possible
+to say ``df directory'' to get \fIdf\fR to report the free space
+available on the file system containing \fIdirectory\fR.
+.BP diction
+Is a new program which finds bad or wordy diction.
+.BP diff
+Has new options to give lines of context and to create a merged conditional
+file with ``#ifdef'' controls in it.  The command
+.I diffdir
+has been subsumed into
+.I diff
+and an option has been added to perform recursive directory differences.
+.BP diffdir
+Is now part of
+.I diff.
+.BP dmesg
+Is now in section 8.
+.BP dump
+Is now in section 8.
+.BP dumpdir
+Is now in section 8.
+.BP echo
+The echo builtin to
+.B csh
+now is the same as the standard version 7
+echo.  The special character sequences ``\ec'' and ``\en'' no longer
+have their special meaning; instead the
+.B \-n
+option is accepted.
+.BP ef\&l
+Is a new FORTRAN preprocessor, providing C-like features.
+.BP error
+Is a new program which consumes error message output from
+language and other processors, analyzes them and (optionally)
+places appropriate diagnostics back into source files near the point of error.
+.BP ex
+A number of bug fixes and a few new features are available.
+See the incremental change report in volume 2c or read the file
+.I /usr/news/ex.
+.BP expand
+Now has a companion
+.I unexpand
+command, reversing its effect.
+.BP f\&lcopy
+Is now in section 8.
+.BP from
+Now takes a
+.B \-s
+option, printing only headers from the sender who is the next argument.
+.BP gets
+Is obsolete; use ``$<'' of
+.IR csh (1)
+or
+.I read
+of
+.IR sh (1)
+instead.
+.BP grep
+The
+.B \-i
+option now works with
+.I fgrep;
+several subtle bugs have been fixed in
+its algorithm.
+.BP iostat
+Now has a single output format which includes character i/o rates,
+seeks and transfers per second on each disk.
+.BP kill
+Is now built-in to
+.IR csh
+and take job names ``%...'' as arguments.  This eliminates
+much of the need to know process id's when using
+.I kill.
+It also takes symbolic as well as numeric signal names; do
+``kill \-l'' (lower case letter l as in lark) to see a list.
+.BP ld
+Has been speeded up substantially; several new options have
+been added providing incremental loading (\fB\-A\fR), primitive load maps
+(\fB\-M\fR) and symbol def/use tracing (\fB\-y\fR).
+The loader now supports archives with
+table of contents, and expects all archives it encounters to have
+them (or it complains); see
+.IR ranlib (1).
+.BP lisp
+The lisp interpreter has begun to support new ``string'' and
+``hunk'' data types.  A user must now type vertical bars to delimit
+atoms with embedded white space, as double quotes (") now delimit
+strings.
+The interpreter has benefitted from in-line expansion of 
+frequently called small routines, and will interpret
+list structure 20% more quickly than before.
+A perusal of the index to the lisp manual
+in Volume 2c will show more new functions which Franz has in common with
+\s-2MACLISP\s0.
+.BP liszt
+The quality of the code produced by
+.I liszt
+is substantially better than the previous version;
+.I liszt
+also now provides macros for UCI lisp compatibility as well
+as Maclisp compatibility, and a facility for constructing a cross-reference
+with
+.IR lxref (1).
+.BP ln
+Now subsumes
+.I lnall
+when given multiple arguments.
+.BP ls
+Has new options \fB\-R\fR for a directory-recursive version, \fB\-F\fR
+to highlight directories and executable files, and now indicates
+.IR mpx (2)
+files in long format outputs with first output character \fBm\fR.
+.BP lxref
+Is a new lisp cross referencing program.
+.BP mail
+All mail is now forwarded through the facilities of
+.IR delivermail (8)
+using the mail aliases data bases in the file
+.I /usr/lib/aliases
+whose format is described in
+.IR aliases (5).
+Gateways to UUCP, ARPA and Berknet machines are provided, with
+normal naming conventions, i.e.: ``name@site'' for the ARPANET,
+``machine!name'' for UUCP, and ``machine:name'' for the Berknet.
+Personal distribution lists created and placed in the file
+.I \&.mailrc
+are now expanded in sent mail so that the recipient can reply
+to members of personal aliases.  Systemwide aliases contained in the
+``aliases'' file are applied to
+.I all
+incoming mail; this allows correct functioning when reply is made to
+a mailing list, which was not expanded to its constituents when the
+mail was first sent.
+.BP make
+Now understands about Pascal files, running
+.IR pc
+using the options
+PCFLAGS.
+A number of limitations have been removed to allow very large
+programs to be controlled.
+.BP makewhatis
+.br
+Has been replaced by
+.IR catman (8).
+.BP man
+Now interfaces with a preformatted version of the manual; this allows
+the manual to be presented much more quickly.  The preformatted manual
+is maintained automatically; when pages are changed and then requested
+they are reformatted.  The
+.IR catman (8)
+command can be used to reformat all manual pages whose preformatted
+sections are out of date.
+.BP mkfs
+Is now in section 8.
+.BP mknod
+Is now in section 8.
+.BP more
+Has been improved, providing more commands and has also been changed to be
+more (sic) similar to
+.IR ex (1).
+A new interface
+.I page
+is like
+.I more,
+but clears the screen before presenting each pageful.
+.BP mount
+Is now in section 8.
+.BP msgs
+Now provides options for saving messages in files and responding to messages.
+There is also an option (\fB\-p\fR) to arrange that long messages be piped
+through
+.IR more (1).
+.BP ncheck
+Is now in section 8.
+.BP newaliases
+Rebuilds the random access version of the mail forwarding database.
+After you edit the file
+/usr/lib/aliases which contains
+the forwarding information, you must run
+.B newaliases.
+.BP nm
+No longer prints symbols destined for
+.IR sdb (1)
+by default.  Instead, when the
+.B \-a
+option is given, they are printed symbolically
+(rather than in octal as before.)
+.BP pc
+Is a new Pascal compiler, which allows separate compilation and mixing
+of Pascal code with routines written in C and FORTRAN.  It is
+possible to use
+.IR sdb (1)
+with Pascal routines, and all standard language features, including
+procedure and function parameters are implemented.
+.BP pi
+Has had some options changed so that 
+they are similar to
+\fIpc\fR\|'s options
+(since the latter is constrained by the demands of compatibility with
+.IR cc (1)
+and
+.IR ld (1)).
+.BP pr
+Now has an option \fB\-f\fR to use form-feeds in the output rather
+than multiple blank lines to eject pages.
+This can be used for greater top-of-form alignment reliability on
+unreliable printers or to reduce bulk of the output.
+.BP prof
+Now suppresses routines which were never called and which accumulated no
+time.  An option to sort the output by number of calls has been provided.
+.I Prof
+can also combine the statistics from a number of saved monitor data
+files in a single output report, producing a new summary data file.
+.BP ps
+The formats for
+.B ps
+have been improved to include more information about job state in all
+output formats, and cpu and memory consumption by jobs
+(in the \fBu\fR and \fBv\fR output formats.)
+.BP pwd
+Is superseded for
+.IR csh (1)
+users by
+.I dirs,
+which is built-in and significantly faster.
+.BP ranlib
+Is used to create loader table-of-contents for loader archives.
+The loader insists that such table-of-contents exist or it complains,
+as loading is very slow without these indices.
+.BP renice
+Is now in section 8.
+.BP restor
+Is now in section 8.
+.BP sdb
+Now knows about Pascal as well as C and FORTRAN 77.
+.BP spice
+Is no longer part of this distribution, and must be obtained separately.
+.BP stty
+Now has options to control the features of the new tty driver,
+summarized in
+.IR newtty (4)
+and fully described in
+.IR tty (4).
+In particular, it is often desirable, when using the new driver with
+.IR csh (1)
+to place the command
+``stty crt'' in the
+.I \&.login
+file to cause control characters to echo legibly and intelligent
+erasing of characters from the screen to take place except at very
+low speed.
+.BP style
+Is a new command, which analzes the style in which a paper is written.
+.BP sync
+Is now in section 8.
+.BP tail
+Now has a
+.B \-f
+option which follows a file as it grows, replacing
+.B tra,
+and a
+.B \-r
+option, which prints out the last part of a file backwards, line by line.
+.BP tar
+Now normally saves and (optionally) restores modes of directories.
+It also uses the raw tape drive by default, so the file option
+is not normally needed.
+.BP tp
+Has been fixed to work with the tape drive as it should.
+.BP tra
+Has been deleted; use ``tail \-f'' instead.
+.BP tset
+Has a more general scheme for mapping non-hardwired terminals to types.
+The command used in startup files to set the terminal type can now be
+simpler; see
+.IR tset (1)
+for details.
+.BP ul
+Subsumes the old ``iul'' command as the option \fB\-i\fR.
+.BP units
+Currency tables have been updated.
+.BP uuencode
+Along with
+.I uudecode
+provide the ability to mail binary files through
+.I uucp
+or other mail facilities.
+.BP vmstat
+The format has been changed to include statistics on the rate of system
+calls, context switches and device interrupts.  The format also includes
+information about page-cache hits (pages of programs which recently exited
+which were found lying in the free list.)  See
+.IR vmstat (8)
+for more details.
+.BP vpac
+Is now in section 8.
+.BP wc
+Now will estimate transmission times over communications networks.
+.BP yes
+A new command, which is excessively obsequious.
+.SH
+.LG
+.ce
+Section 2.
+.SM
+.sp
+.PP
+The important changes to section 2 define the mechanisms needed to
+support the job control facilities of
+.IR csh (2)
+defining new system calls
+.B getpgrp,
+.B killpg,
+.B setpgrp
+and providing a version of the
+.B signal
+system call interface with clean semantics; this is described in
+.IR sigsys (2).
+For a general introduction to the new job control facilities from
+a programming standpoint see
+.IR jobs (3).
+.PP
+The system calls in section 2 have been identified as to origin:
+those in section 2V are peculiar to the VAX Virtual Memory version of
+the system.  Some of these (e.g.
+.B vread
+and
+.B vwrite
+which are likely to change soon are so marked.)
+Calls resulting from the job control facilities are in subsection 2J.
+.BP getpgrp
+Is a new system call, which returns the process group of a specified process.
+.BP ioctl
+There is a new
+.I ioctl
+call FIONREAD which returns the number of characters immediately
+available from any readable file descriptor, most usefully terminals.
+.BP killpg
+Kills all processes in a process group
+.BP reboot
+Is used to halt the processor or initiate automatic reboots.
+.BP setpgrp
+Changes the process group of a specified process.
+.BP sigsys
+There are more signals, needed by the new job control and limit facilities.
+This is the new signal interface, which can be setup to handle signals
+reliably, blocking them off when they occur so that they can't happen
+again before they can be reset and also allowing them to be blocked,
+but not lost if they occur (protecting critical sections.)
+.BP vadvise
+Allows processes with very abnormal paging behavior to advise the system
+so that it can have a better chance of dealing with their virtual
+memory needs.
+.BP vhangup
+Is used to simulate hangups on hard-wired ports and to prevent other
+users processes from scribbling on a terminal after they log off.
+.BP vlimit
+Is used to provide the resource limiting
+.I limit
+facility of
+.IR csh (1)
+which allows the amount of CPU time or memory used by any process to be
+controlled, as well as the maximum size of a file created, maximum
+size of a core file created, etc.
+.BP vswapon
+Is used to inform the system that it should use the interleaved portions
+of the paging area, since at boot it normally uses only that portion
+of the paging area adjacent to the root file system.
+.BP vtimes
+Provides additional virtual memory information as well as the
+traditional information provided by
+.B times.
+.BP wait3
+Provides options which allow return of
+.B vtimes
+like information about the virtual memory utilization of terminated
+processes as well as allowing one to determine if any children have
+changed state without blocking if none have.
+.SH
+.LG
+.ce
+Section 3
+.SM
+.sp
+.PP
+The major change to the standardly available library routines is in the
+standard i/o library handling of the standard output.  The standard output
+is now line buffered by default when it is directed to a terminal.
+In order that old programs which do terminal i/o continue
+to work (in almost every case) without change, the standard i/o library
+flushes a partial line in the standard output buffer whenever a read
+is made from the standard input.
+.BP curses
+Is a new library of routines to do terminal independent cursor motions.
+This is a higher level set of routines based on the low level
+.IR termcap (3).
+.BP dbm
+Has been changed to use 1024 byte blocks internally.  If you have old data
+files and recompile a program which uses
+.B dbm
+on them, you must recreate the files in the new format.
+.BP getfsent
+Is a new package of routines for locating entries in the file system
+information file,
+.B /etc/fstab.
+.BP jobs
+Is a descriptive page on use of the new job control facilities.
+.BP malloc
+Hasn't been changed yet (unfortunately), but we have discovered that
+it has extremely poor behavior if used to allocate a large number
+of blocks in a large virtual address space, as it tends to
+page fault on a large number of pages whenever you allocate more
+storage when the free list is nearly empty.  Very large applications
+should write their own free storage management routines based on
+.IR sbrk (2)
+until a new version of
+.B malloc
+is ready.
+.BP nlist
+The namelist has been changed to embed a string table. 
+The definition of the namelist in
+.B <a.out.h>
+now includes a \fBunion\fR construction which the C compiler will not
+let you initialize.  Thus if you wish to use
+.B nlist
+you should use
+.B <nlist.h>
+instead of
+.B <a.out.h>
+as it doesn't include a \fBunion\fR construction and initializations of
+\fBstruct nlist\fR objects are thus possible.
+.BP rand
+Generates different sequences,
+due to a bug fix in the C optimizer (i.e. the old routine was
+flaked out due to the bug.)
+.BP regex
+Is a new library routine which allows compilation and execution of
+.BR ed -like
+regular expressions.
+.BP stdio
+Has been changed to have line buffered standard output to terminals by
+default (as described above).
+.BP sigset
+Is the user-level interface to the new signal facilities, providing
+reliable and convenient handling of signals.
+.BP string
+The routines \fBstrcatn\fR \fBstrcpyn\fR and \fBstrcmpn\fR are now
+decreed to be spelled \fBstrncat\fR, \fBstrncpy\fR and \fBstrncmp\fR
+in the official version (to be compatible, e.g., with PDP-11 UNIX),
+but both versions still exist (temporarily).
+.BP termcap
+Is the new name for the previously misnamed \fBtermlib\fR library.
+.SH
+.LG
+.ce
+Section 4
+.SM
+.sp
+.PP
+The system now supports additional i/o disciplines and devices:
+.BP bk
+A ``line discipline'' which allows efficient, high-speed, input
+for uploading of programs and networking over asynchronous
+communications lines.
+.BP dh
+Abel DMAX-11 dh emulators.
+.BP hp
+Includes RM-05 support (including the SI MASSBUS disks).
+.BP lp
+A driver for a standard lineprinter interface.
+.BP rv
+Racal/vadic call units (via user-software simulation of a dn-11).
+.BP tm
+Support for UNIBUS TM/11 tape drives (e.g. Kennedy transport
+on a Emulex controller.)
+.BP tty
+Includes a new tty driver which is standard for users of
+.IR csh (1)
+providing additional functionality.
+.BP up
+A driver for a EMULEX SC-11 or SC-21 UNIBUS disk controller
+with storage module (e.g. Ampex 9300) disk drives.
+.BP va
+A varian raster plotter.
+.SH
+.LG
+.ce
+Section 5
+.SM
+.sp
+.PP
+The changes impacting most users are the new archive and object file
+formats.  The new object file format requires recompilation of all
+\fB\&.o\fR files, as the new format includes a string table for names
+while the old table had only fixed space for 8 character names.
+The new archive format is portable, and can be easily converted to
+using
+.IR arcv (8).
+.BP a.out
+Now includes a string table.  New macros are provided for dealing
+with executable files, and the names of the headers and the include
+files have been changed.  You should read this section if you have
+programs which work with the bits in these files.
+.BP acct
+The system now maintains all the information fields in this file.
+.BP aliases
+This file gives forwarding information for mail.
+The
+.B delivermail
+utility, which is invoked by the mail handlers, uses this information
+to forward mail and to implement distribution groups.  The program
+.B newaliases
+must be run whenever this file is edited, since the
+.B delivermail
+program actually uses a binary version of this file.
+.BP ar
+Now uses a portable format.  Old formats may be converted using
+.IR arcv (8),
+although converting old loader archives is pointless, since the \fB.o\fR
+files must be regenerated anyways.
+.BP core
+The maximum size of a core file can now be limited with
+.I limit
+of
+.IR csh (1)
+or by calling the system call
+.B vlimit.
+.BP environ
+Has acquired a USER variable with the login name of the user.
+.BP fstab
+Is a new data structure, kept in the file
+.B /etc/fstab;
+it greatly simplifies the system startup script
+.B /etc/rc,
+the interface of the dump program, and is a central
+figure in the automatic reboot procedure.  It is possible
+to reconfigure the disk drives simply by changing this data base.
+No file system dependent commands need appear in
+.B /etc/rc.
+.BP stab
+Describes the symbol table entries for the symbolic debugger which
+appear in \fBa.out\fR files.
+.BP termcap
+Has been changed to describe even more terminals and functions.
+.BP ttytype
+The standard naming for terminals in this file is now to give long names;
+thus dialups should be described as ``dialup'', not as ``sd'' like before.
+.BP vfont
+There are now rotated versions of all the fonts for use on output devices
+which run 11 by 8.5 inch (sideways) paper.  The Hershey fonts have been
+extensively edited to fix problems and fill in missing and mangled characters.
+.SH
+.LG
+.ce
+Section 6
+.SM
+.sp
+.PP
+There are a number of new games, including the popular ZORK game
+as well as more mindless and more popular games, such as \fBsnake\fR,
+and human-humiliating games such as \fBboggle\fR.
+.BP aardvark
+Is one of several dungeon-exploration games.
+.BP boggle
+Is an implementation of the Parker-Brothers game, in which you
+and the computer look for words and you are humiliated by the computer.
+.BP chess
+Is the PDP-11 chess program running in compatibility mode.
+.BP cribbage
+Is a respectably good cribbage player.
+.BP fish
+Plays \*(lqGo Fish\*(rq.
+.BP fortune
+Has been refreshed with new and interesting quotations
+and fancy-pants options.
+.BP mille
+Is an implementation of the French card game, Mille-Bourne.
+.BP monop
+Is the game of monopoly.
+.BP mpu
+Is another exploration game.
+.BP snake
+Is a mindless game in which the computer chases you around the screen and,
+usually, ends up eating you.
+.BP zork
+Is the classic successor to adventure for die-hard explorers.
+.br
+.ne 10
+.SH
+.LG
+.ce
+Section 7
+.SM
+.sp
+.BP hier
+Has been updated to reflect changes in this distribution.
+.SH
+.LG
+.ce
+Section 8
+.SM
+.NL
+.sp
+.PP
+There is a major organizational change in section 8: the maintenance
+commands have been moved here from what was section 1m (which no longer
+exists) and have also (almost all) been moved into the directory
+.B /etc.
+.PP
+The procedures for system reboot have been substantially changed.  The system
+now has provisions for automatic reboot and file system repair after a crash.
+The system has been changed so that the disks are kept more consistent,
+so that the repair program can easily tell whether the inconsistencies
+it finds are simple and reasonable to fix.  If it finds unexpected
+inconsistencies, then the automatic reboot will fail and the new
+.I fsck
+interactive repair program can be run.
+.BP adduser
+There is now a shell procedure
+.B vipw
+which locks the password file for editing, so that you can't get messed
+up by people changing their password while you are adding users.
+.BP arcv
+Converts to the new archive format (as discussed previously.)
+.BP bproc
+Is defunct; see
+.B reboot
+which replaces it.
+.BP catman
+Is a new command, which creates the preformatted version of the on-line
+manual from the nroff source for the manual pages.
+It also creates the data base for
+.IR whatis (1)
+.B /usr/lib/whatis,
+replacing
+.B makewhatis.
+.BP crash
+At the point of a system crash, the system now will automatically
+reboot itself if the auto-reboot switch on the machine is set, print
+the registers and the top few locations of the stack, and
+will then normally ``preen'' the file systems and come up multiple user again.
+The system does not (yet) automatically dump core to disk when a crash
+occurs, so the procedures described in
+.B crash
+are still used to take a crash dump; in order to get one, you have
+to be running with auto-reboot disabled when the crash occurs.
+Note that you must now use \fBdd\fR to copy crash tapes, as the
+tapes are blocked ``bs=20b''.
+.BP cron
+Now runs the executed commands as
+.B root;
+before it ran them as
+.B daemon
+which kept a number of reasonable
+.B crontab
+entries from working properly.
+.BP dcheck
+Is obsoleted, in all normal usage, by
+.IR fsck (8).
+.BP delivermail
+.br
+Is a new daemon which acts as a postman and routes mail destined
+for foreign networks.  It also interprets distribution, forwarding
+and alias lists from the file
+.B /usr/lib/aliases,
+which replaces the function only partially performed previously in
+.B /usr/lib/Mail.rc.
+.BP dump
+The dump program now is much more robust.  It restarts after bad tapes
+are encountered, and will keep a selected group of operators informed
+about what it is doing.  A
+.B dumpdates
+file which is kept in ASCII replaces the old binary format
+.B ddates
+file, making it easy to edit.
+.B Dump
+uses the new
+.B fstab
+file system table which records the desired frequency of dumps, and a
+new option \fBw\fR will tell the operators what needs to be dumped.
+.BP flcopy
+Has a new option \fB\-h\fR to start halfway through, writing a disk
+from an existing
+.B floppy
+file without reading the disk.
+.BP fsck
+Is a new, intelligent, interactive file system check program.
+It is normally run automatically at reboot with the option \fB\-p\fR
+to preen all the file systems and fix normal minor incomplete operations.
+If any unexpected problems arise, the automatic reboot will fail and
+.B fsck
+should be run manually.  There is a document explaining the use of
+.B fsck
+and all the errors which can occur in standard UNIX systems.  Most
+errors are prohibited from happening in this version of the system
+unless there is hardware or software failure;
+.B fsck
+was designed with adversity in mind to deal with these exceptional cases
+and is very easy to use to fix up addled file systems.
+.BP getty
+Is the new name for the old \fBgetty.vm\fR.
+.BP halt
+Halts the processor cleanly when no reboot is desired, regardless
+of the setting of the auto-reboot switch on the machine.
+.BP icheck
+Is largely replaced by
+.B fsck.
+.BP init
+Now understands how to initiate an automatic reboot.  When passed appropriate
+information as parameter at boot time, it will immediately run
+.B /etc/rc
+with parameter
+.B autoboot,
+causing it to run a disk check.
+If
+.B /etc/rc
+exits with a non-zero exit status, the reboot we be considered a failure,
+and a single user shell is given to the console as before.
+The form of
+.B /etc/rc
+is such that interrupting the automatic reboot also yields a single-user
+shell on the console.
+.B Init
+has also been fixed so that ``kill 1'' attempting to bring the system
+down single user will not hang irretrievably if some processes refuse
+to die because of hardware or software malfunction.  Instead,
+.B init
+gives a single user shell and a warning that something is amiss.
+.BP mkfs
+It is critical that all newly created file systems have
+.B lost+found
+directories as created by...
+.BP mklost+found
+.br
+Which creates empty directories into which
+.B fsck
+places detached files which it reconnects.
+.BP mount
+Now takes an option \fB\-a\fR to mount all normally mounted
+file systems as specified in
+.B /etc/fstab.
+.BP ncheck
+Is obsoleted in normal usage by
+.B fsck.
+.BP old
+Is a front for a number of old commands dealing with old formats
+for \fB.o\fR files and archives.  These commands are kept in
+.B /usr/old
+and its subdirectories and can be used to keep your sanity until
+you have time to convert your programs to the new formats.
+.BP reboot
+Describes the new reboot procedures, based largely on the automatic
+reboot facility.  Also describes the cold-start and emergency-start
+procedures (which came from the old
+.B bproc
+manual page.)
+.BP sticky
+The system has been changed so that text pages of processes which have exited
+are retained in the free page pool in core (at least for a while), so
+that they will not have to be read from the disk again if they are needed
+quickly.  This tends to make heavily used commands behave much as
+.B sticky
+was intended to make them behave on swap based systems.
+.BP swapon
+The system supports paging interleaved across disks and controllers, but
+bootstraps running only on one disk.  This command makes the additional
+pieces of the paging area available.
+.BP umount
+Now takes a \fB\-a\fR option, to attempt to unmount all file systems
+mentioned in
+.B fstab.
+.BP vipw
+Is a new script which lock the password file while editing it.
+If the password file is being changed (e.g. by the
+.IR passwd (1)
+command), then
+.B vipw
+complains, and avoid the race condition.
+
diff --git a/usr/man/man0/changes.4-81 b/usr/man/man0/changes.4-81
new file mode 100644 (file)
index 0000000..56e6b34
--- /dev/null
@@ -0,0 +1,808 @@
+.de IR
+\fI\\$1\fR\\$2\\fR\\fR
+..
+.TL
+Bug fixes and changes in 4.1bsd
+.sp
+May 10, 1981
+.AU
+Bill Joy
+.AI
+Computer Systems Research Group
+.AB
+This document describes briefly the changes in the Berkeley system
+for the VAX between the fourth distribution of November 1980 (known originally
+as 4BSD, and hereinafter referred to as 4.0bsd)
+and this, its revision of April 1981.
+It attempts to be summarize, without going into great detail, the
+changes which have been made.
+.AE
+.SH
+.ce
+.LG
+Notable improvements
+.SM
+.sp
+.IP \s+1\(bu\s0
+Performance of the system under heavy paging load has been substantially
+improved by correcting a problem with placement of pre-paged pages.
+The system now pre-pages more data, greatly benefitting processes which
+have locality in their behavior.  System degradation due to pre-paging has
+been reduced (even though more pre-paging is done), by placing the pre-paged
+pages as the bottom of the free-list, rather than in the systems global
+clock replacement loop.
+.IP \s+1\(bu\s0
+Processes which serially reference large amounts of virtual memory
+may now declare themselves to be sequential (see
+.IR vadvise (2)),
+causing the paging algorithm to be adjusted to be more appropriate for
+such behavior.*
+.FS
+* Future versions of the system will detect strongly sequential behavior
+and adapt themselves accordingly, so this call will no longer be necessary.
+.FE
+Processes which are known to need only a small amount of memory, but
+which tend to accumulate large amounts of memory due to strange page
+referencing patterns may declare a soft limit on the amount of memory
+to be used, see
+.IR vlimit (2)
+or do ``limit memoryuse \fIn\fR\|k'' in
+.IR csh (1).
+If the system needs memory, and there are processes which are over their
+declared limits, the system tends to take pages from these processes first.
+By saying that these limits are soft, we mean that on a system where
+physical memory is not scarce, processes with limits can still acquire as much
+physical memory as they require.
+.IP \s+1\(bu\s0
+The system is now compiled from a description of the local machine
+which includes information about available devices and the maximum
+number of users to be supported on the system.  It is no longer
+necessary to adjust an armful of constants to re-size the system; normal
+time-sharing systems are parameterized from a single ``maxusers'' constant.
+The system also adjusts the parameters of the paging subsystem based
+on available memory; it is no longer necessary to adjust these for machines
+with very small or very large amounts of available memory.
+.IP \s+1\(bu\s0
+The system now handles multiple uba's and mba's and mixing of devices
+on mba's.  A number of new devices are supported: RK07's and TS-11's
+which come in the standard 11/750 packages, UNIBUS TM-11 tape emulators
+(e.g. the EMULEX TC-11 with a KENNEDY 9300 transport).  Line printer
+and C/A/T phototypesetter drivers are included in the system, and
+modem control for the DH-11 using the DM-11 has been integrated and
+tested.  The new RM-80 Winchester drive from DEC is supported.
+Notably unsupported are the 11/750 console casettes.
+A single distribution system boots on all supported hardware configurations
+by determining the available devices and selecting a root device at boot
+time.
+.IP \s+1\(bu\s0
+The \fItar\fR program has been changed to allow update of
+magnetic tape archives, adding to the end of the existing tape
+archive.  This uses tape control facilities newly added in this
+version of the system, but the created tapes are readable on
+all versions of UNIX.  Since blocked tapes are inherently more
+efficient and fully functional, \fItar\fR now creates blocked tapes by default.
+.IP \s+1\(bu\s0
+Shell scripts are now potentially executable.  A file which begins
+with the characters ``#!'' followed by some amount of white space
+and the name of an interpreter is executed directly by the system.
+The standard version 7 shell, /bin/sh, has been changed to recognize
+a # as a comment character.  It is desirable that users change
+existing shell script so that the first line of each shell script
+begins with ``#!'' and the name of the proper shell to execute.
+.IP \s+1\(bu\s0
+Two new documents have been added to Volume 2c: a manual for the
+crt screen package \fB\-lcurses\fR, and a document describing the
+\fBrogue\fR game.
+.br
+.ne 10
+.LP
+.LP
+.ce
+.LG
+.B "Major bug fixes"
+.SM
+.sp
+.IP \s+1\(bu\s0
+A number of bugs have been fixed in the FORTRAN compiler F77;
+these caused some block data routiens and main programs to fail to compile.
+Other bugs related to use of the symbolic debugger with FORTRAN
+have been fixed (see \fBf77\fR in ``Section 1'' below.)
+.IP \s+1\(bu\s0
+A bug which caused the C compiler to complain ``expression too complicated''
+when an expression contained an embedded structure assignment has been fixed.
+.IP \s+1\(bu\s0
+A kernel bug which caused approximately 1/8'th of data collected during
+program profiling to be lost has been corrected.
+.IP \s+1\(bu\s0
+A very confusing bug in the \fItset\fR manual page has been corrected:
+in the example where it uses the \fIsetenv\fR command it should rather
+use the \fIset\fR command: ``set noglob; eval ...''.  The alternate
+form does not work on a number of terminals.
+.IP \s+1\(bu\s0 4
+Due to a inconsistency between the 11/780 and the 11/750 in the
+interpretation of the \fBmovtuc\fR instruction, all binaries from
+the third distribution tape (of January 1980) and the fourth
+distribution tape (of November 1980) will NOT run correctly on
+the 11/750.  The 4.1bsd distribution tape includes a new
+version of the standard i/o
+library which avoids use of this troublesome instruction, and it
+is recommended that all programs be recompiled from scratch to use
+this new library to eliminate non-portable UNIX binaries as soon
+as possible.
+.IP
+The problem is that when there appears to be a chance that the operands
+to \fBmovtuc\fR will overlap, but they in fact do not (because the
+pattern string to printf is terminated by a null), the 11/750 does
+not execute the \fBmovtuc\fR as though a shorter string length
+were specified which did not imply potential overlap.  Thus this
+instruction which is in the inner loop of \fIprintf\fR on the 4bsd
+tape, and which works fine on an 11/780, malfunctions on an 11/750
+causing strange and awful behavior.
+.IP \s+1\(bu\s0 4
+(The following change is applicable only to systems bootstrapped
+from the 4.1bsd release tape; systems upgraded from 4.0bsd may
+or may not include this change.)
+The standard i/o library has been made more compatible with the PDP-11
+version 7 system and now supports concurrent read and write access
+to files (see
+.IR fopen (3s)
+for details).
+This caused a change in an internal data structure which is visible
+to compiled programs through the macros in <stdio.h>, and thus
+necessitates discarding of old \fB.o\fR files and recompilation.
+Note that this standard i/o library now replaces the old \fB\-lNS\fR
+library which was in 3bsd but was deleted from 4bsd pending the
+inclusion of read-write capability in stdio.  
+.SH
+.LG
+.ce
+Section 1
+.SM
+.sp
+.PP
+.de BP
+.IP \fB\\$1\\fR 11n
+..
+.BP adb
+A bug which prevented programs loaded with the \fB\-N\fR loader
+option from having breakpoints set on them has been fixed.
+A bug which prevented backtraces of programs which are stopped
+at interrupt level (after a signal) has been fixed by teaching
+adb how to step across the interrupt stack frame.
+The system now makes available and the $? command in adb interprets
+more precise codes when SIGILL and SIGFPE exceptions occur.
+Thus if you divide by zero, you can find out that this was what
+caused a floating point exception.
+A bug which prevented format
+repetition counts (e.g. the 10 in ``0/10X'') from working
+has been fixed.
+A bug related to adb has been fixed that prevented any sensible
+traceback after a FORTRAN-77 runtime error which trapped
+an exception or fault (e.g. a floating point divide by 0).
+A bug which caused the maps to be set improperly when debugging
+the kernel on a crash dump has been fixed.
+.IP
+New commands have been added to adb to facilitate writing adb procedures
+stored in files:  see the descriptions of $<<, the register <9,
+and the # operator in the revised adb manual page.
+.BP awk
+Has moved from /usr/bin to /bin because it is needed during
+bootstrap procedures.
+.BP bc
+Now takes the new C syntax operators: ``=op'' as well as
+(for history's sake) the old syntax ``op=''.
+.BP calendar
+Several bugs have been fixed in the internals of the calendar program.
+In addition it is now possible to have a calendar entry consisting
+of merely a date (with no month specified) and have this entry occur
+each month.
+.BP cc
+A bug has been fixed in the C optimizer which caused strange
+things to happen when long variable names were used.
+The size of the internal ``dimension'' table has been increased
+to allow more structure fields to be declared.
+A problem which caused the compiler to print ``expression causes
+compiler loop'' when structure assignment was embedded in an
+expression context has been fixed.  A bug in the code generator
+tables which affected certain FORTRAN constructs has also been fixed.
+.BP checknr
+Es versteht \fB\-mm\fR.
+.BP csh
+A cosmetic bug which prevented the distributed source from compiling
+has been fixed.  A bug which caused argument lists including the strings
+``{'' or ``{}'' to sometimes fail saying ``No match'' has been fixed.
+A bug which caused a strange state to result when a command of the
+form ``(a; b; c)'' was stopped from the keyboard has been fixed.
+The shell has been fixed so that it prefers to make stopped jobs
+the new current jobs after the current job has terminated.
+The construct ``${TERM}'' no longer yields an extra ``}''
+when the variable expanded is from the environment.
+.IP
+Previously undocumented was the shell variable \fIhistchars\fR;
+it can be set to two characters, and the first is then a replacement
+for the normal \fB!\fR history character and the second for the \fB^\fR
+quick history substitution character.  Thus after ``set histchars=,;''
+the command ``,,'' repeats the previous command, as ``!!'' would normally
+have done.
+.BP ctags
+Now takes an option
+.B \-v
+to produce output suitable for input to
+.IR vgrind (1).
+.BP cu
+Now honors uucp's locking protocol for the dialout lines.
+Several bugs relating to internal buffer overruns have been fixed.
+An option \fB\-b\fR has been added which causes the BREAK key
+to generate breaks (by turning input null characters into breaks
+sent over the line).
+.BP delivermail
+.br
+Some bugs which caused strange loops when aliases were self-referential
+have been fixed.
+.BP diff
+Some bugs related to directory diffs when the
+.B \-h
+option was used have been fixed; previously the
+.B \-h
+option was non-functional.
+.BP dump
+An obnoxious bug in the dump program where it would wrongly
+suggest that further dump tapes were needed after a multi-tape
+dump had already completed has been fixed.  The dump program
+no longer attempts to time tape rewinds itself, but uses
+a mechanism which does not depend on the speed of the tape
+drive to determine when a rewind is complete.
+.BP error
+Has been taught about the error message formats of the
+PDP-11 C compiler.
+.BP expand
+A internal error check which was incorrect has been fixed.
+.BP f77
+Has had a bug fixed which caused some block data subroutines
+and main programs to not compile (the sympton was a diagnostic of
+the form ``Undefined: LWM%d''.  A number of minor bugs which
+combined to make sdb function poorly with f77 have been fixed.
+The result of these bugs were that if file names were longer
+than 6 characters sdb could not read the symbol table of the
+resulting FORTRAN binary.
+.IP
+An i/o library bug which caused numbers of the form ``-1.2''
+to convert improperly in list-directed input (reading as ``-0.8'',
+taking the mantissa as positive) has been fixed.
+.BP ld
+If you are using the \fB\-r\fR flag and there remain undefined symbols
+you no longer get a spurious error return.  Now respects modes of existing
+files and your file-creation mask more.
+.BP lisp
+The functions +, /, -, *, 1+, 1- now expect fixnum arguments,
+for interpreted functons as well as compiled ones.  The source
+for the VMS and UNIX versions of lisp have been combined and
+synchronized.  The construction of very large integers has
+been altered to use regular dotted pairs in a non-standard
+way, so that fewer garbage collections will occur.  (It is no
+longer safe to use ``car'' and ``cdr'' to disect large
+integers).  Mixed-mode arithmetic has been made faster.
+There is a new compiler option (liszt -r) which allows
+you to create
+.B small
+lisp application programs (with a mechanism other than
+``dumplisp'', which tends to create very large binaries).
+When the result of
+such a compilation is executed directly, it execs /usr/ucb/lisp
+and then fast loads the file you asked to be executed.
+A new flag $ldprint has been added to control the printing
+of fasl/load messages.
+New functions (purecopy), (getdata), (putdata),
+and (removeaddress) have been added.
+A number of minor bugs have been fixed.
+.BP lpr
+Has been modified to work on both DECWRITER type devices
+at 1200 baud masquerading as printers and also on real line
+printers.  The queueing algorithm has been made first-come-first-serve
+(replacing the old random job first algorithm), and a line
+printer driver is now available in the standard distributed system.
+.BP ls
+A bug has been fixed which caused essentially random numbers to
+be printed for the size of special files.  The size now prints as 0.
+.BP make
+A spelling error has been fixed which had the variable EC initialized
+to f77 rather than FC=f77.
+.BP man
+A bug which caused it to core dump when reformatting a manual page
+whose source macros were inaccessible has been fixed.
+.BP mt
+Is a new command
+which provides easy access to operations such as forward and backward spacing
+of files and records on magnetic tape.
+.BP mv
+Has been changed to have a option ``\fB\-\fR'' which means that
+all the following arguments are file names.  A bug has been fixed
+which caused strange behaviour when the \fB\-i\fR option was used
+on directories.
+A bug which prevented renaming of subdirectories to which you had no
+write access has been fixed.
+.BP oldcsh
+Which was non-functional due to a change in a internal library
+interface which it had taken advantage of has been fixed to work.
+.BP od
+New options \fBO\fR, \fBX\fR, and \fBD\fR print 32 bit integers
+in octal hex and decimal format; an option \fBw\fR has been
+added to cause 132 column output rather than the default 80 column
+oriented output.
+.BP pc/pi
+A number of bugs in the sdb symbol table produced have been fixed.
+Structured types may now exceed 65k bytes in size, but in that case
+may not be passed by value nor assigned by simple assignment.
+Structured types are properly returned from recursive functions.
+Minor bugs in passing function parameters have been fixed, and
+there still exist some more minor bugs here.
+Runtime tests can be now be enabled or disabled on a per routine basis.
+Runtime checks are now done properly on builtin functions.
+Warnings (or standards violations) are now produced for extensions
+to the language.  Some inconsistencies in dealing with running out of
+memory have been fixed.
+.IP
+Some bugs are known: invoking a formal routine from inside a formal
+invocation of the same routine will mess up.
+In pc only: linking seperately compiled modules from other than the 
+current directory only works if you give full path names (or the same
+relative paths) for the compilation and the linking.
+.IP
+Some changes are planned soon:
+for-loop variables and with pointers will be allocated to registers.
+The formal routine syntax is currently as in Jensen and Wirth, but
+will soon be changed to the the syntax of the proposed standards,
+in which parameters to formals must be given.
+It is planned that \fBpc\fR will soon do compile time constant folding.
+.BP pmerge
+Is a new program which can convert large Pascal programs back into a
+single file, eliminating the header files and separate source files
+normally used for separate compilation.
+.BP prof
+A bug which caused prof to loop when a file-static function was
+profiled has been fixed.  A bug in the kernel which caused the
+results of prof to be inaccurate has also been fixed.
+.BP ps
+Has been changed to work with the new kernel and is no longer
+dependent on system sizing; thus it is no longer necessary to
+recompile ps when the system tables are made larger.  A bug
+in the \fBs\fR option which caused the computed stack size
+to be a constant 512 bytes too large has been fixed.
+The ``STAT'' field now shows ``>'' in the second position for programs
+which are using more memory than their \fImemoryuse\fR limit (see
+.IR vlimit (2)).
+It also shows ``S'' in the fourth position for processes which have
+declared themselves to be strongly sequential (see
+.IR vadvise (2)).
+Under the \fBv\fR option, the SWRSS field has been replaced by a new
+field ``LIM'' which shows the limit on \fImemoryuse\fR if there is a limit,
+or \fIxx\fR if there is not.
+.BP px
+Is now written in C, is much more portable, and shares the runtime library
+used by the compiler.   It is, unfortunately, somewhat slower now.
+.BP ranlib
+No longer considers it a fatal error that an archive member defines
+no symbols.
+.BP reset
+Has been changed to invoke the command
+.RS
+.IP
+.B "tset \-Q \-I"
+.RE
+.IP
+so that all terminal modes will be reset.
+.BP rm
+Now has a
+.B \-
+option to indicate that all the following
+parameters are to be treated as file names.
+It can be used when file names begin with ``\fB\-''.
+.BP rmdir
+Now works correctly when arguments end in one or more ``/'' characters.
+.BP sdb
+Has been fixed to be able to deal with ``interrupt-stack-frames'',
+so that it is possible to set breakpoints on and get backtraces
+from routines called while a signal is being processed.
+Now handles binaries which are mode 0407 (resulting from ``ld \-N'')
+properly.
+.BP sh
+Has been changed so that ``#'' begins a comment.
+Shell scripts to be executed by /bin/sh should begin
+``#! /bin/sh'' on the first line.
+.BP tar
+Now defaults to blocked tape and can update blocked tapes (finally!).
+When reading tape tar defaults to the raw tape and figures out
+what is going on with blocksize so it need not be specified.
+Thus the only commands which should be needed are the simple ``tar t'',
+``tar c'', ``tar u'' and ``tar x''.
+.BP uusend
+Now uses the \fB\-r\fR option of \fIuux\fR to prevent presenting
+extreme load to the connected system.
+.BP vmstat
+Has been changed so that the system's device names are printed
+for the disks rather than D0, D1, D2, D3.  The old format output
+of the 
+.B \-i
+option is no longer available.
+.IP
+The fields related to paging activity are now all
+given in pages (of 1024 bytes).  In particular, the fields ``pi''
+and ``po'' which previously showed the number of pagein and pageout
+events now show pages, and ``sr'' which previously gave the clock
+scan rate in revolutions-per-minute now gives the scan rate in pages
+scanned per second.  To provide the extra space needed to present this
+information, the swap in/out information, which was only marginally
+interesting, is no longer printed.
+.BP w
+Has been modified so that it no longer needs to be recompiled
+when the kernel tables change in size.
+.BP wall
+Now checks that the message is not too long for its internal buffer,
+rather than just overrunning the buffer.  It handles running out
+of processes by pausing, so it is possible to use it when there
+are more than 25 users logged in and you are not the super-user.
+It also gives the machine name you are on in the broadcast messages.
+.BP who
+``Who am I'' now prints your machine and login name (the first
+word of its output) in a format suitable for use with uucp.
+.BP write
+Now checks that you do not have write permission disabled
+and doesn't let you write to someone if they can't write back.
+.SH
+.LG
+.ce
+Section 2.
+.SM
+.sp
+.BP intro
+Now correctly reflects that argument lists may be upto 10240 characters
+long.
+.BP exec
+Has been changed so that if a file being executed
+begins with the magic characters #!, the rest of the line is understood
+to be the name of an interpreter for the executed file.
+Previously (and in fact still) the shell did much of this job;
+it automatically executed itself on a text file with executable mode
+when the text file's name was typed as a command.
+Putting the facility into the system gives the following
+benefits.
+.RS
+.IP 1)
+It makes shell scripts more like real executable files,
+because they can be the subject of 'exec.'
+.IP 2)
+If you do a 'ps' while such a command is running, its real
+name appears instead of 'sh'.
+Likewise, accounting is done on the basis of the real name.
+.IP 3)
+Shell scripts can be set-user-ID.
+.IP 4)
+It is simpler to have alternate shells available;
+e.g. if you like the Berkeley \fIcsh\fR there is no question about
+which shell is to interpret a file.
+.IP 5)
+It will allow other interpreters to fit in more smoothly.
+.RE
+.IP
+To take advantage of this wonderful opportunity,
+put
+.DS
+#! /bin/sh
+.DE
+.IP
+at the left margin of the first line of your shell scripts.
+Blanks after ! are OK.  Use a complete pathname (no search is done).
+At the moment the whole line is restricted to 32 characters.
+A single argument may be specified for the interpreter, thus:
+.DS
+#! /bin/csh  \-f
+.DE
+.IP
+is very useful, avoiding reading \fI.cshrc\fR which is often
+not wanted.
+.BP kill
+Has been changed so that when broadcasting signals universally
+the signal being broadcast is not sent to the broadcaster.
+This is used by the
+.IR halt (8),
+.IR shutdown (8),
+and
+.IR reboot (8)
+commands.
+.BP reboot
+Has been changed to reflect the now more limited number
+of option flags available to the system call due to the
+nature of the console interface on the VAX 11/750.
+.BP sigsys
+Reflects the fact that the system now passes in to a signal
+handler an indication of what exception really happened when
+a SIGFPE or SIGILL is generated.  The call interface at the
+point of a signal handler call is now specified.
+.PP
+.SH
+.LG
+.ce
+Section 3
+.SM
+.sp
+.PP
+.BP curses
+A large number of bug fixes have been incorporated,
+and the documentation has been greatly improved.
+The library is now much more solid than that originally distributed.
+.BP fopen
+Reflects the new open options which allow simultaneous read-write
+to files; these extensions are being incorporated to bring
+compatibility with the standard version 7 PDP-11 UNIX and to
+replace the (now defunct) \fB\-lNS\fR.
+.BP printf
+A bug in the documentation which incorrectly stated that a %c format
+would not put out a null character has been fixed.
+.SH
+.LG
+.ce
+Section 4
+.SM
+.sp
+.PP
+The system now supports a number of new devices and has capability
+for detecting the device's presence and interrupt vectors at boot time.
+The system also has capability to do device location at boot time
+so that a system description as supplied to
+.IR config (8)
+can take advantage of available hardware redundancy.
+.PP
+Each configurable device driver in this section now includes
+a SYNOPSIS giving sample lines to be included in a system
+configuration.  Drivers also indicate the error messages
+which they produce and describe each error.
+.PP
+.BP ct
+A driver for a C/A/T phototypesetter interface.
+.BP dh
+Now includes handling of dm-11 modem control hardware.
+Optional flags to the configuration program can also be
+given to supply hardware carrier easily for lines where
+wiring is inadequate.
+.BP hp
+Includes rm80 support.
+.BP lp
+Drives standard line printers, and has been improved to
+cut the interrupt load by a factor of 20.
+.BP mt
+Describes the standard tape drive interface, which now includes
+.B ioctl
+operations for raw magtape allowing such standard operations
+as forward and backward spacing over files and records, writing
+of end-of-file marks, rewinds, rewinding and offlining,
+and sensing of tape status.
+These operations are used by the
+.IR mt (1)
+program which can be used to easily manipulate tape files,
+and by the
+.IR tar (1)
+program to allow updates to blocked tapes.
+.BP tm
+Supports the UNIBUS TM/11 emulating tape controllers (e.g. EMULEX TC-11
+with a KENNEDY 9300 drive).
+.BP ts
+Supports the UNIBUS TS/11 tape drive and transport.
+.BP tty
+Now provides a LDECCTLQ option which causes ^S and ^Q to function
+as necessary for the VT100 to work properly.
+.BP up
+A driver for a EMULEX SC-11 or SC-21 UNIBUS disk controller
+with storage module (e.g. Ampex 9300) disk drives.
+.BP va
+A varian raster plotter.
+.SH
+.LG
+.ce
+Section 5
+.SM
+.sp
+.ce
+No changes.
+.SH
+.LG
+.ce
+Section 6
+.SM
+.sp
+.PP
+.BP chase
+Is a game where robots try to eat you.
+.BP hangman
+Is now screen oriented.
+.BP rain
+Drops keep falling on my head.
+.BP rogue
+Is a new and very popular screen-oriented game,
+see
+.IR rogue (6)
+or
+``A Guide to the Dungeons of Doom.''
+.BP worm
+Is a game where you see how long you can get the worm to grow.
+.BP worms
+Is an amusement where the worms chase each other around the screen.
+.SH
+.LG
+.ce
+Section 7
+.SM
+.sp
+.ce
+No changes.
+.SH
+.LG
+.ce
+Section 8
+.SM
+.NL
+.PP
+Major changes affecting system operations include:
+.IP *
+The system is configured from a single per-cpu specification
+file which includes all locally relevant information: desired
+devices, size of the maximum user load, timezone information, etc.
+The system determines at boot time the size of the file system
+buffer cache based on the amount of physical memory available
+and sizes the system data structures based on the specification
+of the maximum number of active users; it is no longer necessary
+to juggle an armful of constants to enlarge the system.
+The sizes of system tables are no longer compiled into programs
+such as
+.B ps
+and
+.B w.
+.IP *
+System error log information is saved across system crashes provided
+no power failure occurs, as the error log is kept in-core in the
+last 1024 bytes of memory.
+.\"Error messages to the console are in a new standard format, reminiscent
+.\"of Dave Presotto's speech pattern... they begin with a word, a laugh
+.\"encoded as `:' and go on wittily from there to speak the truth.
+Error messages to the console are in a standard format, of the form:
+.RS
+device: message
+.RE
+.IP
+Messages have error registers decoded as bits, so that they are
+readable, and no-longer refer to devices by their major/minor device
+numbers, rather using device names.  Error messages about file
+system problems (device full, out of inodes, etc) are referred to
+with the mounted file system name, and a message is sent directly
+to a user if his/her process writes to a file system when it is full.
+All error diagnostics printed by drivers are documented in section 4
+of the manual.
+.IP *
+DEC standard bad block forwarding is supported on all DEC disks
+except the RP06; the code which implements this can be easily
+moved into the drivers for the UNIBUS storage module disks; this is planned.
+.IP *
+Core dumps are saved after system crashes automatically as the system
+writes a core image to a portion of the swap area from which it
+is recovered after reboot.  The system then transfers these core
+images to a specified UNIX directory, saving also the version of
+the system associated with the crash.  The system also maintains
+an error log
+.B /usr/adm/shutdownlog
+which records all system crashes and reboots with the information
+about the causes.
+.sp
+.PP
+.BP analyze
+Now has an option
+.B \-u
+to print page numbers of the u. areas.
+A bug which prevented the distributed
+.B analyze
+from working has been fixed.
+.BP bad144
+Is a new program which prints out the DEC-standard bad block
+information for a disk, or puts it back if it gets clobbered.
+The name of the program comes from the fact that the program
+deals with ``DEC standard 144'' format.
+.BP badsect
+Creates a file in a file system which contains a specified disk
+sector of that file system.  This is a primitive way of dealing
+with bad sectors, but works on drivers which don't (yet) have bad
+block forwarding according to the standard.
+.BP getty
+No longer prints ``Virtual'' in front of the system
+identification, since there are no swap systems in sight anymore.
+.BP halt
+Now properly shuts down the system; see \fBreboot\fR below for details.
+.BP icheck
+Now properly sets the \fItfree\fR field in the super-block.
+.BP init
+Now interacts with \fBhalt\fR, \fBreboot\fR and \fBshutdown\fR
+to bring about orderly system shutdowns.
+No longer writes entries in the /usr/adm/wtmp accounting file when
+a \fIgetty\fR process dies without a user logging in on a terminal.
+Prints a warning message (on the console) if a terminal exists,
+is enabled, but the open returns an error, and waits for terminal
+to be openable, checking each minute, to prevent thrashing in this case.
+.BP last
+Now distinguishes between system shutdowns and system crashes.
+.BP lastcomm
+A bug causing a core dump if user id's not present in the
+password file were encountered has been fixed.
+.BP login
+Now interacts with the shutdown command to forbid logins (except
+by the super-user) in the last 5 minutes before a shutdown (detected
+by the presence of the file /etc/nologin, which also contains a
+message about why the system is shutting down which is presented
+to the rejected users.)
+Implements a notion of ``secure terminals''; if the file /etc/securetty
+exists, then it should contain a list of the secure terminals
+where root is allowed to login.  If this file does not exist,
+then root can log in anywhere, as before.
+If a user tries to login but can't get to their home directory
+they are left in the root directory and warned, so that they
+have some chance to send mail about or fix the problem themselves.
+If a file \fI.hushlogin\fR exists in a users home directory
+the the message of the day and other such information designed for
+human users will not be printed at login time.  This is specifically
+designed for the user \fIuucp\fR which is another computer
+and just ignores such stuff anyways.
+Finally a bug has been fixed which cause \fBlogin\fR to core
+dump if there were tabs in the file /etc/ttytype.
+.BP mkfs
+Now works properly when given a \fIproto\fR argument;
+previously it complained because it didn't know that the format
+of the file /usr/mdec/uboot had been changed.
+.BP pstat
+Has new flags \fB\-m\fR and \fB\-g\fR which interpret the multiplexor
+data structures.
+.BP reboot
+Now shuts the system down cleanly, stopping all system activity before
+initiating the reboot procedure.  Normally, however, the new
+.B shutdown 
+command is used to take the system down, notifying the users of the
+impending downtime.
+The options
+.B \-s
+and
+.B \-a
+options to reboot are no longer available, as it will not be
+possible to provide them on all VAX cpu's due to the way the
+console interface works.  Instead, you can halt the processor
+using
+.B halt
+which puts the system into a tight loop, and then perform the
+desired reboot sequence manually at the console.  This works
+on both 11/750 and 11/780 processors.
+.BP renice
+Has been modified for the new kernel and is no longer dependent
+on system configuration parameters; it no longer
+needs to be recompiled when system table sizes change.
+.BP restor
+Now properly handles the case where dump files are contained
+in dump tapes; previously the end of the embedded dump would
+confuse \fBrestor\fR and cause the rest of the dump tape to be
+inaccessible.
+.BP sa
+Now correctly handles an arbitrary number of commands and users.
+Two new options have been added \fB\-v\fR and \fB\-f\fR giving
+it a googol+2 options.  See
+.IR sa (8)
+for details.
+.BP savecore
+Is a new program which runs after a reboot to save
+check to see if the system had crashed and, if it had,
+to save any core image which was successfully written to
+the paging area.
+See
+.IR savecore (8)
+for a full description.
+.BP shutdown
+Is a new command which shuts the system down at a specified time.
+It broadcasts messages to users warning them as the downtime approaches,
+records the reason for the reboot in a log file,
+and cooperates with init in a cleanly shutdown (e.g. during
+the last 2 minutes of system operation, users attempting
+to log in are told that the system is going down and the reason
+for the shutdown but not allowed to log in.)
+
diff --git a/usr/man/man0/changes.4-82 b/usr/man/man0/changes.4-82
new file mode 100644 (file)
index 0000000..fc2e543
--- /dev/null
@@ -0,0 +1,170 @@
+.TL
+Surviving with 4.1a bsd
+.AU
+Bill Joy
+Sam Leffler
+.AI
+Computer Systems Research Group
+Department of EECS
+U.C. Berkeley
+Berkeley, Ca.  94720
+.SH
+Introduction
+.PP
+.de IR
+\fI\\$1\fR\\$2\\fR
+..
+This short paper describes what ``4.1a bsd'' is,
+and what you need to know to make best use of this
+release of the system if it is running on your machine.
+.SH
+What is 4.1a?
+.PP
+4.1a is an intermediate version of the VAX system distributed
+by our group.  It is an
+.I experimental
+version of the system whose most noticeable improvement over
+the 4.1 system is its support for local networking.
+It also includes a few other features which you may find useful,
+such as ``symbolic links'' and an improved group scheme.
+.PP
+4.1a is not a full distribution of the VAX system.
+It is being used at a
+.I very
+limited number of sites, and is
+.B not
+being made available to the general VAX/UNIX user community.
+.PP
+We currently plan to have two more intermediate versions of the VAX
+system before the next full release.  The next intermediate
+version 4.1b will tenatively include a higher-performance file
+system, a more fully integrated scheme for inter-process
+communication, and page-sharing virtual memory facilities.
+These facilities are described in a draft new system manual
+which is available from our group.
+.PP
+The rest of this document consists of a number of sections
+describing new commands and changes to existing facilities
+in the new system.
+.NH 1
+User commands for networking
+.PP
+The new system supports the DARPA standard TCP, IP and UDP communications
+protocols.  These are used to provide for the transfer of data
+between machines interconnected via local networks (such as an ETHERNET)
+or a long-haul network such as the ARPANET.  Currently most
+hosts on the ARPANET speak older protocols, so you are likely to find
+the local networking facilities to be of the most immediate use.
+.PP
+Most of the networking commands provided with this 4.1a release
+begin with a letter
+.B r
+standing for ``remote''.  These commands are all provisional,
+and subject to change.
+.NH 2
+Status of the network
+.PP
+Each machine on your local network is kept informed by other machines
+as to the status of those machines.  The command
+.I ruptime
+prints a status line for each machine on the local network.
+Its output might look like:
+.DS
+monet % ruptime
+arpa      up  1+10:22,     1 user,   load 0.94, 0.80, 0.70
+calder       up  0:57,     0 users,  load 0.20, 0.75, 1.08
+dali         up  2:23,     0 users,  load 0.08, 0.10, 0.09
+ingres    up  1+17:26,     0 users,  load 0.32, 0.49, 0.67
+kim       up  1+10:27,     0 users,  load 0.74, 0.75, 0.77
+matisse    down 13:36
+monet        up  7:01,     1 user,   load 0.73, 0.79, 0.78
+monet %
+.DE
+Here ``monet % '' is my prompt.
+This command shows 7 hosts on the local network.  For each
+host the number of users logged in, the load average and the
+amount of time the machine has been up (or down) is shown.
+As it is very late (about 3 am), there are essentially no users
+logged in.  In fact, the users which are logged in will be shown
+by a
+.DS
+monet % rwho
+root     arpa:ttyh9  Mar 31 23:42
+root     monet:ttyp0 Mar 31 23:39
+monet %
+.DE
+command.  Currently this shows only me (logged in a root on
+the \fImonet\fP machine), and another \fIroot\fP user (logged
+in on the \fIarpa\fP machine.)
+.PP
+Both of these commands suppress and do not count users who have
+been idle more than an hour.  They both take \fB\-a\fP commands
+to force these users to be printed.  Thus
+.DS
+monet % rwho \-a
+fabry    arpa:ttyh3    Mar 30 17:59 10:51
+kateveni kim:ttyh4     Mar 30 18:42  9:10
+kridle   ingres:ttyh0  Mar 31 18:48  6:32
+mckusick arpa:ttyj1    Mar 31 19:50  6:50
+mosher   arpa:ttyh1    Mar 31 08:26  2:48
+root     arpa:console  Mar 31 12:19  1:55
+root     arpa:ttyh9    Mar 31 23:42
+root     monet:console Mar 31 20:54  6:45
+root     monet:ttyp0   Mar 31 23:39
+root     monet:ttyp1   Apr  1 01:45  2:11
+rwh      arpa:ttyh5    Mar 31 14:34 13:20
+sam      arpa:ttyh2    Mar 31 11:36 15:50
+wilensky kim:ttyib     Mar 31 11:17 10:22
+wnj      monet:tty00   Mar 31 21:17  6:38
+monet %
+.DE
+produces more, if rather pointless, output.
+.NH 2
+Logging in and executing commands on remote machines
+.PP
+It is quite easy to log in on another machine and execute commands
+there.  You can do this by saying
+.DS
+monet % rlogin \fIothermachine\fP
+.DE
+If your current machine and the \fIothermachine\fP name that you
+give are under common administration you may find that you are
+simply logged in on the other machine with no fuss.
+If not, you may get a prompt for a password.*
+.FS
+*If there is not
+an account on that machine with your current login name, then
+you will likely be prompted for a login name.  Other possibilities
+are mentioned in
+.IR rlogin (1x).
+.FE
+Here, for example, is what is printed when I log into the
+\fIkim\fP machine from my current machine \fImonet\fP:
+.ID
+.nf
+monet % rlogin kim
+Last login: Wed Mar 31 20:32:25 on ttyp0
+TERM = (c1004p) h19
+Erase is Delete
+Kill is Ctrl-U
+  4:10am  up 1 day, 10:34,  3 users,  load average: 0.64, 0.67, 0.73
+kim % who
+kateveni ttyh4   Mar 30 18:42
+wilensky ttyib   Mar 31 11:17
+wnj      ttyp0   Apr  1 04:10
+kim % date
+Thu Apr  1 04:10:33 PST 1982
+kim % hostname
+ucbkim
+kim % logout
+Lost connection.
+monet % 
+.fi
+.DE
+On the
+\fIkim\fP machine my login prompt includes the machine name,
+just as it does on the \fImonet\fP machine.  I do this while having
+a single \fI.cshrc\fP file by using the
+\fIhostname\fP command, in a sequence of the form:
+.DS
+if ($?prompt) then
diff --git a/usr/man/man0/comm.sed b/usr/man/man0/comm.sed
new file mode 100644 (file)
index 0000000..cc479e7
--- /dev/null
@@ -0,0 +1,9 @@
+:x
+N
+/\( [^ ]*\)\n.*\1$/{
+       s/\n.*//
+       bx
+}
+P
+s/.*\n//
+bx
diff --git a/usr/man/man0/copyr b/usr/man/man0/copyr
new file mode 100644 (file)
index 0000000..3aa0fa6
--- /dev/null
@@ -0,0 +1,14 @@
+...fp 3 G
+.ll 4.8i
+.in .75i
+.hy 0
+.vs 12p
+--
+.sp |8i
+Copyright 1979, Bell Telephone Laboratories, Incorporated.
+Holders of a UNIX\v'-4p'\s-2\fGTM\fP\s0\v'4p'/32V software
+license are permitted to copy this document, or any portion
+of it, as necessary for licensed use of the software,
+provided this copyright notice and statement of permission
+are included.
+.bp
diff --git a/usr/man/man0/ignore b/usr/man/man0/ignore
new file mode 100644 (file)
index 0000000..eb38243
--- /dev/null
@@ -0,0 +1,76 @@
+10
+11
+16
+201
+3
+4014
+77
+a
+after
+al
+al
+all
+allow
+among
+an
+and
+another
+back
+between
+bits
+dialect
+do
+et
+extreme
+facts
+feeds
+fitting
+for
+from
+general
+get
+head
+in
+integer
+integers
+interval
+into
+intro
+is
+knowledge
+large
+last
+later
+local
+long
+low
+map
+o
+of
+off
+on
+or
+other
+out
+package
+part
+periodically
+pieces
+prejudice
+problem
+service
+simple
+special
+system
+tac
+the
+this
+to
+toe
+turn
+two
+until
+way
+with
+yet
+your
diff --git a/usr/man/man0/m1.sed b/usr/man/man0/m1.sed
new file mode 100644 (file)
index 0000000..f1e9b86
--- /dev/null
@@ -0,0 +1,90 @@
+:x
+s/``/`/g
+s/''/'/g
+s/\\\*-/\\-/g
+s/\\\*a/\\'/g
+s/\\\*g/\\`/g
+s/\\\*_/_/g
+s/\\\*v/\\(bv/g
+s/\\\*X/\\(mu/g
+s/\\\*>/\\(->/g
+s/\\\*b/\\(*b/g
+s/\\\*p/\\(*p/g
+s/\\\*G/\\(*G/g
+s/\\\*r/\\*R/g
+s/\\\*u/\\(*m/g
+/^\.li/{
+       N
+       p
+       d
+}
+s/^\.dt/.DT/
+s/^\.th/.TH/
+s/^\.sh/.SH/
+s/^\.it/.I/
+s/^\.bd/.B/
+s/^\.Bd/.bd/
+/^\.lp/{
+       s/.lp/.br\
+.ns\
+.Lp/
+       P
+       D
+}
+/^\.s[123]/{
+       N
+       /\n\.i0/s/.*/.PP/
+       /\n\.lp/s/.*\n//
+       /s[123]/{
+               s//DP/
+               P
+               D
+       }
+}
+/^\.i0/{
+       N
+       /\.s[123]/s/.*/.PP/
+       s/.i0.*\n//
+}
+s/^\.Lp/.lp/
+/^\.lp/{
+       / *0 *$/{
+               s///
+               s/lp *+/IP "" /
+               p
+               d
+       }
+       s/ *+/ /
+       s/ *[^ ]* *$//
+       N
+       /       /!{
+               s/lp/HP/
+       }
+       s/^.lp/.TP/
+       s/      /\
+/
+       P
+       D
+}
+/^\.I *[^ ]*$/{
+       N
+       s/^.I\(.*\)\n\(([IVX][ALMIVXSZ]*)[^ ]*\) */.IR \1 \2\
+/
+       s/\n$//
+       P
+       D
+}
+s/ \(([IVX][ALMIVXSZ]*)\)/\1/g
+/^\\f/{
+       s/\\f/@/g
+       s/@P/@R/g
+       s/^@\(.\)\([^@\n]*\)@\(.\)\([^@\n]*\)@\1\([^\n]*\)/.\1\3 "\2" "\4" "\5"/
+       s/^@\(.\)\([^@\n]*\)@\(.\)\([^\n]*\)/.\1\3 "\2" "\4"/
+       s/^@\(.\)\([^\n]*\)/.\1 "\2"/
+       s/@R"$/"/
+       s/@R"\n/"\
+/
+       s/@/\\f/g
+}
+P
+D
diff --git a/usr/man/man0/m2.sed b/usr/man/man0/m2.sed
new file mode 100644 (file)
index 0000000..1eaec82
--- /dev/null
@@ -0,0 +1,27 @@
+/^[^.].*\\f/{
+       s/\\f/@/g
+       s/@P/@R/g
+       s/ @\(.\)\([^@]*\)@R\([^ @]*\)  */\
+.\1R "\2" "\3"\
+/
+       s/ @\(.\)\([^@]*\)@R\([^ @]*\) *$/\
+.\1R "\2" "\3"/
+       s/@\(.\) \([^@]*\)@R\([^ @]*\)  */\
+.\1R "\2" "\3"\
+/
+       s/@\(.\) \([^@]*\)@R\([^ @]*\) *$/\
+.\1R "\2" "\3"/
+       s/@/\\f/g
+}
+/^\.[TH]P/,/^\.PP/s/^\.DP/.IP/
+s/^\.DP/.PP/
+/^\.[BIR][BIR]/s/[ ]*""$//
+/^\.\([BIR]\)[BIR][^"]*"[^"]*"$/s/.\(.\)./.\1 /
+:x
+/^\.[^"]*"[^"  ][^"    ]*"/{
+       s/"//
+       s///
+       bx
+}
+P
+D
diff --git a/usr/man/man0/ptxmac b/usr/man/man0/ptxmac
new file mode 100644 (file)
index 0000000..4d4d929
--- /dev/null
@@ -0,0 +1,16 @@
+.de xx
+.if !""\\$1" \\$1\fI\a\fR\\$2\t\\$3\fI\a\fR\t\\$5
+.if !""\\$4" \t\\$2\t\\$3\fI\a\fR\\$4\t\\$5
+.if ""\\$1\\$4" \t\\$2\t\\$3\fI\a\fR\t\\$5
+..
+.cs I 30
+.TL
+PERMUTED INDEX
+.LP
+.SM
+.nr VS 9
+.vs \n(VSp
+.nf
+.ta 2.7iR 2.85iL 5.65iR 6.5iR
+.af PN i
+.pn 9
diff --git a/usr/man/man0/setup-4.1a b/usr/man/man0/setup-4.1a
new file mode 100644 (file)
index 0000000..6559912
--- /dev/null
@@ -0,0 +1,106 @@
+.TL
+Setting up 4.1a bsd
+.AU
+Bill Joy
+Sam Leffler
+.sp
+415 642 7780
+.SH
+Introduction
+.PP
+This is a very brief guide to setting up 4.1a bsd.  This is not a regular
+system distribution, and we assume here that you know what you are doing.
+Refer to the appendix to ``Surviving with 4.1a bsd'' for a list of
+files you will be changing.
+.IP 1) 5
+First back yourself up in whatever way you see fit.
+.IP 2)
+Read the tape into some convenient place; its a blocked \fItar\fP.
+.IP 3)
+Fixup some basic directories:
+.de DR
+.IP \\fB\\$1\\fP
+.br
+..
+.DR /bin
+.PP
+Install the supplied new binaries; note that /bin/chgrp is now
+suid root.  (Note: the new kernel does not clear setuid bits when
+you are running as root as it did before; it only does this when
+such files are touched by setuid programs.  You aren't running the
+new system yet, however, so be careful not to lose these bits on /bin/mail,
+/bin/df, /bin/su, etc.)
+.DR /dev
+Install the new MAKE script.  Run ``make pty0 pty1'' to make
+32 pty's, /dev/tty[pq][0-f] and /dev/pty[pq][0-f].
+Remove /dev/mail which is no longer needed.
+.DR /etc
+Install the new binaries supplied.  Edit /etc/hosts.equiv to contain
+the ``full names'' of any machines with which you will share user names.
+Edit /etc/hosts.local to contain an indication of the local network
+your machine is on and also the nickname of your machine, as:
+.DS
+% cat /etc/hosts.local
+0/0 \fInickname\fI myname
+x/y localnet
+%
+.DE
+See the \fIrhost\fP(3x) manual page for explanation of hosts names.
+Replace /etc/rc with the new /etc/rc, moving any local stuff into
+/etc/rc.local.  Please be sure to put a /etc/savecore call in /etc/rc.local
+so you can help us track down any problems you encounter.
+Add the pty's to /etc/ttys, i.e.
+.DS
+02ttyp0
+02ttyp1
+\&...
+02ttyqe
+02ttyqf
+.DE
+a total of 32 lines.  It is pointless to add them to /etc/ttytype (read
+the code of \fIlogin\fP and about \fIrlogin\fP to find out why; do it
+if you are fastidious).
+.DR /lib
+Install the new C library and startup routines.
+.DR /usr/include
+Update errno.h and signal.h, and add ndir.h.
+(We will come back for more later.)
+.IP 4) 5
+Create a configuration file for your system from your old file
+referring to section 4 manual pages about network interfaces.
+You must include a
+.DS
+options        INET
+.DE
+also.
+Build a kernel and boot it.
+.IP 5)
+Read about \fIrstat\fP(1x) and run it to see if your network interfaces
+exist and have the right addresses.
+.IP 6)
+Install the new commands in /usr/bin and /usr/ucb.
+.IP 7)
+Install the file /usr/lib/hosts.
+Make the directory /usr/hosts and modify /usr/lib/hosts/MAKE if you are not at
+/usr/ucb.  Run MAKE to create files there.
+.IP 8)
+Make a directory /usr/lib/adb and put the kernel debugging scripts there.
+.IP 9)
+Put in the new manual macros /usr/lib/tmac/tmac.an.new and the new
+manual pages in /usr/man.  Note that you should remove
+man8/chgrp.8, man2/stat.2, man2/intro.2, man2/mpx.2, and man1/newgrp.1.
+.IP 10)
+Replace the /usr/include/net directory with a symbolic link
+to the sys/net directory of the system source, wherever that is.
+Make /usr/include/sys a symlink to sys/h.
+.LP
+.LP
+.LP
+That should do it.  Fix any bugs which you find and tell us about them.
+.LP
+Congratulations, you are now one of the few lucky sites to be running
+4.1a bsd.  Since the system probably contains bugs, we provide you
+with a (slightly more) powerful \fIadb\fP to debug it.
+Heres a document about \fIadb\fP to help out.
+.LP
+Ciao.
diff --git a/usr/man/man0/trman b/usr/man/man0/trman
new file mode 100644 (file)
index 0000000..0060e5b
--- /dev/null
@@ -0,0 +1,3 @@
+sed -n -f /usr/man/man0/m1.sed $1\
+|sed -n -f /usr/man/man0/m2.sed \
+|sed -f /usr/man/man0/trref.sed
diff --git a/usr/man/man0/trref.sed b/usr/man/man0/trref.sed
new file mode 100644 (file)
index 0000000..c437994
--- /dev/null
@@ -0,0 +1,49 @@
+/^\.TH/{
+       s/ I / 1 /
+       s/ IL / 1 local /
+       s/ IC / 1C /
+       s/ ICL / 1C local /
+       s/ ID / 1D /
+       s/ IG / 1G /
+       s/ IGL / 1G local /
+       s/ IM / 1M /
+       s/ II / 2 /
+       s/ III / 3Z /
+       s/ IIIA / 3A /
+       s/ IIIF / 3F /
+       s/ IIIS / 3S /
+       s/ IIIZ / 3Z /
+       s/ IV / 4 /
+       s/ IVH / 9 /
+       s/ IVT / 7 /
+       s/ V / 5 /
+       s/ VI / 1 /
+       s/ VII / 3 /
+       s/ VIII / 8 /
+       /local/{
+               s///
+               s/$/ local/
+       }
+}
+s/(I)/(1)/g
+s/(IC)/(1)/g
+s/(ID)/(1)/g
+s/(IG)/(1)/g
+s/(IM)/(1)/g
+s/(II)/(2)/g
+s/(III)/(3)/g
+s/(IIIA)/(3)/g
+s/(IIIF)/(3)/g
+s/(IIIS)/(3)/g
+s/(IIIZ)/(3)/g
+s/(IV)/(4)/g
+s/(IVH)/(9)/g
+s/(IVT)/(7)/g
+s/(V)/(5)/g
+s/(VI)/(1)/g
+s/(VII)/(3)/g
+s/(VIII)/(8)/g
+/SEE/,/SH/s/  *(/(/g
+${
+       /BUG/d
+}
diff --git a/usr/man/man0/xx b/usr/man/man0/xx
new file mode 100644 (file)
index 0000000..228de3d
--- /dev/null
@@ -0,0 +1,8 @@
+.TH NAME SECTION local
+.SH NAME
+.SH SYNOPSIS
+.SH DESCRIPTION
+.SH FILES
+.SH SEE ALSO
+.SH DIAGNOSTICS
+.SH BUGS
diff --git a/usr/man/man1/at.1 b/usr/man/man1/at.1
new file mode 100644 (file)
index 0000000..9287525
--- /dev/null
@@ -0,0 +1,94 @@
+.TH AT 1 "18 January 1983"
+.UC 4
+.SH NAME
+at \- execute commands at a later time
+.SH SYNOPSIS
+.B at
+time
+[
+day
+]
+[
+file
+]
+.SH DESCRIPTION
+.I At
+squirrels away a copy of the named
+.I file
+(standard input default)
+to be used as input to
+.IR sh (1)
+(or
+.IR csh (1)
+if you normally use it)
+at a specified later time.
+A
+.I cd
+command to the current directory is inserted
+at the beginning,
+followed by assignments to all environment variables (excepting the
+variable TERM, which is useless in this context.)
+When the script is run, it uses the user and group ID
+of the creator of the copy file.
+.PP
+The
+.I time
+is 1 to 4 digits, with an optional following
+`A', `P', `N' or `M' for
+AM, PM, noon or midnight.
+One and two digit numbers are taken to be hours, three and four digits
+to be hours and minutes.
+If no letters follow the digits, a 24 hour clock time is understood.
+.PP
+The optional
+.I day
+is either
+(1) a month name followed by a day number,
+or
+(2) a day of the week; if the word `week' follows
+invocation is moved seven days further off.
+Names of months and days may be recognizably truncated.
+Examples of legitimate commands are
+.IP
+at 8am jan 24
+.br
+at 1530 fr week
+.PP
+.I At
+programs are executed by periodic execution
+of the command
+.I /usr/lib/atrun
+from
+.IR cron (8).
+The granularity of
+.I at
+depends upon how often
+.I atrun
+is executed.
+.PP
+Standard output or error output is lost unless redirected.
+.SH FILES
+.ta 2i
+/usr/lib/atrun executor (run by 
+.IR cron (8)).
+.sp
+in /usr/spool/at:
+.ta .5i 2i
+.br
+\&     yy.ddd.hhhh.*   activity for year yy, day dd, hour hhhh.
+.br
+\&     lasttimedone    last \fIhhhh\fR
+.br
+\&     past    activities in progress
+.SH "SEE ALSO"
+calendar(1),
+pwd(1),
+sleep(1),
+cron(8)
+.SH DIAGNOSTICS
+Complains about various syntax errors and times out of range.
+.SH BUGS
+Due to the granularity of the execution of
+.I /usr/lib/atrun,
+there may be bugs in scheduling things almost
+exactly 24 hours into the future.
diff --git a/usr/man/man1/awk.1 b/usr/man/man1/awk.1
new file mode 100644 (file)
index 0000000..43e0aa4
--- /dev/null
@@ -0,0 +1,237 @@
+.TH AWK 1 "18 January 1983"
+.SH NAME
+awk \- pattern scanning and processing language
+.SH SYNOPSIS
+.B awk
+[
+.BI \-F c
+]
+[ prog ] [ file ] ...
+.SH DESCRIPTION
+.I Awk
+scans each input
+.I file
+for lines that match any of a set of patterns specified in
+.IR prog .
+With each pattern in
+.I prog
+there can be an associated action that will be performed
+when a line of a
+.I file
+matches the pattern.
+The set of patterns may appear literally as
+.I prog,
+or in a file
+specified as
+.B \-f
+.IR file .
+.PP
+Files are read in order;
+if there are no files, the standard input is read.
+The file name `\-'
+means the standard input.
+Each line is matched against the
+pattern portion of every pattern-action statement;
+the associated action is performed for each matched pattern.
+.PP
+An input line is made up of fields separated by white space.
+(This default can be changed by using FS,
+.IR "vide infra" ".)"
+The fields are denoted $1, $2, ... ;
+$0 refers to the entire line.
+.PP
+.PP
+A pattern-action statement has the form
+.PP
+       pattern { action }
+.PP
+A missing { action } means print the line;
+a missing pattern always matches.
+.PP
+An action is a sequence of statements.
+A statement can be one of the following:
+.PP
+.nf
+       if ( conditional ) statement [ else statement ]
+       while ( conditional ) statement
+       for ( expression ; conditional ; expression ) statement
+       break
+       continue
+       { [ statement ] ... }
+       variable = expression
+       print [ expression-list ] [ >expression ]
+       printf format [ , expression-list ] [ >expression ]
+       next    # skip remaining patterns on this input line 
+       exit    # skip the rest of the input
+.fi
+.PP
+Statements are terminated by
+semicolons, newlines or right braces.
+An empty expression-list stands for the whole line.
+Expressions take on string or numeric values as appropriate,
+and are built using the operators
++, \-, *, /, %,  and concatenation (indicated by a blank).
+The C operators ++, \-\-, +=, \-=, *=, /=, and %=
+are also available in expressions.
+Variables may be scalars, array elements
+(denoted
+x[i])
+or fields.
+Variables are initialized to the null string.
+Array subscripts may be any string,
+not necessarily numeric;
+this allows for a form of associative memory.
+String constants are quoted "...".
+.PP
+The 
+.I print
+statement prints its arguments on the standard output
+(or on a file if 
+.I >file
+is present), separated by the current output field separator,
+and terminated by the output record separator.
+The
+.I printf
+statement formats its expression list according to the format
+(see
+.IR printf (3)).
+.PP
+The built-in function
+.I length
+returns the length of its argument
+taken as a string,
+or of the whole line if no argument.
+There are also built-in functions
+.I exp,
+.I log,
+.I sqrt,
+and
+.IR int .
+The last truncates its argument to an integer.
+.IR substr(s,\ m,\ n)
+returns the 
+.IR n -character
+substring of
+.I s
+that begins at position
+.IR m .
+The function
+.IR sprintf(fmt,\ expr,\ expr,\ ...)
+formats the expressions
+according to the
+.IR printf (3)
+format given by
+.I fmt
+and returns the resulting string.
+.PP
+Patterns are arbitrary Boolean combinations
+(!, \(or\(or, &&, and parentheses) of 
+regular expressions and
+relational expressions.
+Regular expressions must be surrounded
+by slashes and are as in
+.IR egrep .
+Isolated regular expressions
+in a pattern apply to the entire line.
+Regular expressions may also occur in
+relational expressions.
+.PP
+A pattern may consist of two patterns separated by a comma;
+in this case, the action is performed for all lines
+between an occurrence of the first pattern
+and the next occurrence of the second.
+.PP
+.nf
+A relational expression is one of the following:
+.PP
+.nf
+       expression matchop regular-expression
+       expression relop expression
+.PP
+.fi
+where a relop is any of the six relational operators in C,
+and a matchop is either ~ (for contains)
+or !~ (for does not contain).
+A conditional is an arithmetic expression,
+a relational expression,
+or a Boolean combination
+of these.
+.PP
+The special patterns
+BEGIN
+and
+END
+may be used to capture control before the first input line is read
+and after the last.
+BEGIN must be the first pattern, END the last.
+.PP
+A single character
+.I c
+may be used to separate the fields by starting
+the program with
+.PP
+       BEGIN { FS = "c" }
+.PP
+or by using the
+.BI \-F c
+option.
+.PP
+Other variable names with special meanings
+include NF, the number of fields in the current record;
+NR, the ordinal number of the current record;
+FILENAME, the name of the current input file;
+OFS, the output field separator (default blank);
+ORS, the output record separator (default newline);
+and
+OFMT, the output format for numbers (default "%.6g").
+.PP
+.SH EXAMPLES
+.PP
+Print lines longer than 72 characters:
+.PP
+.nf
+       length > 72
+.fi
+.PP
+Print first two fields in opposite order:
+.PP
+.nf
+       { print $2, $1 }
+.fi
+.PP
+Add up first column, print sum and average:
+.PP
+.nf
+               { s += $1 }
+       END     { print "sum is", s, " average is", s/NR }
+.fi
+.PP
+Print fields in reverse order:
+.PP
+.nf
+       { for (i = NF; i > 0; \-\-i) print $i }
+.fi
+.PP
+Print all lines between start/stop pairs:
+.PP
+.nf
+       /start/, /stop/
+.fi
+.PP
+Print all lines whose first field is different from previous one:
+.PP
+.nf
+       $1 != prev { print; prev = $1 }
+.fi
+.SH SEE ALSO
+.PP
+lex(1), sed(1)
+.br
+A. V. Aho, B. W. Kernighan, P. J. Weinberger,
+.I
+Awk \- a pattern scanning and processing language
+.SH BUGS
+There are no explicit conversions between numbers and strings.
+To force an expression to be treated as a number add 0 to it;
+to force it to be treated as a string concatenate ""
+to it.
diff --git a/usr/man/man1/basename.1 b/usr/man/man1/basename.1
new file mode 100644 (file)
index 0000000..ba92ec1
--- /dev/null
@@ -0,0 +1,29 @@
+.TH BASENAME 1 "1 April 1981"
+.SH NAME
+basename \- strip filename affixes
+.SH SYNOPSIS
+.B basename
+string [ suffix ]
+.SH DESCRIPTION
+.I Basename
+deletes any prefix ending in `/' and the
+.I suffix,
+if present in
+.I string,
+from
+.I string,
+and prints the result on the standard output.
+It is normally used inside substitution marks \`\ \`
+in shell procedures.
+.PP
+This shell procedure invoked with the argument
+.I /usr/src/cmd/cat.c
+compiles the named file and moves the output to
+.I cat
+in the current directory:
+.IP "" 15n
+cc $1
+.br
+mv a.out \`basename $1 .c\`
+.SH "SEE ALSO"
+sh(1)
diff --git a/usr/man/man1/bc.1 b/usr/man/man1/bc.1
new file mode 100644 (file)
index 0000000..72f0865
--- /dev/null
@@ -0,0 +1,193 @@
+.TH BC 1 "1 April 1981"
+.SH NAME
+bc \- arbitrary-precision arithmetic language
+.SH SYNOPSIS
+.B bc
+[
+.B \-c
+] [
+.B \-l
+] [ file ... ]
+.SH DESCRIPTION
+.I Bc
+is an interactive processor for a language which resembles
+C but provides unlimited precision arithmetic.
+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 syntax for 
+.I bc
+programs is as follows;
+L means letter a-z,
+E means expression, S means statement.
+.HP 6
+Comments
+.br
+are enclosed in /* and */.
+.HP 6
+Names
+.br
+simple variables: L
+.br
+array elements: L [ E ]
+.br
+The words `ibase', `obase', and `scale'
+.HP 6
+Other operands
+.br
+arbitrarily long numbers with optional sign and decimal point.
+.br
+( E )
+.br
+sqrt ( E )
+.br
+length ( E )   number of significant decimal digits
+.br
+scale ( E )    number of digits right of decimal point
+.br
+L ( E , ... , E )
+.HP 6
+Operators
+.br
++  \-  *  /  %  ^
+(% is remainder; ^ is power)
+.br
+++   \-\-         (prefix and postfix; apply to names)
+.br
+==  <=  >=  !=  <  >
+.br
+=  +=  \-=  *=  /=  %=  ^=
+.br
+.HP 6
+Statements
+.br
+E
+.br
+{ S ; ... ; S }
+.br
+if ( E ) S
+.br
+while ( E ) S
+.br
+for ( E ; E ; E ) S
+.br
+null statement
+.br
+break
+.br
+quit
+.HP 6
+Function definitions
+.br
+define L ( L ,..., L ) {
+.br
+       auto L, ... , L
+.br
+       S; ... S
+.br
+       return ( E )
+.br
+}
+.HP 6
+Functions in 
+.B \-l
+math library
+.br
+s(x)   sine
+.br
+c(x)   cosine
+.br
+e(x)   exponential
+.br
+l(x)   log
+.br
+a(x)   arctangent
+.br
+j(n,x) Bessel function
+.PP
+.DT
+All function arguments are passed by value.
+.PP
+The value of a statement that is an expression is printed
+unless the main operator is an assignment.
+Either semicolons or newlines may separate statements.
+Assignment to
+.I scale
+influences the number of digits to be retained on arithmetic
+operations in the manner of
+.IR dc (1).
+Assignments to
+.I ibase
+or
+.I 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.
+`Auto' variables are pushed down during function calls.
+When using arrays as function arguments
+or defining them as automatic variables
+empty square brackets must follow the array name.
+.PP
+For example
+.PP
+.nf
+scale = 20
+define e(x){
+       auto a, b, c, i, s
+       a = 1
+       b = 1
+       s = 1
+       for(i=1; 1==1; i++){
+               a = a*x
+               b = b*i
+               c = a/b
+               if(c == 0) return(s)
+               s = s+c
+       }
+}
+.PP
+.fi
+defines a function to compute an approximate value of
+the exponential function and
+.PP
+.nf
+       for(i=1; i<=10; i++) e(i)
+.fi
+.PP
+prints approximate values of the exponential function of
+the first ten integers.
+.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 FILES
+.ta \w'/usr/lib/lib.b 'u
+/usr/lib/lib.b mathematical library
+.br
+dc(1)  desk calculator proper
+.SH "SEE ALSO"
+dc(1)
+.br
+L. L. Cherry and R. Morris,
+.I
+BC \- An arbitrary precision desk-calculator language
+.SH BUGS
+No &&, \(or\|\(or, or ! operators.
+.br
+.I For
+statement must have all three E's.
+.br
+.I \11\11Quit
+is interpreted when read, not when executed.
diff --git a/usr/man/man1/cal.1 b/usr/man/man1/cal.1
new file mode 100644 (file)
index 0000000..5a064f4
--- /dev/null
@@ -0,0 +1,27 @@
+.TH CAL 1 "29 March 1982"
+.SH NAME
+cal \- print calendar
+.SH SYNOPSIS
+.B cal
+[ month ] year
+.SH DESCRIPTION
+.I Cal
+prints a calendar for the specified year.
+If a month is also specified, a calendar
+just for that month is printed.
+.I Year
+can be between 1
+and 9999.
+The
+.I month
+is a number between 1 and 12.
+The calendar
+produced is that for England and her colonies.
+.PP
+Try September 1752.
+.SH BUGS
+The year is always considered to start in January even though this
+is historically naive.
+.br
+Beware that `cal 78' refers to the early Christian era,
+not the 20th century.
diff --git a/usr/man/man1/calendar.1 b/usr/man/man1/calendar.1
new file mode 100644 (file)
index 0000000..b4f7ee3
--- /dev/null
@@ -0,0 +1,51 @@
+.TH CALENDAR 1  "29 March 1982"
+.UC 4.2 Provisional
+.SH NAME
+calendar \- reminder service
+.SH SYNOPSIS
+.B calendar
+[ \- ]
+.SH DESCRIPTION
+.I Calendar 
+consults the file `calendar' in the current directory
+and prints out lines that contain today's or
+tomorrow's date anywhere in the line.
+Most reasonable month-day dates such as `Dec. 7,'
+`december 7,' `12/7,' etc., are recognized, but not
+`7 December' or `7/12'.
+If you give the month as ``*''
+with a date, i.e. ``* 1'', that day in any month will do.
+On weekends `tomorrow' extends through Monday.
+.PP
+When 
+an argument is present,
+.I calendar
+does its job for every user
+who has a file `calendar' in his login directory
+and sends him any positive results by
+.IR mail (1).
+Normally this is done daily in the wee hours under control of
+.IR cron (8).
+.PP
+The file `calendar' is first run through the ``C'' preprocessor,
+.IR /lib/cpp ,
+to include any other calendar files
+specified with the usual ``#include'' syntax.
+Included calendars will usually be shared by all users,
+maintained and documented by the local administration.
+.SH FILES
+calendar
+.br
+/usr/lib/calendar to figure out today's and tomorrow's dates
+.br
+/etc/passwd
+.br
+/tmp/cal*
+.br
+/lib/cpp, egrep, sed, mail as subprocesses
+.SH "SEE ALSO"
+at(1), cron(8), mail(1)
+.SH BUGS
+.I Calendar's
+extended idea of `tomorrow' doesn't account for
+holidays.
diff --git a/usr/man/man1/cat.1 b/usr/man/man1/cat.1
new file mode 100644 (file)
index 0000000..724f65e
--- /dev/null
@@ -0,0 +1,90 @@
+.TH CAT 1 "18 January 1983"
+.SH NAME
+cat \- catenate and print
+.SH SYNOPSIS
+.B cat
+[
+.B \-u
+] [
+.B \-n
+] [
+.B \-s
+] [
+.B \-v
+]
+file ...
+.br
+.SH DESCRIPTION
+.I Cat
+reads each
+.I file
+in sequence and displays it on the standard output.  Thus
+.PP
+.ti+15n
+cat file
+.PP
+displays the file on the standard output, and
+.PP
+.ti+15n
+cat file1 file2 >file3
+.PP
+concatenates the first two files and places the result on the third.
+.PP
+If no input file is given, or if the argument `\-' is encountered,
+.I cat
+reads from the standard input file.
+Output is buffered in 1024-byte blocks unless the standard
+output is a terminal, in which case it is line buffered.  The
+.B \-u
+option makes the output completely unbuffered.
+.PP
+The
+.B \-n
+option displays the output lines preceded by lines numbers, numbered
+sequentially from 1.  Specifying the 
+.B \-b
+option with the
+.B \-n
+option omits the line numbers from blank lines.
+.PP
+The
+.B \-s
+option crushes out multiple adjacent empty lines so that the
+output is displayed single spaced.
+.PP
+The
+.B \-v
+option displays non-printing characters so that they are visible.
+Control characters print like ^X for control-x; the delete character
+(octal 0177) prints as ^?.
+Non-ascii characters (with the high bit set) are printed as M-
+(for meta) followed by the character of the low 7 bits.  A
+.B \-e
+option may be given with the
+.B \-v
+option, which displays a `$' character at the end of each line.
+Specifying the 
+.B \-t
+option with the
+.B \-v
+option displays tab characters as ^I.
+.PP
+.SH "SEE ALSO"
+cp(1), ex(1), more(1), pr(1), tail(1)
+.SH MESSAGES
+.IP "cat: can't open \fIfilename\fP" 10
+.br
+\fICat\fP couldn't access the file specified by \fIfilename\fP.  Check
+the spelling of the filename, or check that the permissions allow read access.
+.IP "cat: input \fIfilename\fP is output" 10
+.br
+\fICat\fP displays this message if you try to redirect its output to a
+file which was one of the input files \(em in other words, \fIcat\fP
+won't overwrite one of its input files.
+.IP "cat: output write error" 10
+.br
+\fICat\fP has encountered some problem while trying to write the output
+file.
+.SH BUGS
+Beware of `cat a b >a' and `cat a b >b', which destroy
+the input files before reading them.
diff --git a/usr/man/man1/cb.1 b/usr/man/man1/cb.1
new file mode 100644 (file)
index 0000000..7e6c44b
--- /dev/null
@@ -0,0 +1,10 @@
+.TH CB 1 "18 January 1983"
+.SH NAME
+cb \- C program beautifier
+.SH SYNOPSIS
+.B cb
+.SH DESCRIPTION
+.I Cb
+places a copy of the C program from the standard input
+on the standard output with spacing and indentation
+that displays the structure of the program.
diff --git a/usr/man/man1/ccat.1 b/usr/man/man1/ccat.1
new file mode 100644 (file)
index 0000000..c841b6c
--- /dev/null
@@ -0,0 +1 @@
+.so /usr/man/man1/compact.1
diff --git a/usr/man/man1/cd.1 b/usr/man/man1/cd.1
new file mode 100644 (file)
index 0000000..ca60497
--- /dev/null
@@ -0,0 +1,31 @@
+.TH CD 1 "5 April 1980"
+.UC 4
+.SH NAME
+cd \- change working directory
+.SH SYNOPSIS
+.B cd
+directory
+.SH DESCRIPTION
+.I Directory
+becomes the new working directory.
+The process must have execute (search)
+permission in
+.IR directory .
+.PP
+Because a new process is created to execute each command,
+.I cd
+would be ineffective if it were written as a
+normal command.  It is therefore recognized and executed
+by the shells.
+In
+.IR csh (1)
+you may specify a list of directories in which
+.I directory
+is to be sought as a subdirectory if it is not
+a subdirectory of the current directory;
+see the description of the
+.I cdpath
+variable in
+.IR csh (1).
+.SH "SEE ALSO"
+csh(1), sh(1), pwd(1), chdir(2)
diff --git a/usr/man/man1/checknr.1 b/usr/man/man1/checknr.1
new file mode 100644 (file)
index 0000000..8f4bc3e
--- /dev/null
@@ -0,0 +1,103 @@
+.TH CHECKNR 1 "5 April 1980"
+.UC 4
+.SH NAME
+checknr \- check nroff/troff files
+.SH SYNOPSIS
+.B checknr
+[
+.B \-s
+] [
+.B \-f
+] [
+.BR \-a ".x1.y1.x2.y2. ... .xn.yn"
+] [
+.BR \-c ".x1.x2.x3 ... .xn"
+] [
+\fIfile\fP ...
+]
+.SH DESCRIPTION
+.I Checknr
+checks a list of
+.IR nroff (1)
+or
+.IR troff (1)
+input files for certain kinds of errors
+involving mismatched opening and closing delimiters
+and unknown commands.
+If no files are specified,
+.I checknr
+checks the standard input.
+Delimeters checked are:
+.IP (1)
+Font changes using \efx ... \efP.
+.IP (2)
+Size changes using \esx ... \es0.
+.IP (3)
+Macros that come in open ... close forms, for example,
+the .TS and .TE macros which must always come in pairs.
+.PP
+.I Checknr
+knows about the
+.IR ms (7)
+and
+.IR me (7)
+macro packages.
+.PP
+Additional pairs of macros can be added to the list using the
+.B \-a
+option.
+This must be followed by groups of six characters, each group defining
+a pair of macros.
+The six characters are
+a period,
+the first macro name,
+another period,
+and the second macro name.
+For example, to define a pair .BS and .ES, use \-\fBa\fP.BS.ES
+.PP
+The
+.B \-c
+option defines commands which would otherwise be complained about
+as undefined.
+.PP
+The
+.B \-f
+option requests
+.I checknr
+to ignore \ef font changes.
+.PP
+The
+.B \-s
+option requests
+.I checknr
+to ignore \es size changes.
+.PP
+.I Checknr
+is intended to be used on documents that are prepared with
+.I checknr
+in mind, much the same as
+.I lint.
+It expects a certain document writing style for \ef and \es commands,
+in that each \efx must be terminated with \efP and
+each \esx must be terminated with \es0.
+While it will work to directly go into the next font or explicitly
+specify the original font or point size,
+and many existing documents actually do this,
+such a practice will produce complaints from
+.I checknr.
+Since it is probably better to use the \efP and \es0 forms anyway,
+you should think of this as a contribution to your document
+preparation style.
+.SH SEE\ ALSO
+nroff(1), troff(1), ms(7), me(7), checkeqn(1)
+.SH DIAGNOSTICS
+Complaints about unmatched delimiters.
+.br
+Complaints about unrecognized commands.
+.br
+Various complaints about the syntax of commands.
+.SH AUTHOR
+Mark Horton
+.SH BUGS
+There is no way to define a 1 character macro name using
+.B \-a
diff --git a/usr/man/man1/chmod.1 b/usr/man/man1/chmod.1
new file mode 100644 (file)
index 0000000..6b79ec8
--- /dev/null
@@ -0,0 +1,103 @@
+.TH CHMOD 1 "18 January 1983"
+.SH NAME
+chmod \- change mode
+.SH SYNOPSIS
+\fBchmod\fP mode file ...
+.SH DESCRIPTION
+The mode of each named file is changed according to \fImode\fP,
+which may be absolute or symbolic.  An absolute \fImode\fP
+is an octal number constructed from the OR of the following modes:
+.TP 10
+4000
+set user ID on execution
+.br
+.ns
+.TP 10
+2000
+set group ID on execution
+.br
+.ns
+.TP 10
+1000
+sticky bit, see
+.IR  chmod (2)
+.br
+.ns
+.TP 10
+0400
+read by owner
+.br
+.ns
+.TP 10
+0200
+write by owner
+.br
+.ns
+.TP 10
+0100
+execute (search in directory) by owner
+.br
+.ns
+.TP 10
+0070
+read, write, execute (search) by group
+.br
+.ns
+.TP 10
+0007
+read, write, execute (search) by others
+.LP
+A symbolic \fImode\fP has the form:
+.IP
+.RI [ who ]
+\fIop permission\fP
+.RI [ "op permission" "] ..."
+.LP
+The \fIwho\fP part is a combination of the letters \fBu\fP
+(for user's permissions), \fBg\fP (group) and \fBo\fP (other).
+The letter \fBa\fP stands for all, or \fBugo.\fP
+If \fIwho\fP is omitted, the default is \fIa\fP
+but the setting of the file creation mask (see umask(2)) is taken into account.
+.LP
+\fIOp\fP can be \fB+\fP to add \fIpermission\fP to the file's mode,
+\fB\-\fP to take away \fIpermission\fP and \fB=\fP to assign
+\fIpermission\fP absolutely (all other bits will be reset).
+.LP
+\fIPermission\fP is any combination of the letters \fBr\fP (read),
+\fBw\fP (write), \fBx\fP (execute), \fBs\fP (set owner or group id)
+and \fBt\fP (save text \- sticky).  Letters
+.BR u,
+\fBg\fP or \fBo\fP indicate that \fIpermission\fP
+is to be taken from the current mode.  Omitting \fIpermission\fP
+is only useful with \fB=\fP to take away all permissions.
+.SH EXAMPLES
+.LP
+The first example denies write permission to others,
+the second makes a file executable:
+.IP
+chmod o\-w file
+.br
+chmod +x file
+.LP
+Multiple symbolic modes separated by commas may be given.
+Operations are performed in the order specified.  The letter
+\fBs\fP is only useful with \fBu\fP or \fBg.\fP
+.LP
+Only the owner of a file (or the super-user) may change its mode.
+.SH "SEE ALSO"
+ls(1), chmod(2), stat(2), umask(2), chown(8)
+.SH MESSAGES
+.LP
+.IP "Usage: chmod [ugoa][+-=][rwxstugo] file ..." 10
+.br
+Standard memory jogger message indicating how to use the \fIchmod\fP command.
+.IP "chmod: can't access \fIfilename\fP" 10
+.br
+The file or directory specified by \fIfilename\fP does not exist.
+.IP "chmod: can't change \fIfilename\fP" 10
+.br
+You are trying to change permissions on a file or directory which you don't own.
+.IP "chmod: invalid mode" 10
+.br
+The file mode specified on the command line is incorrect.  This often
+happens when you type the filename first and the mode second.
diff --git a/usr/man/man1/clear.1 b/usr/man/man1/clear.1
new file mode 100644 (file)
index 0000000..75f772c
--- /dev/null
@@ -0,0 +1,14 @@
+.TH CLEAR 1 "24 February 1979"
+.UC
+.SH NAME
+clear \- clear terminal screen
+.SH SYNOPSIS
+.B clear
+.SH DESCRIPTION
+.I Clear
+clears your screen if this is possible.
+It looks in the environment for the terminal type and then in
+.I /etc/termcap
+to figure out how to clear the screen.
+.SH FILES
+/etc/termcap   terminal capability data base
diff --git a/usr/man/man1/cmp.1 b/usr/man/man1/cmp.1
new file mode 100644 (file)
index 0000000..ce7389b
--- /dev/null
@@ -0,0 +1,42 @@
+.TH CMP 1 "18 January 1983"
+.SH NAME
+cmp \- compare two files
+.SH SYNOPSIS
+.B cmp
+[
+.B \-l
+] [
+.B \-s
+]
+file1 file2
+.SH DESCRIPTION
+The two files are
+compared.
+(If
+.I file1
+is `\-',
+the standard input is used.)
+Under default options,
+.I cmp
+makes no comment if the files are the same;
+if they differ, it announces the byte and line number
+at which the difference occurred.
+If one file is an initial subsequence
+of the other, that fact is noted.
+.PP
+Options:
+.TP 6
+.B  \-l
+Print the byte number (decimal) and the
+differing bytes (octal) for each difference.
+.TP 6
+.B  \-s
+Print nothing for differing files;
+return codes only.
+.dt
+.SH "SEE ALSO"
+diff(1), comm(1)
+.SH DIAGNOSTICS
+Exit code 0 is returned for identical
+files, 1 for different files, and 2 for an
+inaccessible or missing argument.
diff --git a/usr/man/man1/col.1 b/usr/man/man1/col.1
new file mode 100644 (file)
index 0000000..fb7f4d3
--- /dev/null
@@ -0,0 +1,67 @@
+.TH COL 1 "18 January 1983"
+.SH NAME
+col \- filter reverse line feeds
+.SH SYNOPSIS
+.B col [\|\-bfx\|]
+.SH DESCRIPTION
+.I Col
+reads the standard input and writes the standard output.
+It performs the line overlays implied by reverse line
+feeds (ESC-7 in ASCII)
+and by forward and reverse half line feeds (ESC-9 and ESC-8).
+.I Col
+is particularly useful for filtering multicolumn
+output made with the `.rt' command of
+.I nroff
+and output resulting from use of the
+.IR tbl (1)
+preprocessor.
+.PP
+Although
+.I col
+accepts half line motions in its input, it normally does not
+emit them on output.
+Instead, text that would appear between lines is moved to the next lower
+full line boundary.
+This treatment can be suppressed by the
+.B \-f
+(fine) option; in this case
+the output from
+.I col
+may contain forward half line feeds (ESC-9), but will still never contain
+either kind of reverse line motion.
+.PP
+If the
+.B \-b
+option is given,
+.I col
+assumes that the output device in use is not capable of backspacing.
+In this case, if several characters are to appear in the same place,
+only the last one read will be taken.
+.PP
+The control characters SO (ASCII code 017),
+and SI (016) are assumed
+to start and end text in an alternate character set.
+The character set (primary or alternate) associated with each printing
+character read is remembered; on output, SO and SI characters are generated
+where necessary to maintain the correct treatment of each character.
+.PP
+.I Col
+normally converts white space to tabs to shorten printing time.
+If the
+.B \-x
+option is given, this conversion is suppressed.
+.PP
+All control characters are removed from the input except space,
+backspace,
+tab, return, newline, ESC (033) followed by one of 7, 8, 9, SI, SO, and VT
+(013).
+This last character is an alternate form of full reverse line feed, for
+compatibility with some other hardware conventions.
+All other non-printing characters are ignored.
+.SH "SEE ALSO"
+troff(1), tbl(1), greek(1)
+.SH BUGS
+Can't back up more than 128 lines.
+.br
+No more than 800 characters, including backspaces, on a line.
diff --git a/usr/man/man1/colcrt.1 b/usr/man/man1/colcrt.1
new file mode 100644 (file)
index 0000000..913c486
--- /dev/null
@@ -0,0 +1,70 @@
+.TH COLCRT 1 "24 February 1979"
+.UC
+.SH NAME
+colcrt \- filter nroff output for CRT previewing
+.SH SYNOPSIS
+.B colcrt
+[
+.B \-
+] [
+.B \-2
+] [
+file ...
+]
+.SH DESCRIPTION
+.I Colcrt
+provides virtual half-line and reverse line feed sequences
+for terminals without such capability, and on which overstriking
+is destructive.
+Half-line characters and underlining (changed to dashing `\-')
+are placed on new lines in between the normal output lines.
+.PP
+The optional
+.B \- 
+suppresses all underlining.
+It is especially useful for previewing
+.I allboxed
+tables from
+.IR  tbl (1).
+.PP
+The option
+.B \-2
+causes all half-lines to be printed, effectively double spacing the output.
+Normally, a minimal space output format is used which will suppress empty
+lines.
+The program never suppresses two consecutive empty lines, however.
+The
+.B \-2
+option is useful for sending output to the line printer when the output
+contains superscripts and subscripts which would otherwise be invisible.
+.PP
+A typical use of
+.I colcrt
+would be
+.PP
+.DT
+       tbl exum2.n | nroff \-ms | colcrt \- | more
+.SH "SEE ALSO"
+nroff/troff(1), col(1), more(1), ul(1)
+.SH AUTHOR
+William Joy
+.SH BUGS
+Should fold underlines onto blanks even with the
+`\fB\-\fR'
+option so that
+a true underline character would show; if we did this, however,
+.I colcrt
+wouldn't get rid of
+.I cu'd
+underlining
+completely.
+.PP
+Can't back up more than 102 lines.
+.PP
+General overstriking is lost;
+as a special case `|' overstruck with `\-' or underline becomes `+'.
+.PP
+Lines are trimmed to 132 characters.
+.PP
+Some provision should be made for processing superscripts and subscripts
+in documents which are already double-spaced.
diff --git a/usr/man/man1/colrm.1 b/usr/man/man1/colrm.1
new file mode 100644 (file)
index 0000000..a6a6ac1
--- /dev/null
@@ -0,0 +1,27 @@
+.TH COLRM 1 "18 January 1983"
+.UC 4
+.SH NAME
+colrm \- remove columns from a file
+.SH SYNOPSIS
+.B colrm
+[
+startcol
+[
+endcol
+]
+]
+.SH DESCRIPTION
+.I Colrm
+removes selected columns from a file.  Input is taken from standard input.
+Output is sent to standard output.
+.PP
+If called with one parameter the columns
+of each line will be removed starting with the specified column.
+If called with two parameters the columns from the first column
+to the last column will be removed.
+.PP
+Column numbering starts with column 1.
+.SH "SEE ALSO"
+expand(1)
+.SH AUTHOR
+Jeff Schriebman
diff --git a/usr/man/man1/comm.1 b/usr/man/man1/comm.1
new file mode 100644 (file)
index 0000000..e7dc65c
--- /dev/null
@@ -0,0 +1,40 @@
+.TH COMM 1  "18 January 1983"
+.SH NAME
+comm \- select or reject lines common to two sorted files
+.SH SYNOPSIS
+.B comm
+[
+.B \-
+[
+.B 123
+]
+] file1 file2
+.SH DESCRIPTION
+.I Comm
+reads
+.I file1
+and
+.I file2,
+which should be ordered in ASCII collating sequence,
+and produces a three column output: lines only in
+.I file1;
+lines only in
+.I file2;
+and lines in both files.
+The filename `\-' means the standard input.
+.PP
+Flags 1, 2, or 3 suppress printing of the corresponding
+column.
+Thus
+.B comm
+.B \-12
+prints only the lines common to the two files;
+.B comm
+.B \-23
+prints only lines in the first file but not in the second;
+.B comm
+.B \-123
+is a no-op.
+.PP
+.SH "SEE ALSO"
+cmp(1), diff(1), uniq(1)
diff --git a/usr/man/man1/compact.1 b/usr/man/man1/compact.1
new file mode 100644 (file)
index 0000000..c34a91d
--- /dev/null
@@ -0,0 +1,90 @@
+.TH COMPACT 1 "18 January 1983"
+.UC 4
+.SH NAME
+compact, uncompact, ccat \- compress and uncompress files, and cat them
+.SH SYNOPSIS
+.B compact
+[ name ... ]
+.br
+.B uncompact
+[
+name ...
+]
+.br
+.B ccat
+[ file ... ]
+.SH DESCRIPTION
+.I Compact
+compresses the named files using an adaptive Huffman code.  If no file
+names are given, the standard input is compacted to the standard output.
+.I Compact
+operates as an on-line algorithm.  Each time a byte is read,
+it is encoded immediately according to the current prefix code.
+This code is an optimal Huffman code for the set of frequencies seen so far.
+It is unnecessary to prepend a decoding tree to the compressed file
+since the encoder and the decoder start in the same state and stay
+synchronized.  Furthermore,
+.I compact
+and
+.I uncompact
+can operate as filters.  In particular,
+.sp
+       ... | compact | uncompact | ...
+.br
+.sp
+operates as a (very slow) no-op.
+.PP
+When an argument
+.I file
+is given, it is compacted and the resulting file is placed in
+.I file.C;
+.I file
+is unlinked.  The first two bytes of the compacted file code the
+fact that the file is compacted.  This code is used to prohibit recompaction.
+.PP
+The amount of compression to be expected depends on the type of file being
+compressed.  Typical values of compression are:
+Text (38%), Pascal Source (43%), C Source (36%) and Binary (19%).
+These values are the percentages of file bytes reduced.
+.PP
+.I Uncompact
+restores the original file from a file compressed by
+.I compact.
+If no file names are given, the standard input is uncompacted to
+the standard output.
+.PP
+.I Ccat
+cats the original file from a file compressed by
+.I compact,
+without uncompressing the file.
+.SH RESTRICTION
+The last segment of the filename must contain fewer than thirteen characters
+to allow space for the appended '.C'.
+.SH FILES
+.ta 1i
+*.C    compacted file created by compact, removed by uncompact
+.SH "SEE ALSO"
+Gallager, Robert G., `Variations on a Theme of Huffman',
+.I "I.E.E.E.  Transactions on Information Theory,"
+vol. IT-24, no. 6, November 1978, pp. 668 - 674.
+.SH AUTHOR
+Colin L. Mc Master
+.  \".SH MESSAGES
+.  \".IP "Compression : %4ld.%c%c%%" 10
+.  \".br
+.  \".IP "\fIfilename\fP: File name too long" 10
+.  \".br
+.  \".IP "\fIfilename\fP: Can't compact a directory" 10
+.  \".br
+.  \".IP "\fIfilename\fP: Already compacted." 10
+.  \".br
+.  \".IP "\fIfilename\fP: Already packed using program pack.  Use unpack." 10
+.  \".br
+.  \".IP "\fIfilename\fP: " 10
+.  \".br
+.  \".IP "Not compacted.  " 10
+.  \".br
+.  \".IP "Does not save bytes." 10
+.  \".br
+.  \".IP "Unsuccessful compact of standard input to standard output." 10
+.  \".br
diff --git a/usr/man/man1/cp.1 b/usr/man/man1/cp.1
new file mode 100644 (file)
index 0000000..6ef3402
--- /dev/null
@@ -0,0 +1,56 @@
+.TH CP 1 "1 April 1982"
+.UC 4.1 Provisional
+.SH NAME
+cp \- copy
+.SH SYNOPSIS
+.B cp
+[
+.B \-i
+] [
+.B \-r
+] file1 file2
+.PP
+.B cp
+[
+.B \-i
+] [
+.B \-r
+] file ... directory
+.SH DESCRIPTION
+.I File1
+is copied onto
+.IR file2 .
+The mode and owner of  
+.I file2
+are preserved if it already
+existed; the mode of the source file
+is used otherwise.
+.PP
+In the second form, one or more
+.I files
+are copied into the
+.I directory
+with their original file-names.
+.PP
+.I Cp
+refuses to copy a file onto itself.
+.PP
+If the 
+.B \-i
+option is specified, 
+.I cp
+will prompt the user with the name of the file
+whenever the copy will cause an old file to be
+overwritten. An answer of 'y' will cause 
+.I cp
+to continue. Any other answer will prevent it
+from overwriting the file.
+.PP
+If the
+.B \-r
+option is specified and any of the source files are directories,
+.I cp
+copies each subtree rooted at that name; in this case
+the destination must be a directory.
+.SH "SEE ALSO"
+cat(1), pr(1), mv(1)
diff --git a/usr/man/man1/crypt.1 b/usr/man/man1/crypt.1
new file mode 100644 (file)
index 0000000..8372150
--- /dev/null
@@ -0,0 +1,85 @@
+.TH CRYPT 1 "18 January 1983"
+.SH NAME
+crypt \- encode/decode
+.SH SYNOPSIS
+.B crypt
+[ password ]
+.SH DESCRIPTION
+.I Crypt
+reads from the standard input and writes
+on the standard output.
+The
+.I password
+is a key that selects a particular transformation.
+If no
+.I password 
+is given,
+.I crypt
+demands a key from the terminal and turns
+off printing while the key is being typed in.
+.I Crypt
+encrypts and decrypts with the same key:
+.PP
+       crypt key <clear >cypher
+.br
+       crypt key <cypher | pr
+.PP
+will print the clear.
+.PP
+Files encrypted by
+.I crypt
+are compatible with those treated by the editor
+.I ed
+in encryption mode.
+.PP
+The security of encrypted files depends on three factors:
+the fundamental method must be hard to solve;
+direct search of the key space must be infeasible;
+`sneak paths' by which keys or cleartext can become
+visible must be minimized.
+.PP
+.I Crypt
+implements a one-rotor machine designed along the lines
+of the German Enigma, but with a 256-element rotor.
+Methods of attack on such machines are known, but not widely;
+moreover the amount of work required is likely to be large.
+.PP
+The transformation of a key into the internal
+settings of the machine is deliberately designed to
+be expensive, i.e. to take a substantial fraction of
+a second to compute.
+However,
+if keys are restricted to (say)
+three lower-case letters,
+then encrypted files can be read by expending only
+a substantial fraction of
+five minutes of machine time.
+.PP
+Since the key is an argument to the
+.I crypt
+command,
+it is potentially visible to users executing
+.IR ps (1)
+or a derivative.
+To minimize this possibility,
+.I crypt
+takes care to destroy any record of the key
+immediately upon entry.
+No doubt the choice of keys and key security
+are the most vulnerable aspect of
+.I crypt.
+.SH FILES
+/dev/tty for typed key
+.SH "SEE ALSO"
+ed(1),
+makekey(8)
+.SH BUGS
+There is no warranty of merchantability nor any warranty
+of fitness for a particular purpose nor any other warranty,
+either express or implied, as to the accuracy of the
+enclosed materials or as to their suitability for any
+particular purpose.  Accordingly, Bell Telephone
+Laboratories assumes no responsibility for their use by the
+recipient.   Further, Bell Laboratories assumes no obligation
+to furnish any assistance of any kind whatsoever, or to
+furnish any additional information or documentation.
diff --git a/usr/man/man1/dc.1 b/usr/man/man1/dc.1
new file mode 100644 (file)
index 0000000..6798fdf
--- /dev/null
@@ -0,0 +1,198 @@
+.TH DC 1  "18 January 1983"
+.SH NAME
+dc \- desk calculator
+.SH SYNOPSIS
+.B dc
+[ file ]
+.SH DESCRIPTION
+.I Dc
+is an arbitrary precision arithmetic package.
+Ordinarily it operates on decimal integers,
+but one may specify an input base, output base,
+and a number of fractional digits to be maintained.
+The overall structure of
+.I dc
+is
+a stacking (reverse Polish) calculator.
+If an argument is given,
+input is taken from that file until its end,
+then from the standard input.
+The following constructions are recognized:
+.HP 6
+number
+.br
+The value of the number is pushed on the stack.
+A number is an unbroken string of the digits 0-9.
+It may be preceded by an underscore _ to input a
+negative number.
+Numbers may contain decimal points.
+.HP 6
++  \- /  *  %  ^
+.br
+The
+top two values on the stack are added
+(+),
+subtracted
+(\-),
+multiplied (*),
+divided (/),
+remaindered (%),
+or exponentiated (^).
+The two entries are popped off the stack;
+the result is pushed on the stack in their place.
+Any fractional part of an exponent is ignored.
+.TP
+.BI s x
+The
+top of the stack is popped and stored into
+a register named
+.I x,
+where
+.I x
+may be any character.
+If
+the
+.B s
+is capitalized,
+.I x
+is treated as a stack and the value is pushed on it.
+.TP
+.BI l x
+The
+value in register
+.I x
+is pushed on the stack.
+The register
+.I x
+is not altered.
+All registers start with zero value.
+If the
+.B l
+is capitalized,
+register
+.I x
+is treated as a stack and its top value is popped onto the main stack.
+.TP
+.B  d
+The
+top value on the stack is duplicated.
+.TP
+.B  p
+The top value on the stack is printed.
+The top value remains unchanged.
+.B P
+interprets the top of the stack as an ascii string,
+removes it, and prints it.
+.TP
+.B  f
+All values on the stack and in registers are printed.
+.TP
+.B  q
+exits the program.
+If executing a string, the recursion level is
+popped by two.
+If
+.B q
+is capitalized,
+the top value on the stack is popped and the string execution level is popped
+by that value.
+.TP
+.B  x
+treats the top element of the stack as a character string
+and executes it as a string of dc commands.
+.TP
+.B  X
+replaces the number on the top of the stack with its scale factor.
+.TP
+.B  "[ ... ]"
+puts the bracketed ascii string onto the top of the stack.
+.HP 6
+.I  "<x  >x  =x"
+.br
+The
+top two elements of the stack are popped and compared.
+Register
+.I x
+is executed if they obey the stated
+relation.
+.TP
+.B  v
+replaces the top element on the stack by its square root.
+Any existing fractional part of the argument is taken
+into account, but otherwise the scale factor is ignored.
+.TP
+.B  !
+interprets the rest of the line as a UNIX command.
+.TP
+.B  c
+All values on the stack are popped.
+.TP
+.B  i
+The top value on the stack is popped and used as the
+number radix for further input.
+.B I
+pushes the input base on the top of the stack.
+.TP
+.B  o
+The top value on the stack is popped and used as the
+number radix for further output.
+.TP
+.SM
+.B O
+pushes the output base on the top of the stack.
+.TP
+.B  k
+the top of the stack is popped, and that value is used as
+a non-negative scale factor:
+the appropriate number of places
+are printed on output,
+and maintained during multiplication, division, and exponentiation.
+The interaction of scale factor,
+input base, and output base will be reasonable if all are changed
+together.
+.TP
+.B  z
+The stack level is pushed onto the stack.
+.TP
+.SM
+.B  Z
+replaces the number on the top of the stack with its length.
+.TP
+.B  ?
+A line of input is taken from the input source (usually the terminal)
+and executed.
+.TP
+.B "; :"
+are used by 
+.I bc
+for array operations.
+.PP
+An example which prints the first ten values of n! is
+.nf
+.PP
+.in +3
+[la1+dsa*pla10>y]sy
+.br
+0sa1
+.br
+lyx
+.fi
+.SH "SEE ALSO"
+bc(1),
+which is a preprocessor for
+.I dc
+providing infix notation and a C-like syntax
+which implements functions and reasonable control
+structures for programs.
+.SH DIAGNOSTICS
+`x is unimplemented' where x is an octal number.
+.br
+`stack empty' for not enough elements on the stack to do what was asked.
+.br
+`Out of space' when the free list is exhausted (too many digits).
+.br
+`Out of headers' for too many numbers being kept around.
+.br
+`Out of pushdown' for too many items on the stack.
+.br
+`Nesting Depth' for too many levels of nested execution.
diff --git a/usr/man/man1/dd.1 b/usr/man/man1/dd.1
new file mode 100644 (file)
index 0000000..b0b649c
--- /dev/null
@@ -0,0 +1,200 @@
+.TH DD 1  "18 January 1983"
+.UC 4
+.SH NAME
+dd \- convert and copy a file
+.SH SYNOPSIS
+.B dd
+[option=value] ...
+.SH DESCRIPTION
+.I Dd
+copies the specified input file
+to the specified output with
+possible conversions.
+The standard input and output are used by default.
+The input and output block size may be
+specified to take advantage of raw physical I/O.
+.PP
+.br
+.ns
+.TP 15
+.I option
+.I values
+.br
+.ns
+.TP 
+if=
+input file name; standard input is default
+.br
+.ns
+.TP 
+of=
+output file name; standard output is default
+.br
+.ns
+.TP 
+.RI ibs= n
+input block size
+.I n
+bytes (default 512)
+.br
+.ns
+.TP 
+.RI obs= n
+output block size (default 512)
+.br
+.ns
+.TP 
+.RI bs= n
+set both input and output block size,
+superseding
+.I ibs
+and
+.I obs;
+also, if no conversion is specified,
+it is particularly efficient since no copy need be done
+.br
+.ns
+.TP 
+.RI cbs= n
+conversion buffer size
+.br
+.ns
+.TP 
+.RI skip= n
+skip
+.IR n ""
+input records before starting copy
+.br
+.ns
+.TP
+.RI files= n
+copy
+.I n
+input files before terminating (makes sense only
+where input is a magtape or similar device).
+.br
+.ns
+.TP 
+.RI seek= n
+seek
+.I n
+records from beginning of output file before copying
+.br
+.ns
+.TP 
+count=\fIn\fR
+copy only
+.IR n ""
+input records
+.br
+.ns
+.TP 
+conv=ascii
+.ds h \h'\w'conv='u'
+convert EBCDIC to ASCII
+.br
+.ns
+.IP \*hebcdic
+convert ASCII to EBCDIC
+.br
+.ns
+.IP \*hibm
+slightly different map of ASCII to EBCDIC
+.br
+.ns
+.IP \*hblock
+convert variable length records to fixed length
+.br
+.ns
+.IP \*hunblock
+convert fixed length records to variable length
+.br
+.ns
+.IP \*hlcase
+map alphabetics to lower case
+.br
+.ns
+.IP \*hucase
+map alphabetics to upper case
+.br
+.ns
+.IP \*hswab
+swap every pair of bytes
+.br
+.ns
+.IP \*hnoerror
+do not stop processing on an error
+.br
+.ns
+.IP \*hsync
+pad every input record to
+.I  ibs
+.br
+.ns
+.IP "\*h... , ..."
+several comma-separated conversions
+.PP
+.fi
+Where sizes are specified,
+a number of bytes is expected.
+A number may end with
+.B "k, b"
+or
+.B w
+to specify multiplication by
+1024, 512, or 2 respectively;
+a pair of numbers may be separated by
+.B x
+to indicate a product.
+.PP
+.I Cbs
+is used only if
+.I ascii,
+.I unblock,
+.I ebcdic,
+.I ibm,
+or
+.I block
+conversion is specified.
+In the first two cases,
+.I cbs
+characters are placed into the conversion buffer, any specified
+character mapping is done,
+trailing blanks trimmed and new-line added
+before sending the line to the output.
+In the latter three cases, characters are read into the
+conversion buffer, and blanks added
+to make up an
+output record of size
+.IR cbs .
+.PP
+After completion,
+.I dd
+reports the number of whole and partial input and output
+blocks.
+.PP
+For example, to read an EBCDIC tape blocked ten 80-byte
+EBCDIC card images per record into the ASCII file
+.I x:
+.IP
+.nf
+dd if=/dev/rmt0 of=x ibs=800 cbs=80 conv=ascii,lcase
+.fi
+.PP
+Note the use of raw magtape.
+.I Dd
+is especially suited to I/O on the raw
+physical devices because it allows reading
+and writing in arbitrary record sizes.
+.SH "SEE ALSO"
+cp(1), tr(1)
+.SH DIAGNOSTICS
+f+p records in(out): numbers of full and partial records read(written)
+.SH BUGS
+The ASCII/EBCDIC conversion tables are
+taken
+from the 256 character standard in
+the CACM Nov, 1968.
+The `ibm' conversion, while less blessed as a standard,
+corresponds better to certain IBM print train conventions.
+There is no universal solution.
diff --git a/usr/man/man1/deroff.1 b/usr/man/man1/deroff.1
new file mode 100644 (file)
index 0000000..7811840
--- /dev/null
@@ -0,0 +1,40 @@
+.TH DEROFF 1  "18 January 1983"
+.SH NAME
+deroff \- remove nroff, troff, tbl and eqn constructs
+.SH SYNOPSIS
+.B deroff
+[
+.B \-w
+]
+file ...
+.SH DESCRIPTION
+.I Deroff
+reads each file in sequence and removes all
+.I nroff
+and
+.I troff
+command lines, backslash constructions, macro definitions,
+.I eqn
+constructs (between `.EQ' and `.EN' lines or between delimiters),
+and table descriptions and writes the remainder on the standard output.
+.I Deroff
+follows chains of included files (`.so' and `.nx' commands);
+if a file has already been included, a `.so' is ignored and a `.nx'
+terminates execution.  If no input file is given,
+.I deroff
+reads from the standard input file.
+.PP
+If the
+.B \-w
+flag is given, the output is a word list, one `word' (string of letters,
+digits, and apostrophes, beginning with a letter; apostrophes are removed)
+per line, and all other characters ignored.
+Otherwise, the output follows the original, with the deletions mentioned above.
+.SH "SEE ALSO"
+troff(1), eqn(1), tbl(1)
+.SH BUGS
+.I Deroff
+is not a complete
+.I troff
+interpreter, so it can be confused by subtle constructs.
+Most errors result in too much rather than too little output.
diff --git a/usr/man/man1/pi.1 b/usr/man/man1/pi.1
new file mode 100644 (file)
index 0000000..2781f1e
--- /dev/null
@@ -0,0 +1,155 @@
+.TH PI 1 "8 April 1979"
+.UC
+.SH NAME
+pi \- Pascal interpreter code translator
+.SH SYNOPSIS
+.B pi
+[
+.B option
+] [
+.B \-i
+name ...
+] name.p
+.SH DESCRIPTION
+.I Pi
+translates the program in the file
+.I name.p
+leaving interpreter code in the file
+.I obj
+in the current directory.
+The interpreter code can be executed using
+.I px.
+.I Pix
+performs the functions of
+.I pi
+and
+.I px
+for `load and go' Pascal.
+.PP
+The following flags are interpreted by 
+.I pi;
+the associated options can also be controlled in comments within the program
+as described in the
+.I "Berkeley Pascal User's Manual."
+.TP 6
+.B  \-b
+Block buffer the file
+.I output.
+.TP 6
+.B  \-i
+Enable the listing for
+any specified procedures and functions and while processing any specified
+.B include
+files.
+.TP 6
+.B  \-l
+Make a program listing during translation.
+.TP 6
+.B  \-n
+Begin each listed
+.B include
+file on a new page with a banner line.
+.TP 6
+.B  \-p
+Suppress the post-mortem control flow backtrace
+if an error occurs;
+suppress statement limit counting.
+.TP 6
+.B  \-s
+Accept standard Pascal only;
+non-standard constructs cause warning diagnostics.
+.TP 6
+.B  \-t
+Suppress runtime tests of subrange variables and treat
+.B assert
+statements as comments.
+.TP 6
+.B  \-u
+Card image mode;
+only the first 72 characters of input lines are used.
+.TP 6
+.B  \-w
+Suppress warning diagnostics.
+.TP 6
+.B  \-z
+Allow execution profiling with
+.I pxp
+by generating statement counters, and arranging for the
+creation of the profile data file
+.I pmon.out
+when the resulting object is executed.
+.dt
+.SH FILES
+file.p                         input file
+.br
+file.i                         \fBinclude\fR file(s)
+.br
+/usr/lib/pi2.*strings          text of the error messages
+.br
+.nf
+/usr/lib/how_pi*               basic usage explanation
+.fi
+obj                            interpreter code output
+.SH "SEE ALSO"
+Berkeley Pascal User's Manual
+.br
+pix(1),
+px(1),
+pxp(1),
+pxref(1)
+.SH DIAGNOSTICS
+For a basic explanation do
+.IP
+.B     pi
+.PP
+In the diagnostic output of the translator,
+lines containing syntax errors are listed with a flag indicating the
+point of error.
+Diagnostic messages indicate the action which the recovery mechanism
+took in order to be able to continue parsing.
+Some diagnostics indicate only that the input is `malformed.'
+This occurs if the recovery can find no simple correction to make the input
+syntactically valid.
+.LP
+Semantic error diagnostics indicate a line in the source text near the
+point of error.
+Some errors evoke more than one diagnostic to help pinpoint the error;
+the follow-up messages begin with an ellipsis `...'.
+.LP
+.ne 8
+The first character of each error message indicates its class:
+.LP
+.ta 1ic 2.i
+       E       Fatal error; no code will be generated.
+.br
+       e       Non-fatal error.
+.br
+       w       Warning \- a potential problem.
+.br
+       s       Non-standard Pascal construct warning.
+.LP
+If a severe error occurs which inhibits further processing,
+the translator will give a diagnostic and then `QUIT'.
+.SH AUTHORS
+Charles B. Haley, William N. Joy, and Ken Thompson
+.br
+Ported to VAX-11 by Peter Kessler
+.SH BUGS
+The keyword
+.B packed
+is recognized but has no effect.
+.PP
+For clarity,
+semantic errors should be flagged at an appropriate place in the source text,
+and multiple instances of the `same' semantic error should be summarized
+at the end of a
+.B procedure
+or
+.B function
+rather than evoking many diagnostics.
+.PP
+When
+.B include
+files are present,
+diagnostics relating to the last procedure in one file may appear after the
+beginning of the listing of the next.
diff --git a/usr/man/man1/w.1 b/usr/man/man1/w.1
new file mode 100644 (file)
index 0000000..766d72a
--- /dev/null
@@ -0,0 +1,83 @@
+.TH W 1 "15 August 1980"
+.UC 4
+.SH NAME
+w \- who is on and what they are doing
+.SH SYNOPSIS
+.B w
+[
+.B \-h
+] [
+.B \-s
+] [ user ]
+.SH DESCRIPTION
+.I W
+prints a summary of the current activity on the system,
+including what each user is doing.
+The heading line shows the current time of day,
+how long the system has been up,
+the number of users logged into the system,
+and the load averages.
+The load average numbers give the number of jobs in the run queue
+averaged over 1, 5 and 15 minutes.
+.PP
+The fields output are:
+the users login name,
+the name of the tty the user is on,
+the time of day the user logged on,
+the number of minutes since the user last typed anything,
+the CPU time used by all processes and their children on that terminal,
+the CPU time used by the currently active processes,
+the name and arguments of the current process.
+.PP
+The
+.B \-h
+flag suppresses the heading.
+The
+.B \-s
+flag asks for a short form of output.
+In the short form, the tty is abbreviated, the login time and cpu times
+are left off, as are the arguments to commands.
+.B \-l
+gives the long output, which is the default.
+.PP
+If a
+.I user
+name is included,
+the output will be restricted to that user.
+.SH FILES
+.ta 1i
+/etc/utmp
+.br
+/dev/kmem
+.br
+/dev/drum
+.SH "SEE ALSO"
+who(1), finger(1), ps(1)
+.SH AUTHOR
+Mark Horton
+.SH BUGS
+The notion of the ``current process'' is muddy.
+The current algorithm is ``the highest numbered process on
+the terminal that is not ignoring interrupts,
+or, if there is none, the highest numbered process on the terminal''.
+This fails, for example, in critical sections of programs
+like the shell and editor,
+or when faulty programs running in the background
+fork and fail to ignore interrupts.
+(In cases where no process can be found,
+.I w
+prints ``\-''.)
+.PP
+The CPU time is only an estimate, in particular, if someone leaves a
+background process running after logging out, the person currently
+on that terminal is ``charged'' with the time.
+.PP
+Background processes are not shown, even though they account for
+much of the load on the system.
+.PP
+Sometimes processes, typically those in the background, are
+printed with null or garbaged arguments.
+In these cases, the name of the command is printed in parentheses.
+.PP
+W does not know about the new conventions for detection of background jobs.
+It will sometimes find a background job instead of the right one.