[alt.sources] Official Patch 7 for Psroff 2.0

clewis@ecicrl.UUCP (Chris Lewis) (01/21/91)

Archive-name: psroff2.0/patch.07
Submitted-by: clewis@ferret.ocunix.on.ca (Chris Lewis)

    This is official patch 07 for Psroff 2.0.
    Please apply it by:
	cd <psroff source directory>
	patch -N -p < <this file>

The important changes are:
    - The mailing list has been discontinued due to lack of interest.
      Patches will go out cross-posted to alt.sources, comp.sources.bugs,
      comp.text and comp.lang.postscript.  If you do not get ANY of these
      newsgroups, drop me a line, and I'll put you in an informal mailing
      list for patch notices.  The README has been altered to reflect
      this.
    - Some mention is made regarding installing as root on systems
      where you've arranged a restrictive umask in the README.
      "make fixperms" will repair these problems on the places where
      the makefiles aren't careful enough with file creation.
      If, after an install, psroff fails with can't find file
      errors, it's worth while doing a fixperms and see if it
      fixes it.
    - The support for page length settings was a little off, so I
      implemented a bit more, and made sure that the manual page
      was consistent with it.
    - Since I've moved, FAXing the test page won't do you any good.
      testtab.m.S has been updated to tell you where to surface-mail
      test sheets.  README's contact information has been updated.

Note: I'm a bit stalled because I have no direct access to a printer
that psroff can drive, so development on new stuff is suspended.
I do have a printer, but doing a psroff driver for a Diablo 1550 doesn't
seem like a really good idea or a lot of fun.

./makeincl.S		LIBDIR stuff
./utils.c		stdio.h's missing popen defn
./man/troff2ps.1.S	page length stuff corrected
./README		future directions/contact info changed/fixperm
./Makefile		permissions (fixperms) stuff
./widths/Makefile	permissions
./utils/Makefile	permissions
./utils/pktype.c	slight output format improvement
./tests/testtab.m.S	address for mailing tests.
./defs.h		PL7
./lj.c			stdio.h's missing popen defn
./pk.c			stdio.h's missing popen defn
./troff2.c		stdio.h's missing popen defn/page length stuff
*** /tmp/PATCHold/./makeincl.S	Mon Jan 21 01:42:28 1991
--- ./makeincl.S	Mon Jan 21 01:42:29 1991
***************
*** 1,6 ****
! #	Makefile overrides 2.1 90/07/18
  CC	= %%CC%%
! CFLAGS	= %%CCFLAGS%% '-DLIBDIR="%%LIBDIR%%"' -I../
  FONTDIR = %%FONTDIR%%
  LIBDIR	= %%LIBDIR%%
  LIBFLAGS = %%LIBFLAGS%%
--- 1,6 ----
! #	Makefile overrides 2.2 90/12/15
  CC	= %%CC%%
! CFLAGS	= %%CCFLAGS%% -I../
  FONTDIR = %%FONTDIR%%
  LIBDIR	= %%LIBDIR%%
  LIBFLAGS = %%LIBFLAGS%%
*** /tmp/PATCHold/./utils.c	Mon Jan 21 01:42:41 1991
--- ./utils.c	Mon Jan 21 01:42:45 1991
***************
*** 15,21 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)utils.c: 2.5 Copyright 90/12/14 23:47:08 Chris Lewis";
  #endif
  
  #ifndef	HEADERSIZE
--- 15,21 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)utils.c: 2.6 Copyright 91/01/18 03:44:58 Chris Lewis";
  #endif
  
  #ifndef	HEADERSIZE
***************
*** 101,106 ****
--- 101,107 ----
  
  char nodename[25];
  getnodename() {
+     FILE *popen();
      FILE *uuname;
      if ((uuname = popen(NODECMD, "r")) == NULL)
  	strcpy(nodename, "<noname>");
*** /tmp/PATCHold/./man/troff2ps.1.S	Mon Jan 21 01:43:05 1991
--- ./man/troff2ps.1.S	Mon Jan 21 01:43:07 1991
***************
*** 1,4 ****
! .\"Copyright 1988 by Chris Lewis 2.4 90/12/04
  .TH TROFF2PS 1 local
  .SH NAME
  troff2ps, troff2lj, troff2xx \- convert troff output to Postscript, HP etc.
--- 1,4 ----
! .\"Copyright 1988 by Chris Lewis 2.5 91/01/18
  .TH TROFF2PS 1 local
  .SH NAME
  troff2ps, troff2lj, troff2xx \- convert troff output to Postscript, HP etc.
***************
*** 41,53 ****
  .BI -l length
  option is used to tell the software how long the pages are on the printer.
  The default value is 11 inches.
! Length should be written as if you were issuing a ".pl"
  .I troff
  command; eg: troff scaling should be used.
! For example: "-l11i", "-l4752u", "-l792p" specify a page length of
  11 inches in inches,
  .I troff
! units and points respectively.
  .P
  The
  .BI -T xx
--- 41,55 ----
  .BI -l length
  option is used to tell the software how long the pages are on the printer.
  The default value is 11 inches.
! Length should be written as if you were issuing a ``.pl''
  .I troff
  command; eg: troff scaling should be used.
! For example: ``-l11i'', ``-l4752u'', ``-l792p'' and ``-l66P''
! specify a page length of
  11 inches in inches,
  .I troff
! units, points and Picas respectively.
! Centimetres (``c'') are also supported, but ``v'', ``m'' and ``n'' are not.
  .P
  The
  .BI -T xx
*** /tmp/PATCHold/./README	Mon Jan 21 01:43:28 1991
--- ./README	Mon Jan 21 01:43:36 1991
***************
*** 1,4 ****
! 		PSROFF RELEASE 2.0 PL5 README 2.4 90/12/14
  
  			May 14, 1990
  			Chris Lewis
--- 1,4 ----
! 		PSROFF RELEASE 2.0 PL5 README 2.6 91/01/21
  
  			May 14, 1990
  			Chris Lewis
***************
*** 11,18 ****
  	or, you can simply patch yours to this level - contact me for
  	patch 5.
  
! 	Please see the end of this file for my contact information
! 	and for enrollment in the psroff mailing list.
  
  Please read this document, especially any new patches (if any) near
  the end before reconfiguring.  If you have difficulties, read the
--- 11,17 ----
  	or, you can simply patch yours to this level - contact me for
  	patch 5.
  
! 	Please see the end of this file for my contact information.
  
  Please read this document, especially any new patches (if any) near
  the end before reconfiguring.  If you have difficulties, read the
***************
*** 65,75 ****
  psroff (version 1.0) was posted in comp.sources.unix in October 1989.
  This version is a lot better.
  
! If you send me your name and e-mail address, I'll put you on the psroff
! mailing list, and you'll get express delivery of any small patches (see
! CONTACT INFO at end of this README).  Patches are also shipped out through
! comp.sources.unix and/or comp.sources.bugs, but the latency can be rather
! high at times.  A current list of FTP-access sites can be obtained by
  sending me mail.
  
  Credit/copyright where credit's due:
--- 64,74 ----
  psroff (version 1.0) was posted in comp.sources.unix in October 1989.
  This version is a lot better.
  
! Please note: I have discontinued the mailing list, because nothing
! ever went out on it.
! 
! Patches are shipped out through comp.sources.bugs and alt.sources.
! A current list of FTP and UUCP access sites can be obtained by
  sending me mail.
  
  Credit/copyright where credit's due:
***************
*** 377,382 ****
--- 376,392 ----
  	  says something nasty about non-numeric character in file,
  	  "may be non-ASCII".
  
+ 	- NOTE: during installs as root, the makefiles attempt to be
+ 	  carefull about the modes of the files it creats.  HOWEVER,
+ 	  some people do insist on "umask 077" for root, and I've
+ 	  probably not fixed everything.  If psroff doesn't work
+ 	  after an install, I suggest that you check root's umask,
+ 	  and ensure that it's 002 or 022 before invoking any
+ 	  of the makefile install entries.  If you forget, you
+ 	  can invoke:
+ 		make fixperms
+ 	  on the upper level makefile.
+ 
  	- type "make unpackljfonts"  This will uudecode the font
  	  files I've supplied and remove the .UU files.  This
  	  step is unneccessary if you're not using Laserjets,
***************
*** 452,458 ****
  	- edit lib/psrofflib.S according to the instructions you find.
  	  Take special note of -T/-F handling for troff (trofftype) -
  	  check out your troff manual page!  Suns and Ultrix want
! 	  trofftype='-F/usr/lib/font/$width/ftXX'.
  
  	- If you're going to be driving HP Laserjets without a Postscript
  	  cartridge:
--- 462,470 ----
  	- edit lib/psrofflib.S according to the instructions you find.
  	  Take special note of -T/-F handling for troff (trofftype) -
  	  check out your troff manual page!  Suns and Ultrix want
! 	  trofftype='-F/usr/lib/font/$width/ftXX'.  If you're running
! 	  postscript, you may want to eventually add the -Z option
! 	  to the entry to make your printer REALLY run fast.
  
  	- If you're going to be driving HP Laserjets without a Postscript
  	  cartridge:
***************
*** 530,536 ****
  
  	  "TEST" is generated via make to include some information about
  	  your configuration to help me diagnose your problems.
! 
  	- If you have problems, read the TROUBLE file which describes
  	  some trouble-shooting.
  
--- 542,548 ----
  
  	  "TEST" is generated via make to include some information about
  	  your configuration to help me diagnose your problems.
! 	
  	- If you have problems, read the TROUBLE file which describes
  	  some trouble-shooting.
  
***************
*** 646,682 ****
  
  Future directions:
  
  You may have noticed a compile flag called "OPT" which is defined in
  the distributed version of defs.h.  If enabled (via -Z/W), this enables the
! experimental optimizer that I'm working on.  It works well with Postscript
! output, but not with laserjet unless the fonts you use are VERY good.
! It's disabled by default.  The optimizer does two things: it emits as many
! characters as it can as one print directive, rather than one CAT code
! per print.  On postscript and HPLJ's this is a BIG win (printer execution
! speeds 3 or more times faster), but it won't work with ditroff.  The
! optimizer requires access to the CAT troff width tables, and if troff2ps
! can't find them, it simply doesn't optimize.  The other thing the optimizer
! does is enable a new backend transmission feature (\(bs\(bs<directive>\(bs)
! which will ultimately *replace* the ".tm M<directive>" feature.  Once
! this occurs, troff stderr can unmerged with stdout, psfig will work better,
! and special directives will no longer require breaks.  And, I might
! be able to emulate \X better, and maybe even (gasp) \D and friends.
! 
! The intent is, that when I'm satisfied with the optimizer, possibly after
! some patching), I can either ship a patch that explicitly makes it default,
! or tell you to do it manually in the patch preamble.  Stay tuned.
  
! CONTACT INFO:
  
      Chris Lewis
      Elegant Communications Inc.
!     481 University Avenue, Suite 602
!     Toronto, Ontario, Canada
!     Voice Phone: Canada (416)-595-5425
!     FAX: Canada (416)-595-5439
      Userid's for e-mail contact:
! 	Psroff enquiries/help/mailing list enrollment: psroff-request
  	Non-psroff mail only: clewis
!     UUCP routing: {uunet!attcan,utzoo}!lsuc!eci386!<userid>
!     Possible internet routing: lsuc!eci386!<userid>@uunet.uu.net
      Alternates: <user>@eci386.uucp
--- 658,692 ----
  
  Future directions:
  
+ They are two-fold: replacing the ".tm/.sR" mechanism for communication
+ with the backend.  There is a new method, using a FSA to recognize
+ a special sequence of bell symbols (see catconv).  I haven't converted
+ over to it, because under some not-yet-understood situations, it
+ doesn't work.  Once this works PROPERLY, a number of enhancements
+ will be made to make CAT troff behave more like ditroff, support
+ for psfig, pic etc.
+ 
  You may have noticed a compile flag called "OPT" which is defined in
  the distributed version of defs.h.  If enabled (via -Z/W), this enables the
! optimizer.  It works well with Postscript output, but not with laserjet
! unless the fonts you use are VERY good.  It's disabled by default.  The
! optimizer does two things: it emits as many characters as it can as one
! print directive, rather than one CAT code per print.  On postscript and
! HPLJ's this is a BIG win (printer execution speeds 3 or more times faster),
! but it won't work with ditroff.  The optimizer requires access to the CAT
! troff width tables, and if troff2ps can't find them, it simply doesn't
! optimize.
  
! CONTACT INFO (note that I've moved):
  
      Chris Lewis
      Elegant Communications Inc.
!     Box 13215, Kanata PO
!     Kanata, Ontario, K2K 1X4
!     Voice Phone: Canada (613) 832-0541
      Userid's for e-mail contact:
! 	Psroff enquiries/help: psroff-request
  	Non-psroff mail only: clewis
!     UUCP routing: uunet!mitel!cunews!latour!ecicrl!<userid>
!     Possible internet routing: <userid>@ferret.ocunix.on.ca
      Alternates: <user>@eci386.uucp
*** /tmp/PATCHold/./Makefile	Mon Jan 21 01:44:06 1991
--- ./Makefile	Mon Jan 21 01:44:09 1991
***************
*** 16,28 ****
  #	Note:		This is a System V Makefile, so you may
  #			have some problems making a few of the items.
  #
! #ident  "@(#)Makefile: 2.2 Copyright 90/08/10 15:22:08 Chris Lewis"
  
  #	Use s5make on Ultrix and Sun!
  
  #	Set to where you want the user-interfaces to go
! BINDIR	= /usr/lbin
! #BINDIR	= /usr/tmp/bin
  
  #	Testing type (default postscript (ps)):
  #	Use lj for laserjet.
--- 16,27 ----
  #	Note:		This is a System V Makefile, so you may
  #			have some problems making a few of the items.
  #
! #ident  "@(#)Makefile: 2.4 Copyright 91/01/18 03:44:18 Chris Lewis"
  
  #	Use s5make on Ultrix and Sun!
  
  #	Set to where you want the user-interfaces to go
! BINDIR	= /usr/local/bin
  
  #	Testing type (default postscript (ps)):
  #	Use lj for laserjet.
***************
*** 32,38 ****
  #	This *must* be a directory all by itself with no other stuff
  #	in it.
  LIBDIR	= /usr/lib/troff2
- #LIBDIR = /usr/tmp/troff2
  
  #	Directory for Laserjet fonts.
  LJF	= $(LIBDIR)/lib/lj
--- 31,36 ----
***************
*** 42,61 ****
  
  #	Where your real macros are
  RTMACDIR = /usr/lib/tmac
- #RTMACDIR = /usr/tmp/tmac
  
  #	upper level man directory, with subdirectories man1, man2 etc.
  MANDIR	= /usr/man/l_man
- #MANDIR	= /usr/tmp/man
  
  #	Change this at your peril - your troff *must* support -F!
  #	(font width files (ft??) are placed under FONTDIR/<width>/ft??)
  #	(see lib/psrofflib.S)
  FONTDIR	= /usr/lib/font
- #FONTDIR = /usr/tmp/font
  
! #	Comment this out if you don't have shared libraries ala 386/ix
! LIBFLAGS = -lc_s
  
  #	Bourne shell.  *All* Bourne shells with the exception of extremely
  #	braindamaged ones (such as Ultrix or vanilla BSD) will work fine.
--- 40,56 ----
  
  #	Where your real macros are
  RTMACDIR = /usr/lib/tmac
  
  #	upper level man directory, with subdirectories man1, man2 etc.
  MANDIR	= /usr/man/l_man
  
  #	Change this at your peril - your troff *must* support -F!
  #	(font width files (ft??) are placed under FONTDIR/<width>/ft??)
  #	(see lib/psrofflib.S)
  FONTDIR	= /usr/lib/font
  
! #	Set this to -lc_s if you have 386/ix style shared libraries
! LIBFLAGS =
  
  #	Bourne shell.  *All* Bourne shells with the exception of extremely
  #	braindamaged ones (such as Ultrix or vanilla BSD) will work fine.
***************
*** 166,171 ****
--- 161,169 ----
  
  BACKENDS = lj.o pk.o pkc.o ps.o dt.o
  
+ DEFINES	= '-DLIBDIR="$(LIBDIR)/lib"' '-DFONTDIR="$(FONTDIR)"'\
+ 	'-DLJF="$(LJF)"' $(CCFLAGS)
+ 
  #	Creation of sedscript for parameterization.
  
  SEDSCRIPT =	"sed -e 's;%%LIBDIR%%;$(LIBDIR);g' \
***************
*** 183,193 ****
  		     -e 's^%%IGNORESH%%^$(IGNORESH)^' \
  		     -e 's;%%RTMACDIR%%;$(RTMACDIR);g'"
  
- DEFINES	= '-DLIBDIR="$(LIBDIR)/lib"' '-DFONTDIR="$(FONTDIR)"'\
- 	'-DLJF="$(LJF)"' $(CCFLAGS)
  CFLAGS	= $(DEFINES)
  
- 
  all:	troff2ps subst.done makeincl psroff README TROUBLE LASERFONTS submakes
  
  subst.done:	sedscript
--- 181,188 ----
***************
*** 250,260 ****
--- 245,257 ----
  	if [ "$$files" != 'fonts.lj/*.pk' ] ; \
  	then \
  	    cp fonts.lj/*.pk $(LJF) ; \
+ 	    chmod 644 $(LJF)/* ; \
  	fi
  	$(IGNORESH) files=`echo fonts.lj/*.sfp` ; \
  	if [ "$$files" != 'fonts.lj/*.sfp' ] ; \
  	then \
  	    cp fonts.lj/*.sfp $(LJF) ; \
+ 	    chmod 644 $(LJF)/* ; \
  	fi
  	$(IGNORESH) test -z "$(PKFONTS)" -o ! -d "$(NEWFONTS)" \
  	    || cp $(NEWFONTS)/* $(LJF)
***************
*** 282,287 ****
--- 279,285 ----
  	rm -f $(LIBDIR)/troff2ps.old
  	-cp $(LIBDIR)/troff2ps $(LIBDIR)/troff2ps.old
  	cp troff2ps $(LIBDIR)/troff2ps
+ 	chmod 755 $(LIBDIR)/troff2ps $(BINDIR)/psroff
  	cd lib ; $(MAKE) install
  	cd adapters ; $(MAKE) install
  	cd man ; $(MAKE) install
***************
*** 415,417 ****
--- 413,419 ----
  	else \
  	    echo "IGNORESH set correctly" ; \
  	fi
+ 
+ fixperms:
+ 	find $(LIBDIR) -type f -exec chmod +r '{}' ';'
+ 	find $(LIBDIR) $(FONTDIR) -type d -exec chmod +rx '{}' ';'
*** /tmp/PATCHold/./widths/Makefile	Mon Jan 21 01:44:32 1991
--- ./widths/Makefile	Mon Jan 21 01:44:35 1991
***************
*** 1,4 ****
! #2.6 90/12/13
  SCRIPTS	= gfnttab
  TD	= testdir
  PSW	= \
--- 1,4 ----
! #2.8 91/01/18
  SCRIPTS	= gfnttab
  TD	= testdir
  PSW	= \
***************
*** 26,31 ****
--- 26,32 ----
  	do \
  	    echo "Processing $$i" ; \
  	    ./gfnttab $$i >> gfnttab.log ; \
+ 	    chmod 644 $$i/* ; \
  	done
  
  subst.done:	../makeincl ../sedscript
***************
*** 194,200 ****
  		continue ; \
  	    fi ; \
  	    echo "Installing $$base widths" ; \
! 	    mv width$$base/ft* $(FONTDIR)/$$base ; \
  	done
  
  cmp:
--- 195,201 ----
  		continue ; \
  	    fi ; \
  	    echo "Installing $$base widths" ; \
! 	    cp width$$base/ft* $(FONTDIR)/$$base ; \
  	done
  
  cmp:
***************
*** 237,243 ****
  	rm -f gfnttab.log pk2dit.log pk2sep.log pk2dit.err pk2sep.err
  
  dit2catwid.o:	../defs.h
- 	$(CC) -c $(CFLAGS) '-DFONTDIR="$(FONTDIR)"' dit2catwid.c
  
  ../cattab.o:	../defs.h
  	@echo "cattab.o is out of date, please run make troff2ps in top level first"
--- 238,243 ----
*** /tmp/PATCHold/./utils/Makefile	Mon Jan 21 01:44:56 1991
--- ./utils/Makefile	Mon Jan 21 01:44:58 1991
***************
*** 1,4 ****
! #	Copyright 14:22:49 Chris Lewis
  SCRIPTS	= psdtwd showfont mkenctab calcfonts catconv
  PROGRAMS = hpinterp psxlate pk2sfp pk2ditwid pktype dumpft pk2ps lj2ps
  MAPS = maps/S.cmtrf \
--- 1,4 ----
! #	Copyright 03:46:16 Chris Lewis
  SCRIPTS	= psdtwd showfont mkenctab calcfonts catconv
  PROGRAMS = hpinterp psxlate pk2sfp pk2ditwid pktype dumpft pk2ps lj2ps
  MAPS = maps/S.cmtrf \
***************
*** 62,68 ****
  	    $(LIBFLAGS)
  
  dumpft:	dumpft.o ../cattab.o
! 	$(CC) -o dumpft dumpft.o ../cattab.o $(LIBFLAGS)
  
  clean:
  	rm -f *.o $(SCRIPTS) $(PROGRAMS) ljtab.c *.D *.sfp diagnostics
--- 62,68 ----
  	    $(LIBFLAGS)
  
  dumpft:	dumpft.o ../cattab.o
! 	$(CC) $(CFLAGS) -o dumpft dumpft.o ../cattab.o $(LIBFLAGS)
  
  clean:
  	rm -f *.o $(SCRIPTS) $(PROGRAMS) ljtab.c *.D *.sfp diagnostics
*** /tmp/PATCHold/./utils/pktype.c	Mon Jan 21 01:45:17 1991
--- ./utils/pktype.c	Mon Jan 21 01:45:20 1991
***************
*** 1,4 ****
! /*	Copyright 1985, 1986, 1987, 1988 16:49:49 Chris Lewis
  		All Rights Reserved
  
      Permission to copy and further distribute is freely given provided
--- 1,4 ----
! /*	Copyright 1985, 1986, 1987, 1988 01:41:15 Chris Lewis
  		All Rights Reserved
  
      Permission to copy and further distribute is freely given provided
***************
*** 13,19 ****
  
  #ifndef	lint
  static char SCCSID[] =
!     "@(#)pk2sfp.c 2.1 Copyright 90/07/18 16:49:49 Chris Lewis";
  #endif
  #include "defs.h"
  #include "pk.h"
--- 13,19 ----
  
  #ifndef	lint
  static char SCCSID[] =
!     "@(#)pk2sfp.c 2.2 Copyright 91/01/21 01:41:15 Chris Lewis";
  #endif
  #include "defs.h"
  #include "pk.h"
***************
*** 161,167 ****
  	    pc->pkc_char, pc->pkc_pl);
  	fprintf(diagFile, "  Flag byte: %d\n", pc->pkc_flag);
  	fprintf(diagFile, "  Dynamic packing variable: %d\n", pc->pkc_dyn_f);
! 	fprintf(diagFile, "  TFM width: %d, dx: %d", pc->pkc_tfm, pc->pkc_dx);
  	if (pc->pkc_dy)
  	    fprintf(diagFile, " dy: %d\n", pc->pkc_dy);
  	else
--- 161,168 ----
  	    pc->pkc_char, pc->pkc_pl);
  	fprintf(diagFile, "  Flag byte: %d\n", pc->pkc_flag);
  	fprintf(diagFile, "  Dynamic packing variable: %d\n", pc->pkc_dyn_f);
! 	fprintf(diagFile, "  TFM width: %d, dx: %d, delta x: %d", pc->pkc_tfm,
! 	    pc->pkc_dx, pc->pkc_dx * 4 / pow2(16));
  	if (pc->pkc_dy)
  	    fprintf(diagFile, " dy: %d\n", pc->pkc_dy);
  	else
*** /tmp/PATCHold/./tests/testtab.m.S	Mon Jan 21 01:45:36 1991
--- ./tests/testtab.m.S	Mon Jan 21 01:45:38 1991
***************
*** 1,4 ****
! .\" 2.1 90/07/18
  .po .25i
  .in 0
  .fp 1 R
--- 1,4 ----
! .\" 2.2 91/01/01
  .po .25i
  .in 0
  .fp 1 R
***************
*** 8,17 ****
  .ps 12
  .vs 14
  .sp |.3i
! .ce 3
! PSROFF TEST SHEET (2.1)
  .br
! Please fill out and FAX to (416) 595-5439
  .br
  \*(2d
  .ps 10
--- 8,19 ----
  .ps 12
  .vs 14
  .sp |.3i
! .ce 4
! PSROFF TEST SHEET (2.2)
  .br
! Please fill out and mail to: BOX 13215
! .br
! Kanata PO, Kanata, Ontario, Canada K2K 1X4
  .br
  \*(2d
  .ps 10
*** /tmp/PATCHold/./defs.h	Mon Jan 21 01:45:48 1991
--- ./defs.h	Mon Jan 21 01:45:50 1991
***************
*** 1,4 ****
! /*	Copyright 1988, 1989 23:46:55 Chris Lewis
  		All Rights Reserved
  
      Permission to copy and further distribute is freely given provided
--- 1,4 ----
! /*	Copyright 1988, 1989 03:44:30 Chris Lewis
  		All Rights Reserved
  
      Permission to copy and further distribute is freely given provided
***************
*** 6,18 ****
      sold for profit.
  
  	Project:	Generic Troff drivers
! 	Module:		defs.h 2.12 90/12/14 23:46:55
  	Author: 	Chris Lewis
  	Specs:		Main header file - contains some customization
   */
  
  /*	Official Release and Patch level:	*/
! #define	T2VERSION	"@(#)PSROFF Copyright 90/12/14 Chris Lewis - R2 P6"
  
  #ifndef	LIBDIR
  /*	Don't touch this */
--- 6,18 ----
      sold for profit.
  
  	Project:	Generic Troff drivers
! 	Module:		defs.h 2.13 91/01/18 03:44:30
  	Author: 	Chris Lewis
  	Specs:		Main header file - contains some customization
   */
  
  /*	Official Release and Patch level:	*/
! #define	T2VERSION	"@(#)PSROFF Copyright 91/01/18 Chris Lewis - R2 P7"
  
  #ifndef	LIBDIR
  /*	Don't touch this */
***************
*** 55,64 ****
  
  	- If HEADERSIZE defined, use that many bytes as a prefix to the
  	  compiled font width table.  HEADERSIZE 0 is the correct definition
! 	  for Xenix and most System V Troffs.  HEADERSIZE=32 works for Ultrix.
! 	  HEADERSIZE=0 works properly for Suns (I think).
  	- If COFF is defined instead, use a COFF header on the beginning of
! 	  the file.  I personally know of no machine that supports these.
  	- If neither are defined, use a BSD/V7 style a.out.h header, this
  	  is appropriate for V7 and BSD troffs
  	- If you are running RISC/Ultrix (Mips box? from DEC) define
--- 55,65 ----
  
  	- If HEADERSIZE defined, use that many bytes as a prefix to the
  	  compiled font width table.  HEADERSIZE 0 is the correct definition
! 	  for Xenix and most System V [o]troffs.  HEADERSIZE=32 works for Ultrix
! 	  (except RISC, see below).  HEADERSIZE=32 works properly for most Suns.
  	- If COFF is defined instead, use a COFF header on the beginning of
! 	  the file.  I personally know of no machine that supports these, tho,
! 	  there's unconfirmed rumours that Apollo systems might.
  	- If neither are defined, use a BSD/V7 style a.out.h header, this
  	  is appropriate for V7 and BSD troffs
  	- If you are running RISC/Ultrix (Mips box? from DEC) define
*** /tmp/PATCHold/./lj.c	Mon Jan 21 01:46:02 1991
--- ./lj.c	Mon Jan 21 01:46:05 1991
***************
*** 35,41 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)lj.c: 2.1 Copyright 90/07/18 16:51:32 Chris Lewis";
  #endif
  
  struct troff2befont ljStdFont[108] = {
--- 35,41 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)lj.c: 2.2 Copyright 91/01/18 03:45:38 Chris Lewis";
  #endif
  
  struct troff2befont ljStdFont[108] = {
***************
*** 431,436 ****
--- 431,437 ----
  int font, selpoints, fontcode;
  char *sequence; {
      int points, pointidx;
+     extern FILE *popen();
      register char *pf, *p;
      register struct pkp *pk;
  #if	!defined(INCR) && defined(PK)
*** /tmp/PATCHold/./pk.c	Mon Jan 21 01:46:31 1991
--- ./pk.c	Mon Jan 21 01:46:36 1991
***************
*** 7,13 ****
  #ifdef	PK
  
  #ifndef lint
! static char SCCSid[] = "@(#)pk.c 2.1 Copyright 90/07/18 16:51:38 Chris Lewis";
  #endif
  
  #define	DRAW
--- 7,13 ----
  #ifdef	PK
  
  #ifndef lint
! static char SCCSid[] = "@(#)pk.c 2.2 Copyright 91/01/18 03:45:54 Chris Lewis";
  #endif
  
  #define	DRAW
***************
*** 742,747 ****
--- 742,748 ----
  pk_read(file, fontcode)
  char *file; int fontcode; {
      register struct pkp *p;
+     extern FILE *popen();
      register struct pkc *pc, **pcp;
  #ifdef	COMPRESS
      int compressed = 0;
*** /tmp/PATCHold/./troff2.c	Mon Jan 21 01:47:07 1991
--- ./troff2.c	Mon Jan 21 01:47:10 1991
***************
*** 15,21 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)troff2.c: 2.3 Copyright 90/12/13 14:55:19 Chris Lewis";
  #endif
  
  #define	ESC	0x80
--- 15,21 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)troff2.c: 2.4 Copyright 91/01/18 03:44:48 Chris Lewis";
  #endif
  
  #define	ESC	0x80
***************
*** 611,618 ****
  		case 'c':
  		    retval *= TROFFRESOLUTION * 50. / 127.;
  		    break;
  		case 'P':
! 		    retval *= 72.;
  		    break;
  	    }
  	    break;
--- 611,621 ----
  		case 'c':
  		    retval *= TROFFRESOLUTION * 50. / 127.;
  		    break;
+ 		case 'p':
+ 		    retval *= 6.;	/* points */
+ 		    break;
  		case 'P':
! 		    retval *= 72.;	/* Picas */
  		    break;
  	    }
  	    break;
***************
*** 657,662 ****
--- 660,666 ----
  	    case 'S': {
  
  		    register FILE *fin;
+ 		    extern FILE *popen();
  		    register int rc, n;
  		    char buf[BUFSIZ];
  		    DBP((D_SPEC,"SYSTEM: %s\n", string+1));
-- 
Chris Lewis, Phone: (613) 832-0541, Internet: clewis@ferret.ocunix.on.ca
UUCP: uunet!mitel!cunews!latour!ecicrl!clewis
Moderator of the Ferret Mailing List (ferret-request@eci386)
Psroff mailing list (psroff-request@eci386)