🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.postscript
Article #6660

Official Patch 5 for Psroff 3.0

#6660
From: Chris Lewis
Date: Wed, 13 Nov 1991 06:05
955 lines
31608 bytes
Archive-name: psroff3.0/Patch.05
Submitted-by: clewis@ferret.ocunix.on.ca (Chris Lewis)

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

Just minor fixes this time.  Majority are about compilation
on 286's with slightly odd compilers.

../man/troff2ps.1.S		grammar fixes
../widths/dit2catwid.c		286 long versus int
../utils/Makefile		move asc2ps.o out of the way of psxlate builds.
../utils/pk2ps.c			printf "%d" versys "%ld".  sigh...
../utils/psxlate.c		Missing fclose - ascii to Postscript failed.
				ifdef out register - 286 compiler wimps out.
../utils.c			missing extern char *realloc()
../ps.c				moved \(ru and \(is slightly.  eqn should look
				nicer.
../dit.c				Missing * in (*p->f)().  Dumb 286.
../README			mkfont reference fixed.
../troff2.c			(*p->f)() and other 286 jazz.
../MISC				grammatical.
../defs.h			REGSPILL for undefing register on compilers
				that get confused by psxlate.c
../TROUBLE			grammatical.
../Makefile			grammatical changes in instructions.
../audit.S			enquoted something that needed it.
../psroff.S			compat with busted Xenix bourne shell.
../DITROFF			extensive rewrite.  Including pointers for
				groff.
Index: ./man/troff2ps.1.S
*** /tmp/PATCHold/./man/troff2ps.1.S	Wed Nov 13 00:37:46 1991
--- ./man/troff2ps.1.S	Wed Nov 13 00:37:48 1991
***************
*** 1,4 ****
! .\"Copyright 1988 by Chris Lewis 2.13 91/08/03
  .TH TROFF2PS %%MANEXT%% "Psroff %%T2VERSION%%"
  .SH NAME
  troff2ps, troff2lj, troff2xx \- convert troff output to Postscript, HP etc.
--- 1,4 ----
! .\"Copyright 1988 by Chris Lewis 2.14 91/11/13
  .TH TROFF2PS %%MANEXT%% "Psroff %%T2VERSION%%"
  .SH NAME
  troff2ps, troff2lj, troff2xx \- convert troff output to Postscript, HP etc.
***************
*** 113,119 ****
  .PP
  The
  .BI \-P opt
! directive can be specified as many times as you wish, it tells
  .I troff2ps
  to emit each
  .I opt
--- 113,119 ----
  .PP
  The
  .BI \-P opt
! directive can be specified as many times as you wish.  It tells
  .I troff2ps
  to emit each
  .I opt
***************
*** 157,164 ****
  This is because individual fonts often do not scale very well.
  The
  .BI \-W directory
! allows you to specify where the width tables are, by default they
! are ``%%FONTDIR%%/\fItype\fP'', where \fItype\fP is the driver
  type specified by the
  .B \-T
  option.
--- 157,164 ----
  This is because individual fonts often do not scale very well.
  The
  .BI \-W directory
! allows you to specify where the width tables are.  By default they
! are in ``%%FONTDIR%%/\fItype\fP'', where \fItype\fP is the driver
  type specified by the
  .B \-T
  option.
***************
*** 247,253 ****
  The overlay is typically a name from the printer-specific library.
  Eg: "Confidential" is the name for the confidential overlay.
  Only supported by postscript driver and this directive must be
! executed before any output on the page the overlay is desired.
  A O without a name (eg: ``.sR "O"'') cancels the current overlay.
  More than one overlay can be specified in one ``O'' request, as
  in "OLetterhead Confidential".
--- 247,253 ----
  The overlay is typically a name from the printer-specific library.
  Eg: "Confidential" is the name for the confidential overlay.
  Only supported by postscript driver and this directive must be
! executed before any output on the page where the overlay is desired.
  A O without a name (eg: ``.sR "O"'') cancels the current overlay.
  More than one overlay can be specified in one ``O'' request, as
  in "OLetterhead Confidential".
Index: ./widths/dit2catwid.c
*** /tmp/PATCHold/./widths/dit2catwid.c	Wed Nov 13 00:38:07 1991
--- ./widths/dit2catwid.c	Wed Nov 13 00:38:10 1991
***************
*** 10,16 ****
  
  #ifndef	lint
  static char SCCSID[] =
!     "@(#)dit2catwid.c 2.9 Copyright 91/07/27 12:36:15 Chris Lewis";
  #endif
  
  #include <stdio.h>
--- 10,16 ----
  
  #ifndef	lint
  static char SCCSID[] =
!     "@(#)dit2catwid.c 2.10 Copyright 91/10/17 19:56:13 Chris Lewis";
  #endif
  
  #include <stdio.h>
***************
*** 371,377 ****
  	return;
  
      do {
! 	tok = gettoken(buffer, NULL);
  
  	if (!tok)
  	    continue;
--- 371,377 ----
  	return;
  
      do {
! 	tok = gettoken(buffer, (char *)NULL);
  
  	if (!tok)
  	    continue;
***************
*** 415,421 ****
  #ifdef	DEBUG
  	printf("buffer: %s\n", buffer);
  #endif
! 	tok = gettoken(buffer, NULL);
  	if (!tok)
  	    continue;
  	if (strlen(tok) > 30) {
--- 415,421 ----
  #ifdef	DEBUG
  	printf("buffer: %s\n", buffer);
  #endif
! 	tok = gettoken(buffer, (char *)NULL);
  	if (!tok)
  	    continue;
  	if (strlen(tok) > 30) {
Index: ./utils/Makefile
*** /tmp/PATCHold/./utils/Makefile	Wed Nov 13 00:38:21 1991
--- ./utils/Makefile	Wed Nov 13 00:38:22 1991
***************
*** 4,10 ****
  #    See the LICENSE file for a full description of the restrictions
  #    under which this software is provided.
  #
! #2.8 91/09/27
  SCRIPTS	= psdtwd showfont mkenctab calcfonts catconv dodps
  PROGRAMS = hpinterp psxlate pk2sfp pk2ditwid pktype dumpft pk2ps lj2ps \
  	asc2ps
--- 4,10 ----
  #    See the LICENSE file for a full description of the restrictions
  #    under which this software is provided.
  #
! #2.9 91/10/17
  SCRIPTS	= psdtwd showfont mkenctab calcfonts catconv dodps
  PROGRAMS = hpinterp psxlate pk2sfp pk2ditwid pktype dumpft pk2ps lj2ps \
  	asc2ps
***************
*** 44,50 ****
--- 44,52 ----
  tmaps:	$(MAPS)
  
  asc2ps:	asc2ps.c
+ 	-mv asc2ps.o asc2ps.x
  	$(CC) $(CFLAGS) -DALONE -o asc2ps asc2ps.c
+ 	-mv asc2ps.x asc2ps.o
  
  $(MAPS):
  	cd maps ; get s.$(@F)
Index: ./utils/pk2ps.c
*** /tmp/PATCHold/./utils/pk2ps.c	Wed Nov 13 00:38:31 1991
--- ./utils/pk2ps.c	Wed Nov 13 00:38:32 1991
***************
*** 14,20 ****
  
  #ifndef	lint
  static char SCCSID[] =
!     "@(#)pk2ps.c 2.2 Copyright 91/02/20 09:10:38 Chris Lewis";
  #endif
  #include "defs.h"
  #include "pk.h"
--- 14,20 ----
  
  #ifndef	lint
  static char SCCSID[] =
!     "@(#)pk2ps.c 2.3 Copyright 91/10/22 03:03:11 Chris Lewis";
  #endif
  #include "defs.h"
  #include "pk.h"
***************
*** 107,113 ****
  	for (pc = p->pkp_chars; pc; pc = pc->pkc_next) {
  	    if (pc->pkc_next)
  		printf("dup ");
! 	    printf("%d /ch%d put\n", pc->pkc_char, pc->pkc_char);
  	    highest = max(highest, pc->pkc_char);
  	    chcount++;
  	}
--- 107,113 ----
  	for (pc = p->pkp_chars; pc; pc = pc->pkc_next) {
  	    if (pc->pkc_next)
  		printf("dup ");
! 	    printf("%ld /ch%ld put\n", pc->pkc_char, pc->pkc_char);
  	    highest = max(highest, pc->pkc_char);
  	    chcount++;
  	}
***************
*** 160,166 ****
  		continue;
  	    }
  	    printf(
! 	    "    /ch%d [ %.2f %.2f %.2f %.2f %.2f %d %d %.2f %.2f\n\t<",
  		pc->pkc_char,
  
  		DOTS2UNITS((double) pc->pkc_dx / pow2(16)),	/* width */
--- 160,166 ----
  		continue;
  	    }
  	    printf(
! 	    "    /ch%ld [ %.2f %.2f %.2f %.2f %.2f %ld %ld %.2f %.2f\n\t<",
  		pc->pkc_char,
  
  		DOTS2UNITS((double) pc->pkc_dx / pow2(16)),	/* width */
Index: ./utils/psxlate.c
*** /tmp/PATCHold/./utils/psxlate.c	Wed Nov 13 00:38:45 1991
--- ./utils/psxlate.c	Wed Nov 13 00:38:47 1991
***************
*** 23,29 ****
   */
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)psxlate.c: 2.16 Copyright 91/09/30 16:29:20 Chris Lewis";
  #endif
  
  #ifdef	ALONE
--- 23,29 ----
   */
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)psxlate.c: 2.17 Copyright 91/10/23 10:47:15 Chris Lewis";
  #endif
  
  #ifdef	ALONE
***************
*** 33,38 ****
--- 33,42 ----
  #include "defs.h"
  #endif
  
+ #ifdef	REGSPILL
+ #define	register
+ #endif
+ 
  int	xlate;
  int	italic;
  int	needd;
***************
*** 192,197 ****
--- 196,202 ----
  	    if (verbose || debug)
  		fprintf(stderr, "DEBUG: non-Postscript file %s\n", buffer);
  	    asc2ps(buffer);
+ 	    fclose(tempfile);
  	    stripbyrange();
  	    transform();
  	    emit(tmp);
Index: ./utils.c
*** /tmp/PATCHold/./utils.c	Wed Nov 13 00:39:01 1991
--- ./utils.c	Wed Nov 13 00:39:03 1991
***************
*** 12,18 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)utils.c: 2.19 Copyright 91/09/30 16:29:32 Chris Lewis";
  #endif
  
  #ifndef	HEADERSIZE
--- 12,18 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)utils.c: 2.20 Copyright 91/10/18 16:32:49 Chris Lewis";
  #endif
  
  #ifndef	HEADERSIZE
***************
*** 210,215 ****
--- 210,216 ----
  			}
  
  			if (state == READEXT) {
+ 			    extern char *realloc();
  			    if (!(extcount % EXTCHUNK)) {
  				if (!extchars) {
  				    extchars = (struct troff2befont *)
Index: ./ps.c
*** /tmp/PATCHold/./ps.c	Wed Nov 13 00:39:32 1991
--- ./ps.c	Wed Nov 13 00:39:37 1991
***************
*** 15,21 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)ps.c: 2.14 Copyright 91/08/18 03:27:46 Chris Lewis";
  #endif
  
  /*	ps.c will generate some additional "print" commands to cause
--- 15,21 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)ps.c: 2.15 Copyright 91/11/13 00:29:48 Chris Lewis";
  #endif
  
  /*	ps.c will generate some additional "print" commands to cause
***************
*** 81,87 ****
  	/* 18*/	{N, 0, 0, 0, ";"},
  	/* 19*/	{N, 0, 0, 0, NOC},
  	/* 20*/	{N, 0, 0, 0, "a"},
! 	/* 21*/	{N, 0, 0, 0, "_"},
  	/* 22*/	{N, 0, 0, 0, "c"},
  	/* 23*/	{N, 0, 0, 0, "`"},
  	/* 24*/	{N, 0, 0, 0, "e"},
--- 81,87 ----
  	/* 18*/	{N, 0, 0, 0, ";"},
  	/* 19*/	{N, 0, 0, 0, NOC},
  	/* 20*/	{N, 0, 0, 0, "a"},
! 	/* 21*/	{N, 0, 120, 0, "_"},
  	/* 22*/	{N, 0, 0, 0, "c"},
  	/* 23*/	{N, 0, 0, 0, "`"},
  	/* 24*/	{N, 0, 0, 0, "e"},
***************
*** 242,248 ****
  	/* 50*/	{S, 0, 0, 0, "\114"},
  	/* 51*/	{S, 0, 0, 0, "\055"},
  	/* 52*/	{S, 0, 0, 0, "\107"},
! 	/* 53*/	{S, 0, 0, 0, "\362"},
  	/* 54*/	{S, 0, 0, 0, "\120"},
  	/* 55*/	{S, 0, 0, 0, "\314"},
  	/* 56*/	{S, 0, 0, 0, "\311"},
--- 242,248 ----
  	/* 50*/	{S, 0, 0, 0, "\114"},
  	/* 51*/	{S, 0, 0, 0, "\055"},
  	/* 52*/	{S, 0, 0, 0, "\107"},
! 	/* 53*/	{S, 0, -80, 0, "\362"},
  	/* 54*/	{S, 0, 0, 0, "\120"},
  	/* 55*/	{S, 0, 0, 0, "\314"},
  	/* 56*/	{S, 0, 0, 0, "\311"},
Index: ./dit.c
*** /tmp/PATCHold/./dit.c	Wed Nov 13 00:39:49 1991
--- ./dit.c	Wed Nov 13 00:39:51 1991
***************
*** 12,18 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)dit.c: Copyright 91/09/30 16:29:42 Chris Lewis";
  #endif
  
  extern struct cattab tabN[], tabS[], *extidx;
--- 12,18 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)dit.c: Copyright 91/10/17 11:58:18 Chris Lewis";
  #endif
  
  extern struct cattab tabN[], tabS[], *extidx;
***************
*** 461,467 ****
      xpos, ypos, opcode, ct, special));
  
  			if (be->bedraw)
! 			    (be->bedraw)(xpos * TROFFRESOLUTION / indtres,
  					 ypos * TROFFRESOLUTION / indtres,
  					 opcode, ct, values, special);
  			xpos = newx;
--- 461,467 ----
      xpos, ypos, opcode, ct, special));
  
  			if (be->bedraw)
! 			    (*be->bedraw)(xpos * TROFFRESOLUTION / indtres,
  					 ypos * TROFFRESOLUTION / indtres,
  					 opcode, ct, values, special);
  			xpos = newx;
Index: ./README
*** /tmp/PATCHold/./README	Wed Nov 13 00:40:06 1991
--- ./README	Wed Nov 13 00:40:11 1991
***************
*** 1,4 ****
! 		PSROFF RELEASE 3.0 README 2.20 91/07/20
  
  			Feb 19, 1991
  			Chris Lewis
--- 1,4 ----
! 		PSROFF RELEASE 3.0 README 2.21 91/10/11
  
  			Feb 19, 1991
  			Chris Lewis
***************
*** 59,65 ****
  	  tables for the built-in fonts.
      - If you're intending to use ditroff *input*, you should ensure
        that you have makedev, or the PD makedev clone "mkfont" from
!       comp.sources.unix in 1988.  There was a bug in mkfont which
        bites on some machines, if your ditroff doesn't like the
        width tables mkfont generates, contact me, I have a teensy patch
        for it.
--- 59,65 ----
  	  tables for the built-in fonts.
      - If you're intending to use ditroff *input*, you should ensure
        that you have makedev, or the PD makedev clone "mkfont" from
!       comp.sources.misc volume 2.  There was a bug in mkfont which
        bites on some machines, if your ditroff doesn't like the
        width tables mkfont generates, contact me, I have a teensy patch
        for it.
Index: ./troff2.c
*** /tmp/PATCHold/./troff2.c	Wed Nov 13 00:40:27 1991
--- ./troff2.c	Wed Nov 13 00:40:30 1991
***************
*** 12,18 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)troff2.c: 2.21 Copyright 91/08/29 18:22:41 Chris Lewis";
  #endif
  
  #define	ESC	0x80
--- 12,18 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)troff2.c: 2.22 Copyright 91/10/17 11:58:25 Chris Lewis";
  #endif
  
  #define	ESC	0x80
***************
*** 711,717 ****
      xpos, ypos, opcode, ct, string));
  
  		if (be->bedraw)
! 		    (be->bedraw)(specXPos, specYPos, opcode, ct, values,
  			string);
  		specXPos = newx;
  		specYPos = newy;
--- 711,717 ----
      xpos, ypos, opcode, ct, string));
  
  		if (be->bedraw)
! 		    (*be->bedraw)(specXPos, specYPos, opcode, ct, values,
  			string);
  		specXPos = newx;
  		specYPos = newy;
***************
*** 739,750 ****
  		} else {
  		    if (be->beputchar) {
  			if (p->ch_wididx == NTC) /* extended character */
! 			    (be->beputchar)(specXPos, specYPos,
  				p->ch_set == N ? -font-1: -symidx-1,
  				points, p->ch_catidx,
  				extchars[p->ch_catidx].t2b_charseq);
  			else
! 			    (be->beputchar)(specXPos, specYPos,
  				p->ch_set == N ? font: symidx,
  				points, p->ch_catidx, (char *) NULL);
  		    }
--- 739,750 ----
  		} else {
  		    if (be->beputchar) {
  			if (p->ch_wididx == NTC) /* extended character */
! 			    (*be->beputchar)(specXPos, specYPos,
  				p->ch_set == N ? -font-1: -symidx-1,
  				points, p->ch_catidx,
  				extchars[p->ch_catidx].t2b_charseq);
  			else
! 			    (*be->beputchar)(specXPos, specYPos,
  				p->ch_set == N ? font: symidx,
  				points, p->ch_catidx, (char *) NULL);
  		    }
Index: ./MISC
*** /tmp/PATCHold/./MISC	Wed Nov 13 00:40:52 1991
--- ./MISC	Wed Nov 13 00:40:57 1991
***************
*** 1,5 ****
  		Miscellaneous Tuning/Customization
! 			2.15 91/08/29
  
      - Vertical bars in eqn may not be vertical.  This is a botch
        in some versions of eqn - namely, eqn is asking for "|"
--- 1,5 ----
  		Miscellaneous Tuning/Customization
! 			2.16 91/11/13
  
      - Vertical bars in eqn may not be vertical.  This is a botch
        in some versions of eqn - namely, eqn is asking for "|"
***************
*** 212,223 ****
  
  	      x adjust, y adjust, scale default to 0, 0 and 100 respectively.
  	      x and y adjust are multiplied by .01, then the pointsize
! 	      and of the output driver to give the shift factor in
  	      1/resolution units.  Scale allows you to change the size
  	      of that one character (eg: you think bullet is too small), but
  	      it isn't recommended too much (it may not work reasonably
  	      on non-postscript drivers).  Again, scale is prescaled by
! 	      .01 first, so 100 is 1-1.
  
  	      <sequence> defaults to <troffchar>.  N means normal mapping
  	      (eg: for fonts other than S with no cross font jumping),
--- 212,223 ----
  
  	      x adjust, y adjust, scale default to 0, 0 and 100 respectively.
  	      x and y adjust are multiplied by .01, then the pointsize
! 	      of the output driver to give the shift factor in
  	      1/resolution units.  Scale allows you to change the size
  	      of that one character (eg: you think bullet is too small), but
  	      it isn't recommended too much (it may not work reasonably
  	      on non-postscript drivers).  Again, scale is prescaled by
! 	      .01 first, so 100 is 1:1.
  
  	      <sequence> defaults to <troffchar>.  N means normal mapping
  	      (eg: for fonts other than S with no cross font jumping),
Index: ./defs.h
*** /tmp/PATCHold/./defs.h	Wed Nov 13 00:41:14 1991
--- ./defs.h	Wed Nov 13 00:41:16 1991
***************
*** 9,15 ****
   */
  
  /*	Official Release and Patch level:	*/
! #define	T2VERSION	"@(#)PSROFF Copyright 91/09/27 Chris Lewis - R3 PL4"
  
  /*	Configuration parameters:
   */
--- 9,15 ----
   */
  
  /*	Official Release and Patch level:	*/
! #define	T2VERSION	"@(#)PSROFF Copyright 91/11/02 Chris Lewis - R3 PL5"
  
  /*	Configuration parameters:
   */
***************
*** 24,29 ****
--- 24,33 ----
  
  #undef  BCOPYLIB	/* Define if BCOPY is defined and you have */
  			/* a bcopy in your library */
+ 
+ #undef	REGSPILL	/* Define if your compiler gives "infinite register
+ 			   spill in utils/psxlate.c (Xenix III) */
+ 	
  
  /*	The name of a routine that can be called thusly:
  	VFPRINTF(stream, format, ap)
Index: ./TROUBLE
*** /tmp/PATCHold/./TROUBLE	Wed Nov 13 00:41:28 1991
--- ./TROUBLE	Wed Nov 13 00:41:31 1991
***************
*** 1,4 ****
! 		Psroff 3.0 Trouble Shooting.... 2.15 91/07/20
  
  (psroff 1.0 users can use this to a certain extent.  This is relatively
  unchanged from Psroff 2.0 except for the ditroff input capability)
--- 1,4 ----
! 		Psroff 3.0 Trouble Shooting.... 2.16 91/11/13
  
  (psroff 1.0 users can use this to a certain extent.  This is relatively
  unchanged from Psroff 2.0 except for the ditroff input capability)
***************
*** 53,59 ****
  	  Note, however, that some manual page sets do not mention either
  	  of these options - in that case it's probably -F.
  	  
! 	  This is should be specified by "trofftype" in lib/psroff.lib.S.
  	  If you have a "-T" version of troff, FONTDIR *must* be /usr/lib/font.
  	  If your troff supports neither -T or -F (some real old versions of
  	  Xenix, V7 perchance), you will have to install the width tables in
--- 53,59 ----
  	  Note, however, that some manual page sets do not mention either
  	  of these options - in that case it's probably -F.
  	  
! 	  This should be specified by "trofftype" in lib/psroff.lib.S.
  	  If you have a "-T" version of troff, FONTDIR *must* be /usr/lib/font.
  	  If your troff supports neither -T or -F (some real old versions of
  	  Xenix, V7 perchance), you will have to install the width tables in
***************
*** 64,70 ****
  	  In ditroff input, the trofftype is forced to be -T$width.
  
  	- "psroff debug" - rerun the psroff command, additionally specifying
! 	  "-F" in the command line.  This permit's troff's stderr to be
  	  seen.  Correct any problems that it tells you about.  (eg:
  	  "width option").  If you see lines of the form:
  		M<string>
--- 64,70 ----
  	  In ditroff input, the trofftype is forced to be -T$width.
  
  	- "psroff debug" - rerun the psroff command, additionally specifying
! 	  "-F" in the command line.  This permits troff's stderr to be
  	  seen.  Correct any problems that it tells you about.  (eg:
  	  "width option").  If you see lines of the form:
  		M<string>
***************
*** 74,80 ****
  	  of the width table files.  HEADERSIZE (defs.h) allows you to
  	  specify an arbitrary number of bytes on the front of the table
  	  in the width file.  Check /usr/lib/font/ftR (should be part
! 	  of your original troff installation.  Is ftR 224 bytes long?
  	  If so, HEADERSIZE should be zero.  If not (eg: Ultrix,
  	  BSD's, some older Xenix, V7), you will have to specify
  	  HEADERSIZE.  SunOS, VAX/Ultrix wants 32.  (should be the size
--- 74,80 ----
  	  of the width table files.  HEADERSIZE (defs.h) allows you to
  	  specify an arbitrary number of bytes on the front of the table
  	  in the width file.  Check /usr/lib/font/ftR (should be part
! 	  of your original troff installation).  Is ftR 224 bytes long?
  	  If so, HEADERSIZE should be zero.  If not (eg: Ultrix,
  	  BSD's, some older Xenix, V7), you will have to specify
  	  HEADERSIZE.  SunOS, VAX/Ultrix wants 32.  (should be the size
***************
*** 127,133 ****
         a HEADERSIZE guess, plus an error count.  The errorcount
         will have a minimum value, ideally zero.  Set
         the HEADERSIZE to the guess with the minimum error
!        count and rebuild retry everything.  I won't attempt
         to supply these numbers for each of these systems because
         the number changes from release to release in some systems.
  
--- 127,133 ----
         a HEADERSIZE guess, plus an error count.  The errorcount
         will have a minimum value, ideally zero.  Set
         the HEADERSIZE to the guess with the minimum error
!        count and rebuild and retry everything.  I won't attempt
         to supply these numbers for each of these systems because
         the number changes from release to release in some systems.
  
***************
*** 449,455 ****
        be the wrong size and some characters will be missing (italic
        and bold "6").  See LASERFONTS/LJIII file.
  
! Laserjet: lousey/wrong/missing characters (non-S font):
  
      - You got crummy fonts.  Go buy or steal some good ROMAN8's in Roman,
        Italic and Bold at CAT troff's supported point sizes.
--- 449,455 ----
        be the wrong size and some characters will be missing (italic
        and bold "6").  See LASERFONTS/LJIII file.
  
! Laserjet: lousy/wrong/missing characters (non-S font):
  
      - You got crummy fonts.  Go buy or steal some good ROMAN8's in Roman,
        Italic and Bold at CAT troff's supported point sizes.
Index: ./Makefile
*** /tmp/PATCHold/./Makefile	Wed Nov 13 00:41:54 1991
--- ./Makefile	Wed Nov 13 00:41:56 1991
***************
*** 7,13 ****
  #    Function: Upper level makefile; configuration options.
  #
  #
! #ident  "@(#)Makefile: 2.24 Copyright 91/10/01 23:19:27 Chris Lewis"
  
  #	If you're not sure whether you have a System V make, leave
  #	this alone, and run the make anyways.  If it dies horribly
--- 7,13 ----
  #    Function: Upper level makefile; configuration options.
  #
  #
! #ident  "@(#)Makefile: 2.26 Copyright 91/10/18 16:32:33 Chris Lewis"
  
  #	If you're not sure whether you have a System V make, leave
  #	this alone, and run the make anyways.  If it dies horribly
***************
*** 132,139 ****
  #	enormous...  (5000+ blocks)
  NEWFONTS = /tmp/newfonts
  #	If you are going to be working with ditroff, set this to the
! #	path to the makedev (DWB) or mkfont (PD via comp.sources.unix) program.
! #	If this doesn't point at an executable program, nothing will happen.
  #	A make install in the widths directory will go through the psrofflib
  #	file, looking for each configuration requiring ditroff, and install
  #	the needed widths in the proper directory.  This will NOT overwrite
--- 132,141 ----
  #	enormous...  (5000+ blocks)
  NEWFONTS = /tmp/newfonts
  #	If you are going to be working with ditroff, set this to the
! #	path to the makedev (DWB) or mkfont (PD via comp.sources.misc vol 2)
! #	program.  If this doesn't point at an executable program, nothing will
! #	happen.
! #
  #	A make install in the widths directory will go through the psrofflib
  #	file, looking for each configuration requiring ditroff, and install
  #	the needed widths in the proper directory.  This will NOT overwrite
***************
*** 261,268 ****
  	cd lib ; $(MAKE) lj.fonts lj.lib
  	cd utils ; $(MAKE) buildfonts
  
  myuid:
! 	echo 'main() { printf("%d\\n", getuid()); exit(0); }' > myuid.c
  	$(CC) -o myuid myuid.c
  	rm -f myuid.c
  
--- 263,271 ----
  	cd lib ; $(MAKE) lj.fonts lj.lib
  	cd utils ; $(MAKE) buildfonts
  
+ #	putchar(10).  Sigh...
  myuid:
! 	echo 'main() { printf("%d%c", getuid(), 10); exit(0); }' > myuid.c
  	$(CC) -o myuid myuid.c
  	rm -f myuid.c
  
Index: ./audit.S
*** /tmp/PATCHold/./audit.S	Wed Nov 13 00:42:09 1991
--- ./audit.S	Wed Nov 13 00:42:15 1991
***************
*** 6,12 ****
  #    under which this software is provided.
  #
  #
! #	Psroff checking script 2.11 91/08/18
  chkinst=false
  for i
  do
--- 6,12 ----
  #    under which this software is provided.
  #
  #
! #	Psroff checking script 2.12 91/11/13
  chkinst=false
  for i
  do
***************
*** 339,345 ****
  	echo "   * $msgtyp: FONTDIR/$width not installed yet"
  	echo "              psroff -T$width won't work until you do"
      fi
!     if [ ! -d widths/width${width} ]
      then
  	echo "   * WARNING: no widths/width${width} directory"
      fi
--- 339,345 ----
  	echo "   * $msgtyp: FONTDIR/$width not installed yet"
  	echo "              psroff -T$width won't work until you do"
      fi
!     if [ ! -d "widths/width${width}" ]
      then
  	echo "   * WARNING: no widths/width${width} directory"
      fi
Index: ./psroff.S
*** /tmp/PATCHold/./psroff.S	Wed Nov 13 00:42:29 1991
--- ./psroff.S	Wed Nov 13 00:42:30 1991
***************
*** 7,13 ****
  #
  #	Specs:		troff2ps driver
  #
! #ident  "@(#)psroff.sh: 2.16 Copyright 91/09/28 00:08:35 Chris Lewis"
  
  LIBDIR="%%LIBDIR%%"
  FONTDIR="%%FONTDIR%%"
--- 7,13 ----
  #
  #	Specs:		troff2ps driver
  #
! #ident  "@(#)psroff.sh: 2.17 Copyright 91/11/13 00:30:44 Chris Lewis"
  
  LIBDIR="%%LIBDIR%%"
  FONTDIR="%%FONTDIR%%"
***************
*** 18,24 ****
  then
      type=$PSROFF
  else
!     type=`basename $0 | sed -n -e 's;^\([^/]*\)roff$;\1;p'`
      if [ -z "$type" ]
      then
  	echo "psroff: Can't intuit psroff type from $0" >&2
--- 18,24 ----
  then
      type=$PSROFF
  else
!     type=`basename $0 | sed -n -e 's;roff$;;p'`
      if [ -z "$type" ]
      then
  	echo "psroff: Can't intuit psroff type from $0" >&2
***************
*** 161,172 ****
  fi
  
  #	If -N in t2arg, then this is ditroff.
! if [ -n "`echo "$t2arg" | sed -n -e '/-N/p'`" ]
  then
      otroff=
      widtharg="-T$width"
  else
!     otroff=-t
  fi
  
  #	Try to find troff
--- 161,174 ----
  fi
  
  #	If -N in t2arg, then this is ditroff.
! teststring=`echo "$t2arg" | sed -n -e '/-N/p'`
! if [ -n "$teststring" ]
! ]
  then
      otroff=
      widtharg="-T$width"
  else
!     otroff="-t"
  fi
  
  #	Try to find troff
Index: ./DITROFF
*** /tmp/PATCHold/./DITROFF	Wed Nov 13 00:42:38 1991
--- ./DITROFF	Wed Nov 13 00:42:39 1991
***************
*** 1,5 ****
  		Ditroff/Groff input configuration notes
! 			2.4 91/04/17
  
  This document attempts to describe some of the issues of using
  psroff with ditroff or groff instead of CAT troff.  Some of the
--- 1,5 ----
  		Ditroff/Groff input configuration notes
! 			2.6 91/10/18
  
  This document attempts to describe some of the issues of using
  psroff with ditroff or groff instead of CAT troff.  Some of the
***************
*** 28,46 ****
  Width tables:
  ------------
  
! Psroff installation does not install ditroff width tables
! into a place for ditroff to find them.  The "make installwidths"
! only installs CAT-compatible width tables in FONTDIR/<widthname>/ft*,
! yet, ditroff will insist upon a FONTDIR/dev<widthname>/*.out format.
  
  Groff width tables are somewhat different - see the end of this file.
  
  The supplied lj3 and ps widths (widths/width???) files are designed to
! operate with full ditroff.  To use them, copy widths/widthlj3/[A-Z]* to
! FONTDIR/devlj3 or widths/widthps/[A-Z]* to FONTDIR/devpsc.  Then,
! chdir to that directory and run "makedev".  Some ditroff releases
! came without a "makedev" program.  A reimplementation
! of makedev was published in comp.sources.misc in 1988:
  
  	v02i084   mkfont  mkfont/rdfont--compile and uncompile ditroff fonts
  
--- 28,45 ----
  Width tables:
  ------------
  
! Psroff installation will install ditroff width tables in the
! right place, provided that FONTDIR is pointing at the directory
! that ditroff is expecting to see them (normally /usr/lib/font,
! same as C/A/T troff), AND that you have set MAKEDEV properly.
! This is done during the installdit phase in the widths Makefile.
  
  Groff width tables are somewhat different - see the end of this file.
  
  The supplied lj3 and ps widths (widths/width???) files are designed to
! operate with full ditroff.  To use them, make sure that MAKEDEV
! points to the makedev that comes with your ditroff, OR, points at
! "mkfont", which is was posted in comp.sources.misc:
  
  	v02i084   mkfont  mkfont/rdfont--compile and uncompile ditroff fonts
  
***************
*** 65,98 ****
  Macro Adapters & Page offsets:
  -----------------------------
  
! When you specify "-mm", psroff goes and looks for a file called
! "tmac.m" in the macro library area, namely, /usr/lib/tmac.
! In order to support CAT troff, psroff looks in LIBDIR/adapters
! for a file called tmac.m, which includes LIBDIR/adapters/cmn.pre
! to predefine some CAT-specific things, then includes
! /usr/lib/tmac/tmac.m to customize the real tmac.m macros for
! CAT limitations, then includes LIBDIR/adapters/cmn.post.
! 
! You'll probably want to simply replace adapters/tmac.*.S with
! a ".so" of the real macros.  Eg, for -mm, replace tmac.m.S
! with:
! 	.so %%RTMACDIR%%/tmac.m
! 	.de sR
! 	\X'\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9'
! 	..
! (Note, since I don't really know the ditroff convention for
! the contents of \X, other code that relies on particular
! behaviour for \X may not work.  Though, if you use the .sR
! mechanism as described in the psroff/troff2ps manual pages,
! that will work just as it does with CAT troff.
! 
! Also, you'll probably want to override the default 1/2 inch offset
! that troff2ps implements by specifying -O0 in the t2arg entry of
! lib/psrofflib.S.
  
- You should test this stuff first, because the -N option overrides
- part of the adapter file search.
- 
  Groff
  -----
  
--- 64,72 ----
  Macro Adapters & Page offsets:
  -----------------------------
  
! When using ditroff, the psroff shell script ignores the adapters
! talked about in psroff(1) and elsewhere.
  
  Groff
  -----
  
***************
*** 109,114 ****
--- 83,94 ----
  script to call troff2ps (you will need to specify the -N option,
  plus set the -p and -T values).  You will probably have to build
  up a proper DESC file for widthlj if you aren't driving a LJ3.
+ 
+ If groff complains about the width tables, you will have to
+ remove the characters in the width tables that call for multiple
+ character sequences in the output.  In particular, specifications
+ with more than 4 characters in the fourth field.  Eg: "ff", "fi",
+ "fl" etc.
  
  Secondly, if you want to drive DVI interfaces from CAT troff, you
  can use the ditroff-2-dvi converter with psroff's ditroff output
Technical Details
Message-ID: <2773@ecicrl.ocunix.on.ca>
Path: arc1-ca.pugleaf.net!wupost!cs.utexas.edu!utgpu!cunews!micor!ecicrl!ferret.ocunix.on.ca!clewis

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!wupost!cs.utexas.edu!utgpu!cunews!micor!ecicrl!ferret.ocunix.on.ca!clewis
From: clewis@ferret.ocunix.on.ca (Chris Lewis)
Newsgroups: comp.lang.postscript,alt.sources,comp.text,comp.sources.bugs
Subject: Official Patch 5 for Psroff 3.0
Message-ID: <2773@ecicrl.ocunix.on.ca>
Date: 13 Nov 91 06:05:51 GMT
Sender: clewis@ferret.ocunix.on.ca
Followup-To: comp.lang.postscript
Organization: Elegant Communications Inc., Ottawa, Canada
Lines: 955