[comp.sources.bugs] Patch 3 for psroff

clewis@eci386.uucp (Chris Lewis) (11/23/89)

This and a companion posting are patches 2 and 3 for psroff.  You will
need both 2 and 3 before recompiling.

When patching, please:
	cd <your psroff directory>
	unshar this patch
	patch -N -p < <this patch>

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 1)."
# Contents:  Patch03
# Wrapped by clewis@eci386 on Wed Nov 22 14:27:01 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'Patch03' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Patch03'\"
else
echo shar: Extracting \"'Patch03'\" \(28102 characters\)
sed "s/^X//" >'Patch03' <<'END_OF_FILE'
X*** /usr4/public/src/t2current/./README	Wed Nov 22 14:22:59 1989
X--- ./README	Wed Nov 22 14:24:46 1989
X***************
X*** 1,218 ****
X! 			README 1.8 89/08/29
X  
X  Normal UNIX troff only prints its output on WANG C/A/T Phototypesetters.
X  This package contains a generic interface between standard troff and
X  other types of printers.  The package has a driver for PostScript printers
X! (Eg: Apple Laserwriters), a partial implementation of a driver for HP 
X! Laserjet family printers, and a Ditroff output option.  
X  
X  In fact, this package can be used to, in effect, upgrade CAT troff
X  to be ditroff.  There are limitations, but you get what you pay for.
X  
X- I had announced more than once that this was being shipped to 
X- comp.sources.unix, but something new kept coming up.  I had sent
X- the last incarnation to Rich Salz, then I discovered tpscript and
X- decided to include a little stuff from that to make mine more
X- complete - so I asked him to cancel.  A couple of months ago, a new
X- version was sent off to him, but it hasn't appeared yet.
X- 
X  Applicability:
X! 	- You must have CAT troff, not ditroff.
X  	- Printers:
X! 		- if you have a laserjet, you should be able to use this
X  		  package.  However, if you can get a copy of jetroff,
X  		  you can use psroff to convert to ditroff output, and
X  		  then use jetroff to print that - until font downloading
X  		  is in my HPLJ driver, jetroff will be much better than
X  		  my stuff.
X! 		- if you have a postscript printer use postscript output.
X! 		  Or, generate ditroff and use tpscript.  Output is more
X! 		  or less identical.
X! 		- if you have ditroff backends, then use ditroff.
X! 
X! This is an ALPHA release.  What this means is that this thing is good
X! enough for use, but there are rough edges.  I would encourage people to
X! fiddle with it (particularly the mapping tables) and PLEASE PLEASE PLEASE
X! send me your changes so that I can encorporate them into new releases and
X! updates.  This package, along with some tweaks to troff are currently
X! in production at our site.
X  
X! Credit where credit's due: genftable.ps, font/* and some of the character
X! drawing and spacing stuff (bracket font) is from ditroff2ps/tpscript:
X  
X      Copyright:	1985, Stephen Frede, UNSW Australia
X  	    Use it and copy it as much as you want, but don't pretend you
X  	    wrote it, or sell it for profit.
X  
X! Excellent stuff.
X  
X!     Remarks:
X! 	- This was developed with a relatively old (eg: V7) troff, and
X! 	  may be missing some of the special characters ("\(XX" sequences)
X! 	  that later versions of troff have.  Entries for these characters 
X! 	  can be found in the ps.c file, (standardFont and symbolFont arrays)
X! 	  as "NOCODE"/"unassigned" entries.  Ditto ljtables.c
X! 	  Please let me know what they are if you figger them out.
X! 	  Note that the X & Y shifts shown in these tables are:
X! 		1) in the native resolution of the device (1/72's for troff2ps,
X! 		   1/720's for troff2lj) (not troff 1/432's).
X! 		2) Are then *multiplied* by the current point size.
X! 		   (eg: in troff2ps, .1 becomes .1*1/72*current point size
X! 		   inches)
X! 
X! 	- The PostScript driver is essentially complete.  It uses the
X! 	  built-in fonts on the AppleLaser.  A few characters not in
X! 	  these fonts are faked by the invocation of drawing routines
X! 	  defined in the file "lib.ps" (which is the definitions of things
X! 	  needed by the driver)  Or the bracket font (also in lib.ps).  
X! 	  Eg: 1/2, 1/4, 3/4, circle, bell system logo and box are 
X! 	  constructed by PostScript subroutines and/or the bracket font.  The
X! 	  Bell System logo isn't really - try this:
X! 		\s36\(bs\s0
X! 	  The first person to correctly identify what it is (without reading
X! 	  lib.ps) gets a pat on the back ;-)
X  
X! 	  The only two characters that don't exactly map properly are
X! 	  left and right hand.  I use double arrows instead.  (so does 
X! 	  tpscript by the way - great minds think alike)
X  	
X! 	- Regarding font width tables, there are several ways to go with
X! 	  Postscript:
X  
X! 	    showfont: modify showfont to have the appropriate command
X! 		      to print to your printer.  Typing:
X! 				showfont <fontname>
X! 		      (eg: showfont Times-Roman) will dump the entire
X! 		      Postscript Times-Roman font (plus some constructions
X! 		      that troff2ps uses) in a table.  Each character is
X! 		      in a box, along with several numbers.  The number
X! 		      in the center at the bottom of the box is the width
X! 		      you should put in your troff tables for that character.
X! 
X! 	    upload: modify it to have the appropriate command to print
X! 		      to your printer.  Then, arrange (somehow) to
X! 		      capture in a file anything that the printer sends 
X! 		      *back* to the computer.  (Eg: with stock System
X! 		      V printer: 
X! 			cat < /dev/<laserprinterdevice> > /tmp/upload&
X! 
X! 		      Run upload.  /tmp/upload will then contain metrics
X! 		      on all of the fonts in your printer.
X! 	    dit2catwid.c: takes ditroff like font tables and converts them
X! 		      to CAT codes suitable for (at least) Xenix troff.
X! 	    genftable: fire it off to your Postscript printer, and it
X! 		      will send back a shar file containing ditroff
X! 		      style char tables.  (Neat - thanks Michael!)
X! 	    font/*:   font tables for ditroff. (also thanks Michael!)
X! 
X! 	- There is some code to allow the use of arbitrary commands to
X! 	  the driver - see the .sR macro in tmac.t2, and troff2's 
X! 	  interpreter.  This is *extremely* awkward to use (blame troff),
X! 	  but can be useful after a fashion.  Not documented particularly
X! 	  well....  Our troff has been modified to emit a fake CAT code
X! 	  with ".fp", so don't expect ".fp's" to work except by changing
X! 	  fonts.??  However, you can do the same thing by using
X! 
X! 		.sR "FnAB" 
X! 		
X! 	  where "F" is the font number (1-3 - don't redefine 4!) and
X! 	  AB is the font name found in the proper lib.* file.  ltest.m
X! 	  has an example of the ".fp" version, change to the ".sR" version
X! 	  to make it work on an unmodified troff.
X! 
X! 	  troff2 has 8-font troff support, but:
X! 		a) it's never been tested.
X! 		b) I'm no longer convinced that the cat.5 man page is
X! 		   correct on how the decoding works.
X! 
X! 	- The laserjet driver is pretty simple minded - it should position
X! 	  each character correctly, and perform the font selections.
X! 	  HOWEVER, it does not do font downloads.  Therefore, if the desired
X! 	  font doesn't exist, the laserjet will select some other font
X! 	  according to its heuristics.  In fact, I've not tested this
X! 	  incarnation of the LJ driver much (because I don't have access to
X! 	  one), but it should be very close to working this much.  I am 
X! 	  thinking on a generic font downloading facility which will
X! 	  take any format font file and download it to any printer style.
X! 	  The current incarnation should work on all members of the
X! 	  Laserjet.  Font downloading will not work on "old Laserjets" unless
X! 	  they've been upgraded to a plus.  Further, the symbolFont table
X! 	  has not been properly updated.
X! 
X! 	Roadmap:
X! 	    troff2.c:	main function - performs the C/A/T translation
X! 			to function calls (via t2conf.c)
X! 	    defs.h:	General definitions.
X! 	    t2conf.c:	Table of functions for the two drivers.  You can
X! 			add new drivers to this by appending to the
X! 			list.  Please use the naming conventions I am
X! 			using.
X! 	    utils.c:	Routines used by other programs (eg: testps)
X! 	    ps.h,ps.c:	PostScript driver
X! 	    lj.h,lj.c:	Laserjet driver (including K incarnation)
X! 	    ljtables.c: lj widths and adjustment table
X! 	    dt.h,dt.c:  Ditroff driver.
X! 	    fonts.[ps|lj|dt] correspondance between troff name and method
X! 			of selection on the printer for Postscript, HPLJ,
X! 			and ditroff.
X! 
X! 	All of the above are compiled and linked to create troff2ps.
X! 	Note: troff2ps examines the last two characters in the name it
X! 	is called with to determine which printer driver to use.
X! 	Therefore, invoking troff2ps as "troff2ps" will use the PostScript
X! 	driver.  If you link troff2ps to "troff2lj", and run troff2lj,
X! 	it will emit Laserjet codes.  Additionally, if you use the "-dxx"
X! 	option, troff2ps will use the "xx" driver.  Eg: troff2ps -dlj
X! 	will print laserjet codes.
X! 
X! 	Extra stuff:
X! 	    Makefile:	makes everything
X! 	    lib.ps:	PostScript library.  Moved to LIBDIR/pslib by makefile.
X! 			prepended onto Postscript output by troff2ps.
X! 	    confid.ps:	Sample include file (actually produces a forms overlay)
X! 	    lethead.ps:	Ditto
X! 	    lib.lj:	Laserjet library.  Moved to LIBDIR/ljlib by makefile.
X! 			Currently empty.  prepended onto Laserjet output by 
X! 			troff2lj.
X! 	    ltest.m:	Test document.  Copied to ltest.m by Makefile.
X! 	    chartab.m:	another test document. (use tbl)
X! 	    testps.c:	PostScript driver tester.
X! 			testps <fonts>
X! 			will display postscript on standard output to show
X! 			the characters in the <fonts> list, where each
X! 			character is A thru O.  See ps.c for the font names.
X! 			At the end, testps will always display a page of
X! 			ZapfDingbats.
X! 			testps AB will display two pages of Times-Roman,
X! 			two pages of Times-Italic along with a page of 
X! 			ZapfDingbats.
X! 			"testps -" will display only the ZapfDingbats.
X! 			"testps" will display oodles of stuff.
X! 	    psroff.sh:	Driver to wrap around troff to invoke the translators.
X! 			Final result put in BINDIR/psroff, possibly linked
X! 			to BINDIR/ljroff etc.
X! 	    psxlate.c:	(Incomplete) PostScript postfilter.  It will currently
X! 			reverse page order and is called by psroff (according
X! 			to "OUTPUT" definition in Makefile).
X! 			No manual page yet (it's not complete).
X! 	    tmac.t2.sh:	Some useful extensions on mm - invokes mm package.
X! 			Copied to tmac.t2 by Makefile.   Intended to 
X! 			eventually have some driver-specific tuning.
X! 			You would use it as "psroff -mt2 ...." instead
X! 			of "nroff -mm ...".
X! 			You really should customize this.  Note that the
X! 			".sR" facility will not work without the definition
X! 			contained herein.
X! 	    fonts.ps:	List of troff ".fp" font name to Laserwriter font
X! 			name translations.  Note: stock troff cannot make
X! 			use of .fp changes because the stupid thing doesn't
X! 			tell the back end that the font has changed.  Please
X! 			contact me and I can send you a couple of changes
X! 			to make to troff (if you have source).
X! 	    fonts.lj/lk: ditto for Laserjet
X! 	    psroff.1.sh:	Manual page.  Copied to psroff.1 by Makefile
X! 	    troff2ps.1.sh:	Manual page.  Copied to psroff.1 by Makefile
X      
X  Instructions for building:
X  	- edit Makefile and change:
X  		LIBDIR 	Where the non-user accessible stuff should go.
X--- 1,284 ----
X! 			README 1.11 89/11/22
X! 		See defs.h for the patchlevel
X  
X  Normal UNIX troff only prints its output on WANG C/A/T Phototypesetters.
X  This package contains a generic interface between standard troff and
X  other types of printers.  The package has a driver for PostScript printers
X! (Eg: Apple Laserwriters), a partial implementation of a driver for HP
X! LaserJet and DeskJet family printers, and a Ditroff output option.
X  
X  In fact, this package can be used to, in effect, upgrade CAT troff
X  to be ditroff.  There are limitations, but you get what you pay for.
X  
X  Applicability:
X! 	- You must have CAT troff, *not* ditroff (eg: *not* DWB 1.? or 2.?).
X  	- Printers:
X! 		- If you have a laserjet, you should be able to use this
X  		  package.  However, if you can get a copy of jetroff,
X  		  you can use psroff to convert to ditroff output, and
X  		  then use jetroff to print that - until font downloading
X  		  is in my HPLJ driver, jetroff will be much better than
X  		  my stuff.
X! 		- I believe the above comments also hold true for DeskJet
X! 		  printers.
X! 		- If you have a postscript printer use postscript output.
X! 		  Or, generate ditroff and use tpscript.  Output is
X! 		  indistinguishable unless you know what you're looking for
X! 		  (and I forgot ;-)
X! 		- If you have ditroff backends, then use ditroff and throw
X! 		  psroff in the trash bucket.
X! 
X! This is an formal release.  There are rough edges however.  I encourage
X! people to fiddle with it (particularly the mapping tables) and PLEASE
X! PLEASE PLEASE send me your changes so that I can encorporate them into
X! new releases and updates.  This package, along with some tweaks to troff
X! are currently in production at our site.
X! 
X! If you send me your name and e-mail address, I'll put you on the psroff
X! mailing list, and you'll get express delivery of any patches.  Patches
X! are shipped out through comp.sources.unix, but the latency can be rather
X! high at times.
X! 
X! Credit/copyright where credit's due:
X! 
X!  1) All code, except where noted below, is Copyright 1985, 1986, 1987,
X!     1988, 1989 Chris Lewis, All Rights Reserved.
X! 
X!     Permission to copy and further distribute is freely given provided
X!     this copyright notice remains intact and that this software is not
X!     sold for profit.
X  
X!  2) genftable.ps and some of the character drawing and spacing
X!     stuff (bracket font in lib.ps) is from ditroff2ps/tpscript:
X  
X      Copyright:	1985, Stephen Frede, UNSW Australia
X  	    Use it and copy it as much as you want, but don't pretend you
X  	    wrote it, or sell it for profit.
X  
X!     Michael Rourke wrote some of the code that I borrowed.
X  
X!     Excellent stuff.
X  
X!  3) DeskJet support (encapsulated in the source as #ifdef DJ/#endif) is
X!     courtesy Ron Florence (uunet!mlfarm!ron) and is copyrighted as such.
X! 
X!  4) There are a few minor tweaks (specifically: headers on font width
X!     tables, and BSDHACK) influenced by David MacKenzie's (djm@wam.umd.edu or
X!     edf@rocky2.rockefeller.edu) and Sverre Froyen's (boulder!fesk!sverre,
X!     sunpeaks!seri!fesk!sverre) troff2lj package.  No code was directly
X!     borrowed, and no copyright appears on the sources consulted.
X! 
X! Remarks:
X! 
X!     - This was developed with a relatively old (eg: Lisa Xenix) troff, and
X!       may be missing some of the special characters ("\(XX" sequences)
X!       that later versions of troff have.  Entries for these characters
X!       can be found in the ps.c file, (standardFont and symbolFont arrays)
X!       as "NOCODE"/"unassigned" entries.  Ditto ljtables.c
X!       Please let me know what they are if you figger them out.
X!       Note that the X & Y shifts shown in these tables are:
X! 
X! 	    1) in the native resolution of the device (1/72's for troff2ps,
X! 	       1/720's for troff2lj) (not troff 1/432's).
X! 	    2) Are then *multiplied* by the current point size.
X! 	       (eg: in troff2ps, .1 becomes .1*1/72*current point size
X! 	       inches)
X! 
X!     - The PostScript driver is fully complete.  It uses the
X!       built-in fonts on the AppleLaser.  A few characters not in
X!       these fonts are faked by the invocation of drawing routines
X!       defined in the file "lib.ps" (which is the definitions of things
X!       needed by the driver)  Or the bracket font (also in lib.ps).
X!       Eg: 1/2, 1/4, 3/4, circle, bell system logo and box are
X!       constructed by PostScript subroutines and/or the bracket font.
X!       The Bell System logo isn't really - try this:
X! 
X! 	    \s36\(bs\s0
X! 
X!       The first person to correctly identify what it is (without reading
X!       lib.ps) gets a pat on the back ;-)
X! 
X!       The only two characters that don't exactly map properly are
X!       left and right hand.  I use double arrows instead.  (so does
X!       tpscript by the way - great minds think alike)
X! 
X!     - The ditroff driver is fully complete, but not extremely
X!       well tested with backends other than tpscript.  I've heard rumors
X!       of problems with jettroff, but haven't had them fully tracked down
X!       yet.
X! 
X!     - Regarding font width tables, there are several ways to go with
X!       Postscript:
X! 
X! 	showfont: modify showfont to have the appropriate command
X! 		  to print to your printer.  Typing:
X! 			    showfont <fontname>
X! 		  (eg: showfont Times-Roman) will dump the entire
X! 		  Postscript Times-Roman font (plus some constructions
X! 		  that troff2ps uses) in a table.  Each character is
X! 		  in a box, along with several numbers.  The number
X! 		  in the center at the bottom of the box is the width
X! 		  you should put in your troff tables for that character.
X! 
X! 	upload:   modify it to have the appropriate command to print
X! 		  to your printer.  Then, arrange (somehow) to
X! 		  capture in a file anything that the printer sends
X! 		  *back* to the computer.  Eg: with stock System
X! 		  V printer:
X! 
X! 		    cat < /dev/<laserprinterdevice> > /tmp/upload&
X! 
X! 		  Run upload.  /tmp/upload will then contain metrics
X! 		  on all of the fonts in your printer.
X! 
X! 	dit2catwid.c: takes ditroff like font tables and converts them
X! 		  to CAT codes suitable for (at least) Xenix troff.
X! 		  (some attempt has been made to make it work for
X! 		  systems that need a.out.h headers on their width
X! 		  tables).  See the gfnttab script to see how it's
X! 		  used.
X  	
X! 	gfnttab:  Used to run dit2catwid to compile the width tables
X! 		  and place them in /usr/lib/font.
X! 
X! 	genftable: fire it off to your Postscript printer, and it
X! 		  will send back a shar file containing ditroff
X! 		  style char tables.  (Neat - thanks Michael!)
X! 
X! 	font/*:   font tables for ditroff. (also thanks Michael!)
X! 
X!     - Regarding font width tables, this is how you go about building
X!       them for HP Laserjets, DeskJets and ditroff:
X! 
X! 	- Turn on the COMPILE option in gfnttab.
X! 
X! 	- Run gfnttab (as root).  This will generate a bunch
X! 	  of C source files in the font directory, and will install
X! 	  font tables in /usr/lib/font.  Print some stuff.  Manually
X! 	  tweak the width entries in either the ditroff width files
X! 	  or the C source files to make the output look pretty.
X! 	  Compile the .c's to .o's, and copy them to /usr/lib/font/ft??.
X  
X! 	- Grotty but it works.  I will be including some automatic
X! 	  LJ Softfont width generation tools later.
X      
X+     - WARNING: some versions of troff (Xenix comes to mind) have the
X+       width table for the default four fonts (R, I, B & S) compiled
X+       in.  Therefore, the width tables will not take effect.  However,
X+       (at least Xenix) troff will reload the font widths from disk if 
X+       you include the following in tmac.t2:
X+ 
X+ 	.fp 1 R
X+ 	.fp 2 I
X+ 	.fp 3 B
X+ 	.fp 4 S
X+ 
X+     - There is some code to allow the sending of arbitrary commands to
X+       the driver - see the .sR macro in tmac.t2, and troff2's
X+       interpreter.  This is *extremely* awkward to use (blame troff),
X+       but can be useful after a fashion.  Not documented particularly
X+       well....  Our troff has been modified to emit a fake CAT code
X+       with ".fp", so don't expect ".fp's" to work except by changing
X+       fonts.??  However, you can do the same thing by using
X+ 
X+ 	    .sR "FnAB"
X+ 
X+       where "F" is the font number (1-3 - don't redefine 4!) and
X+       AB is the font name found in the proper lib.* file.  ltest.m
X+       has an example of the ".fp" version, add the ".sR" version
X+       to make it work on an unmodified troff.
X+ 
X+     - troff2 has 8-font troff support, but:
X+ 
X+ 	    a) it's never been tested.
X+ 	    b) I'm no longer convinced that the cat.5 man page is
X+ 	       correct on how the decoding works.
X+ 
X+     - troff2 has BSDHACK support (one of the tilt opcodes being
X+       replaced by an opcode to multiply the next vertical motion
X+       by 64), but this has not been tested.  I never heard of it
X+       before til I saw it in Froyen's troff2lj source.  This cannot
X+       be defined at the same time as 8-font support.
X+ 
X+     - The laserjet driver is pretty simple minded - it does position
X+       each character correctly, and perform the font selections.
X+       HOWEVER, it does not do font downloads.  Therefore, if the desired
X+       font doesn't exist, the laserjet will select some other font
X+       according to its heuristics.  In fact, I've not tested this
X+       incarnation of the LJ driver much (because I don't have access to
X+       one), but it does work more or less.
X+ 
X+       I am thinking on a generic font downloading facility which will
X+       take any format font file and download it to any printer style.
X+       The current incarnation should work on all members of the
X+       Laserjet.  Font downloading will not work on "old Laserjets" unless
X+       they've been upgraded to a plus.  Further, the symbolFont table
X+       has not been properly updated.
X+ 
X+ Roadmap:
X+     troff2.c:	main function - performs the C/A/T translation
X+ 		to function calls (via t2conf.c)
X+     defs.h:	General definitions.
X+     t2conf.c:	Table of functions for the two drivers.  You can
X+ 		add new drivers to this by appending to the
X+ 		list.  Please use the naming conventions I am
X+ 		using.
X+     utils.c:	Routines used by other programs (eg: testps)
X+     ps.h,ps.c:	PostScript driver
X+     lj.h,lj.c:	Laserjet driver (LJ/LK/DJ drivers)
X+     ljtables.c: lj widths and adjustment table
X+     dt.h,dt.c:  Ditroff driver.
X+     fonts.[ps|lj|dt] correspondance between troff name and method
X+ 		of selection on the printer for Postscript, HPLJ,
X+ 		and ditroff.
X+ 
X+ All of the above are compiled and linked to create troff2ps.
X+ Note: troff2ps examines the last two characters in the name it
X+ is called with to determine which printer driver to use.
X+ Therefore, invoking troff2ps as "troff2ps" will use the PostScript
X+ driver.  If you link troff2ps to "troff2lj", and run troff2lj,
X+ it will emit Laserjet codes.  Additionally, if you use the "-dxx"
X+ option, troff2ps will use the "xx" driver.  Eg: troff2ps -dlj
X+ will print laserjet codes.
X+ 
X+ Extra stuff:
X+     Makefile:	makes everything
X+     lib.ps:	PostScript library.  Moved to LIBDIR/pslib by makefile.
X+ 		prepended onto Postscript output by troff2ps.
X+     confid.ps:	Sample include file (actually produces a forms overlay)
X+     lethead.ps:	Ditto
X+     lib.lj:	Laserjet library.  Moved to LIBDIR/ljlib by makefile.
X+ 		Currently empty.  Prepended onto Laserjet output by
X+ 		troff2lj.
X+     ltest.m:	Test document.  Copied to ltest.m by Makefile.
X+     chartab.m:	another test document. (uses tbl)
X+     psroff.sh:	Driver to wrap around troff to invoke the translators.
X+ 		Final result put in BINDIR/psroff, possibly linked
X+ 		to BINDIR/ljroff etc.
X+     psxlate.c:	(Incomplete) PostScript postfilter.  It will currently
X+ 		reverse page order and is called by psroff (according
X+ 		to "OUTPUT" definition in Makefile).
X+ 		No manual page yet (it's not complete).
X+     tmac.t2	Some useful extensions on mm - invokes mm package.
X+ 		Copied to tmac.t2 by Makefile.   Intended to
X+ 		eventually have some driver-specific tuning.
X+ 		You would use it as "psroff -mt2 ...." instead
X+ 		of "nroff -mm ...".
X+ 		You really should customize this.  Note that the
X+ 		".sR" facility will not work without the definition
X+ 		contained herein.
X+     fonts.ps:	List of troff ".fp" font name to Laserwriter font
X+ 		name translations.  Note: stock troff cannot make
X+ 		use of .fp changes because the stupid thing doesn't
X+ 		tell the back end that the font has changed.  Please
X+ 		contact me and I can send you a couple of changes
X+ 		to make to troff (if you have source), OR, define
X+ 		a FP macro that invokes both ".fp n ff" and
X+ 		".sR Fnff".
X+     fonts.lj/lk: ditto for Laserjet
X+     psroff.1.sh:	Manual page.  Copied to psroff.1 by Makefile
X+     troff2ps.1.sh:	Manual page.  Copied to troff2ps.1 by Makefile
X+ 
X  Instructions for building:
X  	- edit Makefile and change:
X  		LIBDIR 	Where the non-user accessible stuff should go.
X***************
X*** 221,243 ****
X  		LJOUTPUT	Output command to print Laserjet stuff.
X  		DTOUTPUT	Output command to print Ditroff stuff.
X  	- edit defs.h and define either BSD or ATT.  If you set ATT, set
X! 	  SVR3 too if you are running SVR3.
X  	- Type
X  		make
X  	  This will build everything.
X  		make install
X! 	  Will install everything, including the new font width tables.  
X! 	  You can even issue this from a non-root user, but it will prompt 
X  	  you for the password on every thing it needs to do as root.
X  	  If you want "ljroff", you will have to manually link INDIR/psroff
X! 	  to INDIR/ljroff.  Ditto lkroff and dttroff.
X  
X  
X  PLEASE PLEASE PLEASE!  If you have any problems with it, or would like
X  to make some suggestions for changing it, or have implemented a new driver
X  (hint hint) please contact me at:
X  ---------------------------------
X! Chris Lewis, R.H. Lathwell & Associates: Elegant Communications Inc.
X! UUCP: {uunet!attcan, utcsri!utzoo, utai}!lsuc!ecicrl!clewis
X! UUCP: {uunet!attcan, utcsri!utzoo, utai}!lsuc!gate!eci386!clewis
X  Phone: (416)-595-5425
X--- 287,354 ----
X  		LJOUTPUT	Output command to print Laserjet stuff.
X  		DTOUTPUT	Output command to print Ditroff stuff.
X  	- edit defs.h and define either BSD or ATT.  If you set ATT, set
X! 	  SVR3 too if you are running SVR3.  A few other options may
X! 	  pertain to you.
X  	- Type
X  		make
X  	  This will build everything.
X  		make install
X! 	  Will install everything, including the new font width tables.
X! 	  You can even issue this from a non-root user, but it will prompt
X  	  you for the password on every thing it needs to do as root.
X  	  If you want "ljroff", you will have to manually link INDIR/psroff
X! 	  to INDIR/ljroff.  Ditto lkroff, dttroff, djtroff etc.
X! 
X! History:
X  
X+ Initial Release 1: Aug 29, 1989
X+ 
X+ Patch 1: Nov 6, 1989		(BUG FIXES ONLY)
X+ 
X+ 	1) bug in dit2catwid - strcmp presented with NULL pointer which
X+ 	   causes it to dump on Suns.  Presumably elsewhere...
X+ 	   Thanks to the many who reported it.
X+ 	2) Instituted patch level numbering by rearranging T2VERSION in
X+ 	   defs.h.  troff2ps -V prints the current revision and patch
X+ 	   level.
X+ 	3) At least some versions of troff generate Wang CAT NOP opcodes
X+ 	   when the output buffer fills up.  If this lands in the middle
X+ 	   of a back-end directive, you're screwed.  Back-end directive
X+ 	   snarfing now ignores NOPs.
X+ 	4) make clean was a leetle too violent.
X+ 	5) ps.c: cent sign is in normal character set, not Symbol twit!
X+ 	6) ps.c: changed horizontal rule table entry to use font native
X+ 	   underscore rather than doru.  (horizontal lines sometimes
X+ 	   had holes in fonts other than Roman)
X+ 
X+ Patch 2: Nov 9, 1989		(NEW FEATURES)
X+ 
X+ 	1) Installed DeskJet support from Ron Florence, uunet!mlfarm!ron
X+ 	   (Thanks Ron!)
X+ 	2) Fixed ifdef sense for SCCS ids in defs.h (Thanks Ron!)
X+ 	3) Introduced patch history into README
X+ 	4) Introduced BSDHACK code and rearranged FONT8 handling slightly.
X+ 	   (Influenced by a perusal of David MacKenzie's and Sverre Froyen's
X+ 	   troff2lj)
X+ 	5) Introduced width table prefix code (ditto troff2lj).
X+ 	6) Rearranged defs.h...
X+ 	7) Changed one heck of a lot in the README - please reread.
X+ 	8) ps.c automagically scaled bullets by %50, partially because
X+ 	   I was unpleased as to the size of bullets in the Roman fonts.
X+ 	   However: that threw off the font width tables in *all* fonts,
X+ 	   and it made the bullets in some of the other fonts *way* too
X+ 	   big (I really like Bookman)
X+ 	9) Some minor compilability fixes made for older C compilers
X+ 	   (eg: v6 or v7 on PDP 11's) and machines with sizeof(int) != 
X+ 	   sizeof(long).  Not to mention passing a string as the second
X+ 	   argument to strrchr (thanks to Eric Norum alberta!edson!bode!eric)
X+ 	10) Some paragraphing fixes (due to my own sloppiness)
X  
X  PLEASE PLEASE PLEASE!  If you have any problems with it, or would like
X  to make some suggestions for changing it, or have implemented a new driver
X  (hint hint) please contact me at:
X  ---------------------------------
X! Chris Lewis, Elegant Communications Inc.
X! UUCP: {uunet!attcan, ...!utzoo, ...!utai}!lsuc!eci386!clewis
X! Other forms: eci386!clewis@uunet.uu.net, clewis@eci386.UUCP
X  Phone: (416)-595-5425
END_OF_FILE
if test 28102 -ne `wc -c <'Patch03'`; then
    echo shar: \"'Patch03'\" unpacked with wrong size!
fi
# end of 'Patch03'
fi
echo shar: End of archive 1 \(of 1\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have the archive.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
A fanatic is one who can't change his | Chris Lewis, Elegant Communications Inc.
mind and won't change the subject.    | {uunet!attcan,utzoo}!lsuc!eci386!clewis
   [Winston Churchill]                | Ferret mailing list moderator.