.TH PSIFY 1 "15 JANUARY 1988"
.UC 4
.SH NAME
psify \- pretty print C, CLU, SCHEME, Java, and ARGUS source files for
P\s-2OST\s+2S\s-2CRIPT\s+2
printers
.SH SYNOPSIS
.B psify
[options] [file] ...
.SH DESCRIPTION
.IR Psify
is similar to
.IR pressify ,
a program that converted ASCII files to PRESS format to be printed on
the Dover.  However,
.IR psify
converts files to P\s-2OST\s+2S\s-2CRIPT\s+2 format for printing on a
P\s-2OST\s+2S\s-2CRIPT\s+2 printer.
.IR Psify
will work with any ASCII file, but is meant for printing C, CLU, and ARGUS
programs.  It uses the file name extension to determine how to print a
file.  ".c" and ".h" are assumed to be C, ".clu" is CLU, ".arg" is ARGUS,
".scm" is SCHEME, ".java" and ".pj" are assumed to be Java, and anything
else is printed as plain text.  For C, CLU, SCHEME, Java, and ARGUS,
comments and reserved
words are printed in different fonts
to make the listings easier to read.  By default, comments are printed
in italics and reserved words are printed in bold.
.PP
If no files are given on the command line,
.IR psify
will read from standard input.  Also,
.IR psify
always produces output on standard output.  Normally, the output should be
piped to
.IR lpr
in order to actually produce a printout.
.sp
Options are:
.TP
.BI \-fb font
sets the normal body font.  Default is Courier10.  The size may be
specified with the font (all one word).  If it is omitted, the
default size will be used.
.TP
.BI \-fh font
sets font for page headers.  Default is Times-BoldItalic12.
.TP
.BI \-fr font
sets font for reserved words (for program source files).  Default is
Courier-Bold10.
.TP
.BI \-fc font
sets font for comments (for program source files).  Default is
Courier-Oblique10.
.TP
.BI \-fx font
sets font for reserved words in comments (for example, javadoc comments 
in program source files).  Default is Courier-BoldOblique10.
.TP
.BI \-fa font
sets font for body, reserved words, and comments to the font
specified.
.TP
.BI \-sz number
if
.IR number
is greater than zero, this option forces the body, comment, and reserved
fonts to all be this size.
Lets you just change the size of the fonts used without specifying each
font individually.
.TP
.BI \-lm number
sets left margin in
.I
points.
Default is 72 (one inch).
.TP
.BI \-tm number
sets top margin in points.  Default is 36.  Note that the page header
is printed in the top margin, so that if it is made too small, the
header will disappear.
.TP
.BI \-bm number
sets bottom margin in points.  Default is 36.
.TP
.BI \-2
rotates the paper 90 degrees and prints in two columns.
.TP
.BI \-d
attempts to tell the printer to print on both sides of the page.
The printer may ignore the request.
.TP
.BI \-clu
forces all files to be printed as if they were CLU source files.
.TP
.BI \-c
forces all files to be printed as if they were C source files.
.TP
.BI \-scheme
forces all files to be printed as if they were SCHEME source files.
.TP
.BI \-java
forces all files to be printed as if they were Java source files.
.TP
.BI \-arg
forces all files to be printed as if they were ARGUS source files.
.TP
.BI \-text
forces all files to be printed as plain text files.
.TP
.BI \-today
forces use of today's date in the header (default is to use a file's
last modification date).
.TP
.BI \-h [text]
if
.IR text
is null, no page headers are printed.  Otherwise, the file
name that is usually in the page header is replaced by
.IR text .
.TP
.BI \-
ends options.  Allows a file whose name starts with '-' to be printed.
.SH DIAGNOSTICS
Aborts if given an unknown option.  Prints a message if it cannot open
a file (the other files on the command line will still be printed).
.SH AUTHOR
Andrew Heybey, atheybey@ptt.lcs.mit.edu
.SH BUGS
None known.
.SH NOTES
The input is parsed using a hairy
.IR lex
file.  Other languages could be implemented without too many problems,
but I felt no pressing need to do so.
.PP
For CLU and ARGUS, the reserved words
.IR true,
.IR false,
and
.IR nil,
are not printed in bold because they are literals.
