[alt.sources] Psroff Release 2.0, Patch 4

clewis@ecicrl.UUCP (Chris Lewis) (10/25/90)

Archive-name: psroff2.0/patch.04
Submitted-by: clewis@ecicrl.uucp (Chris Lewis)

I'm really sorry that Psroff 2.0 itself hasn't been posted.
It's been sitting in Rich's queue for comp.sources.unix since
July.  I'm going to see if I can get it out through comp.sources.misc
in a timely fashion, if not, I'll just post it thru alt.sources.

If you do wish to followup to this article, please ensure that
your posting goes to comp.text - since I've moved to Ottawa, I've
been paying LD charges for my news, and I've not been receiving
any of the sources groups.

This is (almost) a trivial patch.  When Psroff gets posted in its
entirety, it will be at THIS level (PL4).

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

./man/troff2ps.1.S	Documented optimizer (-Z & -W)
./debug.c		trailing spaces.
./utils/Makefile	forgot catconv
./defs.h		PL4 & NODECMD for systems without uuname -l.
./dt.c			trailing spaces.
./utils.c		NODECMD

*** /tmp/PATCHold/./man/troff2ps.1.S	Wed Oct 24 13:42:08 1990
--- ./man/troff2ps.1.S	Wed Oct 24 13:42:09 1990
***************
*** 1,4 ****
! .\"Copyright 1988 by Chris Lewis 2.1 90/07/18
  .TH TROFF2PS 1 local
  .SH NAME
  troff2ps, troff2lj, troff2xx \- convert troff output to Postscript, HP etc.
--- 1,4 ----
! .\"Copyright 1988 by Chris Lewis 2.2 90/10/24
  .TH TROFF2PS 1 local
  .SH NAME
  troff2ps, troff2lj, troff2xx \- convert troff output to Postscript, HP etc.
***************
*** 12,17 ****
--- 12,19 ----
  .BI "[-p" prolog "]"
  .BI "[-O" l "]"
  .BI "[-Y" l "]"
+ .BI "[-W" directory "]"
+ .B "[-Z]"
  [-V] [-M]
  .SH DESCRIPTION
  .I Troff2ps
***************
*** 112,117 ****
--- 114,158 ----
  options allow you to specify page X and Y offsets respectively.
  The value should be a number with a valid troff scale factor.
  Eg: ``-O.463i''.
+ .P
+ The
+ .B -Z
+ and
+ .B -W
+ options controller the optimizer.
+ If the
+ .B -Z
+ option is specified, the backends attempt to coalesce strings of
+ characters into one drawing request.
+ Without this option,
+ .B troff2
+ draws words by positioning each letter separately.
+ The optimizer can reduce the size of the output file by factors of 3 or
+ more, and printer speeds similarly, particularly in Postscript.
+ This option is disabled in ditroff-output-mode - it's up to the
+ ditroff filter to optimize.
+ The
+ .BI -W directory
+ allows you to specify where the width tables are, by default they
+ are "/usr/lib/font/\fItype\fP", where \fItype\fP is the driver
+ type specified by the
+ .B -T
+ option.
+ This option is useful if you've moved the width directory somewhere
+ else, or the final directory name is different from the
+ .B -T
+ value.
+ See psrofflib entry "ops" for an example.
+ The
+ .B -W
+ option is ignored unless
+ .B -Z
+ is specified.
+ .P
+ The optimizer is quite good, but it is known that columns of text separated
+ by a leader made up of periods can fool it.
+ At the present time, it is unknown whether it's a width table or
+ printer or troff wierdness.
  .SH "SPECIAL REQUESTS"
  .BI troff2 xx
  supports a number of additional features over and above bare
*** /tmp/PATCHold/./debug.c	Wed Oct 24 13:42:21 1990
--- ./debug.c	Wed Oct 24 13:42:22 1990
***************
*** 2,8 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)debug.c: 2.3 Copyright 90/10/01 14:41:07 Chris Lewis";
  #endif
  
  #ifdef	DEBUG
--- 2,8 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)debug.c: 2.4 Copyright 90/10/22 14:53:06 Chris Lewis";
  #endif
  
  #ifdef	DEBUG
***************
*** 120,126 ****
   */
  bcopy(from, to, len)
  register char *from, *to;
! register int len; 
  {
    while(len--)
  	*to++ = *from++;
--- 120,126 ----
   */
  bcopy(from, to, len)
  register char *from, *to;
! register int len;
  {
    while(len--)
  	*to++ = *from++;
***************
*** 128,134 ****
  
  bzero(array, len)
  register char *array;
! register int len; 
  {
    while(len--)
  	*array++ = '\0';
--- 128,134 ----
  
  bzero(array, len)
  register char *array;
! register int len;
  {
    while(len--)
  	*array++ = '\0';
*** /tmp/PATCHold/./utils/Makefile	Wed Oct 24 13:42:32 1990
--- ./utils/Makefile	Wed Oct 24 13:42:33 1990
***************
*** 1,5 ****
! #	Copyright 16:49:40 Chris Lewis
! SCRIPTS	= psdtwd showfont mkenctab calcfonts
  PROGRAMS = hpinterp psxlate pk2sfp pk2ditwid pktype dumpft pk2ps lj2ps
  MAPS = maps/S.cmtrf \
  	maps/alnum.ROMAN8 \
--- 1,5 ----
! #	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 \
  	maps/alnum.ROMAN8 \
*** /tmp/PATCHold/./defs.h	Wed Oct 24 13:42:42 1990
--- ./defs.h	Wed Oct 24 13:42:44 1990
***************
*** 1,4 ****
! /*	Copyright 1988, 1989 13:38:22 Chris Lewis
  		All Rights Reserved
  
      Permission to copy and further distribute is freely given provided
--- 1,4 ----
! /*	Copyright 1988, 1989 13:21:58 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.7 90/10/12 13:38:22
  	Author: 	Chris Lewis
  	Specs:		Main header file - contains some customization
   */
  
  /*	Official Release and Patch level:	*/
! #define	T2VERSION	"@(#)PSROFF Copyright 90/10/12 Chris Lewis - R2 P3"
  
  #ifndef	LIBDIR
  /*	Don't touch this */
--- 6,18 ----
      sold for profit.
  
  	Project:	Generic Troff drivers
! 	Module:		defs.h 2.9 90/10/24 13:21:58
  	Author: 	Chris Lewis
  	Specs:		Main header file - contains some customization
   */
  
  /*	Official Release and Patch level:	*/
! #define	T2VERSION	"@(#)PSROFF Copyright 90/10/24 Chris Lewis - R2 P4"
  
  #ifndef	LIBDIR
  /*	Don't touch this */
***************
*** 31,37 ****
  			   oldish BSD systems */
  
  #undef  BCOPYLIB	/* Define if BCOPY is defined and you have */
! 			/* a bcopy in the library */ 
  
  #undef	UNSIGNEDCHAR	/* Define if chars are unsigned on your machine */
  
--- 31,37 ----
  			   oldish BSD systems */
  
  #undef  BCOPYLIB	/* Define if BCOPY is defined and you have */
! 			/* a bcopy in your library */
  
  #undef	UNSIGNEDCHAR	/* Define if chars are unsigned on your machine */
  
***************
*** 164,169 ****
--- 164,174 ----
  			   psroff(1) -Y options too */
  
  #define	INSPECIAL	/* enables ditroff graphics capability */
+ 
+ #define	NODECMD	"uuname -l" /* command to print on stdout the node name
+ 			   of your machine.  Use hostname on BSD-derived
+ 			   systems that don't have UUCP.  You can always
+ 			   use "echo <nodename>" if necessary */
  
  /*	Edit no more .... */
  
*** /tmp/PATCHold/./dt.c	Wed Oct 24 13:42:58 1990
--- ./dt.c	Wed Oct 24 13:43:02 1990
***************
*** 15,21 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)dt.c: 2.2 Copyright 90/10/12 13:09:25 Chris Lewis";
  #endif
  
  /*	These two tables are always included so that we have the
--- 15,21 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)dt.c: 2.3 Copyright 90/10/22 14:52:55 Chris Lewis";
  #endif
  
  /*	These two tables are always included so that we have the
***************
*** 491,497 ****
  		temp = temp * 10 + (*++s - '0');
  	    }
  	    t2 = temp * dtresolution / TROFFRESOLUTION;
! 	    DBP((D_CAT, "dtDraw (scale): %d -> %d\n", temp, t2)); 
  	    printf("%d", t2);
  	}
      }
--- 491,497 ----
  		temp = temp * 10 + (*++s - '0');
  	    }
  	    t2 = temp * dtresolution / TROFFRESOLUTION;
! 	    DBP((D_CAT, "dtDraw (scale): %d -> %d\n", temp, t2));
  	    printf("%d", t2);
  	}
      }
*** /tmp/PATCHold/./utils.c	Wed Oct 24 13:43:20 1990
--- ./utils.c	Wed Oct 24 13:43:22 1990
***************
*** 15,21 ****
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)utils.c: 2.1 Copyright 90/07/18 16:51:48 Chris Lewis";
  #endif
  
  extern struct cattab tabN[], tabS[];
--- 15,21 ----
  
  #ifndef	lint
  static char SCCSid[] =
!     "@(#)utils.c: 2.3 Copyright 90/10/24 13:37:08 Chris Lewis";
  #endif
  
  extern struct cattab tabN[], tabS[];
***************
*** 86,96 ****
  char nodename[25];
  getnodename() {
      FILE *uuname;
!     if ((uuname = popen("uuname -l", "r")) == NULL)
  	strcpy(nodename, "<noname>");
      else {
  	fscanf(uuname, "%s", nodename);
! 	pclose(uuname);
      }
  }
  
--- 86,97 ----
  char nodename[25];
  getnodename() {
      FILE *uuname;
!     if ((uuname = popen(NODECMD, "r")) == NULL)
  	strcpy(nodename, "<noname>");
      else {
  	fscanf(uuname, "%s", nodename);
! 	if (pclose(uuname))
! 	    strcpy(nodename, "<noname>");
      }
  }
  
-- 
Chris Lewis, Phone: TBA
UUCP: uunet!utai!lsuc!ecicrl!clewis
Moderator of the Ferret Mailing List (ferret-request@eci386)
Psroff mailing list (psroff-request@eci386)