home *** CD-ROM | disk | FTP | other *** search
- Subject: v24i115: psroff, troff to PostScript filter, Patch1
- Newsgroups: comp.sources.unix
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Chris Lewis <clewis@ferret.ocunix.on.ca>
- Posting-number: Volume 24, Issue 115
- Archive-name: psroff3.0/patch1
-
- This is official patch 01 for Psroff 3.0.
- Please apply it by:
- cd <psroff source directory>
- patch -N -p < <this file>
-
- Fixes:
- - My Post Office decided to go commercial only, so I had to
- change my address to the new one. Grrrrr. Second change
- in 6 months.
- - Implemented -Gs (troff2ps.1.S, troff2.c, dit.c, DITROFF,
- psrofflib.S) to handle groff sizescale stuff.
- - Dumb mistake in declarations in psxlate.c (why didn't AIX 3.1
- catch it?)
- - Omitted array subscript in asc2ps.c
- - Remark about eqn/"|" botch in TROUBLE and MISC.
-
- Index: ./man/troff2ps.1.S
- *** /tmp/PATCHold/./man/troff2ps.1.S Fri May 10 03:13:20 1991
- --- ./man/troff2ps.1.S Fri May 10 03:13:23 1991
- ***************
- *** 1,4 ****
- ! .\"Copyright 1988 by Chris Lewis 2.11 91/03/26
- .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.12 91/04/26
- .TH TROFF2PS %%MANEXT%% "Psroff %%T2VERSION%%"
- .SH NAME
- troff2ps, troff2lj, troff2xx \- convert troff output to Postscript, HP etc.
- ***************
- *** 18,23 ****
- --- 18,24 ----
- .B "[\-V]"
- .B "[\-M]"
- .B "[\-S]"
- + .BI "[\-G" ss "]"
- .SH DESCRIPTION
- .I Troff2ps
- takes
- ***************
- *** 172,184 ****
- .B \-Z
- is specified.
- .PP
- ! 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.
- .PP
- The \-S option indicates that Postscript jobs should be terminated
- with the directive "stop" instead of a control-D.
- .SH "SPECIAL REQUESTS"
- .BI troff2 xx
- supports a number of additional features over and above bare
- --- 173,186 ----
- .B \-Z
- is specified.
- .PP
- ! The optimizer is quite good provided that the fonts scale uniformly.
- .PP
- The \-S option indicates that Postscript jobs should be terminated
- with the directive "stop" instead of a control-D.
- + .PP
- + If you are using \f3groff\fP to drive troff2ps
- + use the \-Gss option to specify the sizescale value from the groff
- + DESC files.
- .SH "SPECIAL REQUESTS"
- .BI troff2 xx
- supports a number of additional features over and above bare
- Index: ./lib/psrofflib.S
- *** /tmp/PATCHold/./lib/psrofflib.S Fri May 10 03:13:37 1991
- --- ./lib/psrofflib.S Fri May 10 03:13:39 1991
- ***************
- *** 1,4 ****
- ! # 2.17 91/04/05
- # This file controls psroff, you can insert additional printer
- # types here. These are eval'd *late* in processing, so that
- # you can insert $copies etc.
- --- 1,4 ----
- ! # 2.18 91/04/25
- # This file controls psroff, you can insert additional printer
- # types here. These are eval'd *late* in processing, so that
- # you can insert $copies etc.
- ***************
- *** 44,49 ****
- --- 44,52 ----
- # Some postscript printers differ in location.
- # -N The troff is actually ditroff. (You have to
- # have ditroff widths installed for this!)
- + # -G<sizescale> If you're driving with groff, and the sizescale
- + # parameter is specified in the DESC file, you
- + # have to supply the sizescale parameter here.
- # -Z optimizer
- # -S Use "stop" to terminate Postscript instead
- # of control-D
- Index: ./widths/dit2catwid.c
- *** /tmp/PATCHold/./widths/dit2catwid.c Fri May 10 03:13:50 1991
- --- ./widths/dit2catwid.c Fri May 10 03:13:51 1991
- ***************
- *** 10,16 ****
-
- #ifndef lint
- static char SCCSID[] =
- ! "@(#)dit2catwid.c 2.7 Copyright 91/02/20 09:33:05 Chris Lewis";
- #endif
-
- #include <stdio.h>
- --- 10,16 ----
-
- #ifndef lint
- static char SCCSID[] =
- ! "@(#)dit2catwid.c 2.8 Copyright 91/04/25 17:29:41 Chris Lewis";
- #endif
-
- #include <stdio.h>
- ***************
- *** 73,79 ****
- FILE *in1, *in2, *out;
- char *fin1, *fin2, *fout;
-
- ! progname = argv[0];
-
- while ((c = getopt(argc, argv, "evsr:u:chH:")) != EOF)
- switch(c) {
- --- 73,83 ----
- FILE *in1, *in2, *out;
- char *fin1, *fin2, *fout;
-
- ! progname = strrchr(argv[0], '/');
- ! if (progname)
- ! progname++;
- ! else
- ! progname = argv[0];
-
- while ((c = getopt(argc, argv, "evsr:u:chH:")) != EOF)
- switch(c) {
- ***************
- *** 393,403 ****
- exit(1);
- }
- while(fgets(buffer, sizeof(buffer), f)) {
- ! char str[3];
- if (commentsok && buffer[0] == '#')
- continue;
- if (strlen(buffer) > 1 && buffer[0] == '#' && !isspace(buffer[1]))
- continue;
- commentsok = 0;
- #ifdef DEBUG
- printf("buffer: %s\n", buffer);
- --- 397,411 ----
- exit(1);
- }
- while(fgets(buffer, sizeof(buffer), f)) {
- ! char str[31];
- if (commentsok && buffer[0] == '#')
- continue;
- if (strlen(buffer) > 1 && buffer[0] == '#' && !isspace(buffer[1]))
- continue;
- +
- + sv = strchr(buffer, '\n');
- + if (sv) *sv = '\0';
- +
- commentsok = 0;
- #ifdef DEBUG
- printf("buffer: %s\n", buffer);
- ***************
- *** 405,414 ****
- tok = gettoken(buffer, NULL);
- if (!tok)
- continue;
- ! if (strlen(tok) > 2) {
- ! fprintf(stderr, "%s: %s bad format on line %s\n",
- ! progname, filename, buffer);
- ! exit(1);
- }
- strcpy(str, tok);
- tok = gettoken(buffer, 1);
- --- 413,422 ----
- tok = gettoken(buffer, NULL);
- if (!tok)
- continue;
- ! if (strlen(tok) > 30) {
- ! if (verbose)
- ! printf("%s: %s skipping entry %s\n",
- ! progname, filename, buffer);
- }
- strcpy(str, tok);
- tok = gettoken(buffer, 1);
- ***************
- *** 426,434 ****
- --- 434,447 ----
- widval = oldwidval;
- eval = oldeval;
- } else {
- + /* atoi will truncate tok if it contains non-numeric characters.
- + Which is just fine for groff's wid,a,b,c,... format */
- widval = ((double) TROFFUWID * TROFFRESOLUTION * atoi(tok) /
- (unitwid * res)) + .5;
- widval = max(widval, 1);
- + if (widval > 63)
- + printf("%s: width value too big for %s (%d)\n",
- + progname, str, widval);
- tok = gettoken(buffer, 1);
- if (!tok) {
- fprintf(stderr, "%s: %s bad format on line %s\n",
- Index: ./widths/genext.S
- *** /tmp/PATCHold/./widths/genext.S Fri May 10 03:14:04 1991
- --- ./widths/genext.S Fri May 10 03:14:05 1991
- ***************
- *** 5,11 ****
- # See the LICENSE file for a full description of the restrictions
- # under which this software is provided.
- #
- ! # 2.6 91/03/10 Generate extension list of characters for troff2ps.
- if [ $# != 1 ]
- then
- echo "usage: genext <ditroff font width directory>" >&2
- --- 5,11 ----
- # See the LICENSE file for a full description of the restrictions
- # under which this software is provided.
- #
- ! # 2.7 91/04/25 Generate extension list of characters for troff2ps.
- if [ $# != 1 ]
- then
- echo "usage: genext <ditroff font width directory>" >&2
- ***************
- *** 47,80 ****
- catcodes[ch] = 1
- next
- }
- $1 ~ /^name/ {
- curfont = $2
- next
- }
- ! /faked/ { next }
- ! NF >= 4 && $2 ~ /^[0-9]*$/ && $3 ~ /^[0-9]*$/ {
- ! if (catcodes[$1] || $1 == "\\|" || $1 == "\\^")
- next
- if (seen[$1]) {
- ! if (seen[$1] != $4)
- printf "Duplicate %s, but different codes! (%s/%s)\n", \
- ! $1, seen[$1], $4 > "/tmp/errors"
- next
- }
- ! seen[$1] = $4
- if (curfont == "S")
- flag = "S"
- ! else if (curfont == "S2")
- flag = 4
- else
- flag = "N"
- code = $4
- if (length(code) > 3)
- code = substr(code, length(code) - 2, 3)
- while(length(code) < 3) {
- code = "0" code
- }
- ! printf("%s %s \\%s\n", $1, flag, code)
- }
-
- ' ../utils/ljtab.c $files
- --- 47,115 ----
- catcodes[ch] = 1
- next
- }
- +
- $1 ~ /^name/ {
- curfont = $2
- next
- }
- !
- ! /charset/ {
- ! incharset = 1
- ! }
- !
- ! NF == 2 && $2 == "\"" {
- ! if (catcodes[$1] || $1 == "\\|" || $1 == "\\^" || $1 == "---")
- next
- if (seen[$1]) {
- ! if (seen[$1] != code)
- printf "Duplicate %s, but different codes! (%s/%s)\n", \
- ! $1, seen[$1], code > "/tmp/errors"
- next
- }
- !
- ! seen[$1] = code
- if (curfont == "S")
- flag = "S"
- ! else if (curfont ~ /S[0-9]/)
- flag = 4
- else
- flag = "N"
- +
- + printf("%s %s %s\n", $1, flag, code);
- + }
- +
- + /faked/ { next }
- + NF >= 4 && $2 ~ /^[0-9,]*$/ && $3 ~ /^[0-9]*$/ {
- + if (!incharset)
- + next
- + if (catcodes[$1] || $1 == "\\|" || $1 == "\\^" || $1 == "---")
- + next
- +
- code = $4
- if (length(code) > 3)
- code = substr(code, length(code) - 2, 3)
- +
- while(length(code) < 3) {
- code = "0" code
- }
- !
- ! code = "\\" code
- ! if (seen[$1]) {
- ! if (seen[$1] != code)
- ! printf "Duplicate %s, but different codes! (%s/%s)\n", \
- ! $1, seen[$1], code > "/tmp/errors"
- ! next
- ! }
- !
- ! seen[$1] = code
- !
- ! if (curfont == "S")
- ! flag = "S"
- ! else if (curfont ~ /S[0-9]/)
- ! flag = 4
- ! else
- ! flag = "N"
- ! printf("%s %s %s\n", $1, flag, code)
- }
-
- ' ../utils/ljtab.c $files
- Index: ./widths/gfnttab.S
- *** /tmp/PATCHold/./widths/gfnttab.S Fri May 10 03:14:14 1991
- --- ./widths/gfnttab.S Fri May 10 03:14:16 1991
- ***************
- *** 5,11 ****
- # See the LICENSE file for a full description of the restrictions
- # under which this software is provided.
- #
- ! #@(#)gfnttab.sh 2.7 91/04/02
- # Set this to something non-null in the Makefile if you need
- # a.out.h/COFF headers on your width files, and the COFF/HEADERSIZE
- # defines cause dit2catwid to generate width tables that
- --- 5,11 ----
- # See the LICENSE file for a full description of the restrictions
- # under which this software is provided.
- #
- ! #@(#)gfnttab.sh 2.8 91/04/25
- # Set this to something non-null in the Makefile if you need
- # a.out.h/COFF headers on your width files, and the COFF/HEADERSIZE
- # defines cause dit2catwid to generate width tables that
- ***************
- *** 45,52 ****
- rm -f /tmp/S
- if [ ! -r R ]
- then
- ! echo "Creating Dummy R font width table"
- ! touch R
- fi
- if [ -r S ]
- then
- --- 45,59 ----
- rm -f /tmp/S
- if [ ! -r R ]
- then
- ! if [ -r TR ]
- ! then
- ! R=TR
- ! else
- ! echo "Creating Dummy R font width table"
- ! touch R
- ! fi
- ! else
- ! R=R
- fi
- if [ -r S ]
- then
- ***************
- *** 72,77 ****
- --- 79,91 ----
- echo "WARNING: no 'res' command in DESC - assuming 300"
- res="-r 300"
- else
- + ss=`sed -n \
- + -e 's/^[ ]*sizescale[ ][ ]*\([0-9][0-9]*\).*/\1/p' $DESC`
- + if [ -n "$ss" ]
- + then
- + echo "INFO: Found sizescale of $ss (probably groff)"
- + res=`expr $res / $ss`
- + fi
- res="-r $res"
- fi
- unit=`sed -n -e 's/^[ ]*unitwidth[ ][ ]*\([0-9][0-9]*\).*/\1/p' $DESC`
- ***************
- *** 105,114 ****
- esac
- case $i in
- S)
- ! args="-s R /tmp/S"
- ;;
- SU)
- ! args="-s R $i"
- ;;
- S[0-9] | SI | ST )
- continue
- --- 119,128 ----
- esac
- case $i in
- S)
- ! args="-s $R /tmp/S"
- ;;
- SU)
- ! args="-s $R $i"
- ;;
- S[0-9] | SI | ST )
- continue
- Index: ./utils/psxlate.c
- *** /tmp/PATCHold/./utils/psxlate.c Fri May 10 03:14:27 1991
- --- ./utils/psxlate.c Fri May 10 03:14:30 1991
- ***************
- *** 23,29 ****
- */
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)psxlate.c: 2.11 Copyright 91/03/26 00:13:16 Chris Lewis";
- #endif
-
- #ifdef ALONE
- --- 23,29 ----
- */
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)psxlate.c: 2.13 Copyright 91/04/24 22:07:02 Chris Lewis";
- #endif
-
- #ifdef ALONE
- ***************
- *** 33,41 ****
- #include "defs.h"
- #endif
-
- ! int xlate = 0;
- ! extern int italic = 0;
- ! int needd = 0;
- #define BUFFERSIZE 512
-
- int half = 0; /* Controls emitter, 0: whole file, 1: first half,
- --- 33,41 ----
- #include "defs.h"
- #endif
-
- ! int xlate;
- ! int italic;
- ! int needd;
- #define BUFFERSIZE 512
-
- int half = 0; /* Controls emitter, 0: whole file, 1: first half,
- ***************
- *** 220,225 ****
- --- 220,226 ----
- long offset;
- int state = PROLOG;
- int seen;
- + int nest = 0;
-
- magicstr = malloc(strlen(buffer) + 1);
- strcpy(magicstr, buffer);
- ***************
- *** 232,244 ****
-
- if (!buffer)
- seen = S_EOF;
- ! else if (buffer[0] == '%') {
- ! if (strncmp(buffer, "%%Page:", 7) == 0)
- seen = S_PAGE;
- ! else if (strncmp(buffer, "%%Trailer", 9) == 0)
- seen = S_EPI;
- ! else
- seen = S_NONE;
- } else
- seen = S_NONE;
- switch(seen) {
- --- 233,254 ----
-
- if (!buffer)
- seen = S_EOF;
- ! else if (buffer[0] == '%' && buffer[1] == '%') {
- ! if (!nest && strncmp(buffer, "%%Page:", 7) == 0)
- seen = S_PAGE;
- ! else if (!nest && isspace(buffer[9]) &&
- ! strncmp(buffer, "%%Trailer", 9) == 0)
- seen = S_EPI;
- ! else {
- !
- ! if (strncmp(buffer, "%%BeginDocument:", 16) == 0)
- ! nest++;
- ! else if (isspace(buffer[13]) &&
- ! strncmp(buffer, "%%EndDocument", 13) == 0)
- ! nest--;
- !
- seen = S_NONE;
- + }
- } else
- seen = S_NONE;
- switch(seen) {
- ***************
- *** 295,300 ****
- --- 305,314 ----
- break;
- }
- }
- + if (nest) {
- + fprintf(stderr, "%s: misnested BeginDocument/EndDocument\n",
- + progname);
- + }
- }
-
- cleanup() {
- ***************
- *** 501,507 ****
- thru *count;
- */
- #define CHUNK 512
- ! char *mygets(in, out, count)
- FILE *in, *out; long *count; {
- static char *buffer = NULL;
- static long buflimit;
- --- 515,522 ----
- thru *count;
- */
- #define CHUNK 512
- ! char *
- ! mygets(in, out, count)
- FILE *in, *out; long *count; {
- static char *buffer = NULL;
- static long buflimit;
- Index: ./utils/asc2ps.c
- *** /tmp/PATCHold/./utils/asc2ps.c Fri May 10 03:14:43 1991
- --- ./utils/asc2ps.c Fri May 10 03:14:45 1991
- ***************
- *** 14,20 ****
-
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)asc2ps.c: 2.3 Copyright 91/03/26 20:46:04 Chris Lewis";
- #endif
-
- #include "defs.h"
- --- 14,20 ----
-
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)asc2ps.c: 2.4 Copyright 91/04/10 19:48:00 Chris Lewis";
- #endif
-
- #include "defs.h"
- ***************
- *** 369,375 ****
- if (outbufs[NORMAL][linepos] == *buffer) {
- outbufs[BOLD][linepos] = *buffer;
- maxpos[BOLD] = max(maxpos[BOLD], linepos+1);
- ! } else if (*buffer == '_' && outbufs[NORMAL] != ' ' ||
- outbufs[NORMAL][linepos] == '_') {
-
- if (*buffer != '_')
- --- 369,376 ----
- if (outbufs[NORMAL][linepos] == *buffer) {
- outbufs[BOLD][linepos] = *buffer;
- maxpos[BOLD] = max(maxpos[BOLD], linepos+1);
- ! } else if (*buffer == '_' &&
- ! outbufs[NORMAL][linepos] != ' ' ||
- outbufs[NORMAL][linepos] == '_') {
-
- if (*buffer != '_')
- Index: ./tests/testtab.m
- *** /tmp/PATCHold/./tests/testtab.m Fri May 10 03:14:56 1991
- --- ./tests/testtab.m Fri May 10 03:14:57 1991
- ***************
- *** 1,4 ****
- ! .\" 2.3 91/03/25
- .po .25i
- .in 0
- .fp 1 R
- --- 1,4 ----
- ! .\" 2.5 91/05/03
- .po .25i
- .in 0
- .fp 1 R
- ***************
- *** 9,19 ****
- .vs 14
- .sp |.3i
- .ce 4
- ! PSROFF TEST SHEET (2.3)
- .br
- ! Please fill out and mail to: BOX 13215
- .br
- ! Kanata PO, Kanata, Ontario, Canada K2K 1X4
- .br
- \*(2d \*(2v \*(pt
- .ps 10
- --- 9,19 ----
- .vs 14
- .sp |.3i
- .ce 4
- ! PSROFF TEST SHEET (2.5)
- .br
- ! Please fill out and mail to: Chris Lewis
- .br
- ! P.O. Box 124, Dunrobin, Ontario, Canada K0A 1T0
- .br
- \*(2d \*(2v \*(pt
- .ps 10
- Index: ./dit.c
- *** /tmp/PATCHold/./dit.c Fri May 10 03:15:11 1991
- --- ./dit.c Fri May 10 03:15:13 1991
- ***************
- *** 12,18 ****
-
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)dit.c: 91/03/26 Copyright 91/03/26 00:13:12 Chris Lewis";
- #endif
-
- extern struct cattab tabN[], tabS[], *extidx;
- --- 12,18 ----
-
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)dit.c: 91/04/24 Copyright 91/04/24 21:48:46 Chris Lewis";
- #endif
-
- extern struct cattab tabN[], tabS[], *extidx;
- ***************
- *** 132,137 ****
- --- 132,139 ----
- }
-
- #ifdef DIT
- +
- + int sizescale = 1;
- int indtres;
-
- int points, font, ch, i;
- ***************
- *** 150,155 ****
- --- 152,158 ----
- goto finish;
- case 's':
- points = getnum();
- + points /= sizescale;
- DBP((D_CAT, "Pointsize %d\n", points));
- break;
- case 'f':
- Index: ./README
- *** /tmp/PATCHold/./README Fri May 10 03:15:27 1991
- --- ./README Fri May 10 03:15:32 1991
- ***************
- *** 1,4 ****
- ! PSROFF RELEASE 3.0 README 2.17 91/04/02
-
- Feb 19, 1991
- Chris Lewis
- --- 1,4 ----
- ! PSROFF RELEASE 3.0 README 2.19 91/04/24
-
- Feb 19, 1991
- Chris Lewis
- ***************
- *** 149,159 ****
- gfnttab (discussed later).
-
- - The ditroff *input* handler is quite new, and hasn't been
- ! tested all that extensively. Preliminary results seem to
- ! suggest that it does work, but documentation is scanty,
- ! and there's not much in the way of automated install or
- ! configuration checking for real ditroff. See the DITROFF
- ! file for additional information.
-
- - Fonts:
- - postscript driving - psroff uses what's on the printer - the
- --- 149,159 ----
- gfnttab (discussed later).
-
- - The ditroff *input* handler is quite new, and hasn't been
- ! tested all that extensively. See the DITROFF file for
- ! additional information.
- !
- ! - This software should work with groff, see the DITROFF file for
- ! further details.
-
- - Fonts:
- - postscript driving - psroff uses what's on the printer - the
- ***************
- *** 432,443 ****
-
- 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
- Alternate: <user>@eci386.uucp
- --- 432,444 ----
-
- Chris Lewis
- Elegant Communications Inc.
- ! P.O. Box 124
- ! Dunrobin, Ontario,
- ! Canada K0A 1T0
- Voice Phone: Canada (613) 832-0541
- Userid's for e-mail contact:
- Psroff enquiries/help: psroff-request
- Non-psroff mail only: clewis
- ! Address: <userid>@ferret.ocunix.on.ca
- ! Alternate UUCP routing: uunet!mnetor!lsuc!eci386!ecicrl!<userid>
- Alternate: <user>@eci386.uucp
- Index: ./troff2.c
- *** /tmp/PATCHold/./troff2.c Fri May 10 03:15:49 1991
- --- ./troff2.c Fri May 10 03:15:51 1991
- ***************
- *** 12,18 ****
-
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)troff2.c: 2.15 Copyright 91/03/25 23:20:47 Chris Lewis";
- #endif
-
- #define ESC 0x80
- --- 12,18 ----
-
- #ifndef lint
- static char SCCSid[] =
- ! "@(#)troff2.c: 2.17 Copyright 91/05/03 10:41:03 Chris Lewis";
- #endif
-
- #define ESC 0x80
- ***************
- *** 86,94 ****
- int optimize = 0;
- #endif
-
- extern char *realloc();
-
- ! #define OPTLIST "d:O:Y:T:VD:l:MR:P::zp:W:ZNS"
-
- /* On 386/ix 1.0.6 profiling has a bug in it that leaves
- two extra longs on the stack between the stack frame and
- --- 86,98 ----
- int optimize = 0;
- #endif
-
- + #ifdef DIT
- + int sizescale;
- + #endif
- +
- extern char *realloc();
-
- ! #define OPTLIST "d:O:Y:T:VD:l:MR:P::zp:W:ZNSG:"
-
- /* On 386/ix 1.0.6 profiling has a bug in it that leaves
- two extra longs on the stack between the stack frame and
- ***************
- *** 214,220 ****
- --- 218,228 ----
- #ifdef DIT
- ditroff = 1;
- break;
- + case 'G':
- + sizescale = atoi(optarg);
- + break;
- #else
- + case 'S':
- fprintf(stderr, "%s: ditroff frontend not configured\n");
- exit(1);
- #endif
- Index: ./MISC
- *** /tmp/PATCHold/./MISC Fri May 10 03:16:04 1991
- --- ./MISC Fri May 10 03:16:06 1991
- ***************
- *** 1,6 ****
- Miscellaneous Tuning/Customization
- ! 2.9 91/03/26
-
- - Postscript spooling: Theoretically speaking, it is better
- to have psxlate in your Postscript printer spooler interface
- than as a pipeline in psroff. For System V, you might want
- --- 1,26 ----
- Miscellaneous Tuning/Customization
- ! 2.10 91/05/10
-
- + - Vertical bars in eqn may not be vertical. This is a botch
- + in some versions of eqn - namely, eqn is asking for "|"
- + in italic. You see this by:
- +
- + .EQ
- + left nothing {d f(x)} over {d x} right |
- + .EN
- +
- + Which may (depending on your eqn) look like:
- + df(x) /
- + ----- /
- + dx /
- +
- + Fix by appending:
- + normal
- + | 0
- +
- + to the appropriate *.lib file. Then all "|" will be
- + from the Times-Roman font. Ugly, but the only way to
- + fix eqn vertical bars.
- - Postscript spooling: Theoretically speaking, it is better
- to have psxlate in your Postscript printer spooler interface
- than as a pipeline in psroff. For System V, you might want
- Index: ./defs.h
- *** /tmp/PATCHold/./defs.h Fri May 10 03:16:18 1991
- --- ./defs.h Fri May 10 03:16:22 1991
- ***************
- *** 9,15 ****
- */
-
- /* Official Release and Patch level: */
- ! #define T2VERSION "@(#)PSROFF Copyright 91/03/25 Chris Lewis - R3 PL0"
-
- /* Configuration parameters:
- */
- --- 9,15 ----
- */
-
- /* Official Release and Patch level: */
- ! #define T2VERSION "@(#)PSROFF Copyright 91/04/26 Chris Lewis - R3 PL1"
-
- /* Configuration parameters:
- */
- Index: ./TROUBLE
- *** /tmp/PATCHold/./TROUBLE Fri May 10 03:16:34 1991
- --- ./TROUBLE Fri May 10 03:16:36 1991
- ***************
- *** 1,4 ****
- ! Psroff 3.0 Trouble Shooting.... 2.11 91/04/02
-
- (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.13 91/05/10
-
- (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)
- ***************
- *** 22,28 ****
- you run "make check" first and correct any "ERROR"'s it reports
- that apply to the configuration (driver/printer) you wish to use.
- If you encounter problems you cannot solve and wish to ask me for
- ! help, I will want you to send me a copy of "make check"'s output....
-
- Definitions:
- - LIBDIR - default /usr/lib/troff2 (config option in Makefile)
- --- 22,29 ----
- you run "make check" first and correct any "ERROR"'s it reports
- that apply to the configuration (driver/printer) you wish to use.
- If you encounter problems you cannot solve and wish to ask me for
- ! help, I will want you to send me a copy of "make check"'s output.
- ! But don't send it to me unless I ask for it.
-
- Definitions:
- - LIBDIR - default /usr/lib/troff2 (config option in Makefile)
- ***************
- *** 228,233 ****
- --- 229,238 ----
- Run psroff debug. Check for and correct troff error messages (eg:
- line too long) in your document. This could even be troff not being
- able to find a file you specified to psroff.
- +
- + Vertical lines in EQN are made up of slashes rather than a vertical line.
- +
- + See MISC file for details.
-
- Character widths wildly and inconsistently off:
-
- Index: ./DITROFF
- *** /tmp/PATCHold/./DITROFF Fri May 10 03:16:54 1991
- --- ./DITROFF Fri May 10 03:16:56 1991
- ***************
- *** 1,8 ****
- ! Ditroff input configuration notes
- ! 2.3 91/02/20
-
- This document attempts to describe some of the issues of using
- ! psroff with ditroff instead of CAT troff.
-
- The heart of the whole issue is the use of the -N option
- to troff2ps (see lib/psrofflib.S). Which permits the translation
- --- 1,10 ----
- ! 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
- ! general issues about ditroff apply to groff as well. There is,
- ! however, a groff specific section at the end of this file.
-
- The heart of the whole issue is the use of the -N option
- to troff2ps (see lib/psrofflib.S). Which permits the translation
- ***************
- *** 31,36 ****
- --- 33,40 ----
- 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,
- ***************
- *** 61,67 ****
- Macro Adapters & Page offsets:
- -----------------------------
-
- ! When you specify "-mm", tsroff 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
- --- 65,71 ----
- 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
- ***************
- *** 85,87 ****
- --- 89,135 ----
- 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
- + -----
- +
- + Groff is a complete implementation of ditroff, plus several different
- + output drivers (Postscript, tty, DVI). Generally speaking, you
- + won't need psroff if you have groff, but there are a few places
- + where groff and psroff can be used together to advantage.
- +
- + First of all, groff doesn't support HP Laserjet or LJIII output.
- + In this case, you can drive troff2ps -N with gtroff output. For
- + width tables, you would copy the psroff's
- + widthps/width[lj,lj3,lj3u]*/[A-Z]* files to the appropriate
- + places in /usr/lib/font/dev<type> and modify the groff shell
- + 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.
- +
- + Secondly, if you want to drive DVI interfaces from CAT troff, you
- + can use the ditroff-2-dvi converter with psroff's ditroff output
- + option (-Tdt). I'm not entirely sure why you'd want to do this
- + if you have all of groff loaded - but it might be useful.
- +
- + The fundamental differences between ditroff and groff (as far as
- + *we* are concerned) is the differing width table format. First,
- + groff does not need to compile the width table format into
- + a binary format - the ASCII versions are used in the
- + /usr/lib/font/dev<type> directory directly. Psroff doesn't
- + copy these files (eg: R, I, B, S etc.) into this directory,
- + so you'll have to do it yourself, tho, groff installation
- + probably has already done that. Secondly, there is the
- + "sizescale" DESC parameter, which prescales the unitwidth
- + and character widths values, as well as the point size selection
- + in the gtroff output. At present, troff2ps does not support
- + a sizescale other than 1 (psroff will try to emit glyphs
- + sizescale times larger than actually desired).
- +
- + The width tables that come with psroff should work with groff.
- + The groff width tables can also be used with psroff, but this
- + should not be necessary - unless you're trying to use groff's
- + tty or dvi output filters.
- Index: ./LICENSE
- *** /tmp/PATCHold/./LICENSE Fri May 10 03:17:08 1991
- --- ./LICENSE Fri May 10 03:17:09 1991
- ***************
- *** 1,5 ****
- ! Psroff 3.0 Licensing Information
- ! 2.2 91/02/20
-
- 1) All code, except where noted, is:
- Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991 Chris Lewis,
- --- 1,5 ----
- ! Psroff 3.0 Licensing Information
- ! 2.3 91/04/24
-
- 1) All code, except where noted, is:
- Copyright 1985, 1986, 1987, 1988, 1989, 1990, 1991 Chris Lewis,
- ***************
- *** 12,19 ****
- a non-source package in their software releases should contact me:
-
- Chris Lewis
- ! Box 13215, Kanata PO
- ! Kanata, Ontario, K2K 1X4
- Voice Phone: Canada (613) 832-0541
-
- 2) psdtwid and some of the character drawing and spacing
- --- 12,20 ----
- a non-source package in their software releases should contact me:
-
- Chris Lewis
- ! P.O. Box 124
- ! Dunrobin, Ontario,
- ! Canada K0A 1T0
- Voice Phone: Canada (613) 832-0541
-
- 2) psdtwid and some of the character drawing and spacing
-
- --
- Chris Lewis, Phone: (613) 832-0541, Domain: clewis@ferret.ocunix.on.ca
- UUCP: ...!cunews!latour!ecicrl!clewis; Ferret Mailing List:
- ferret-request@eci386; Psroff (not Adobe Transcript) enquiries:
- psroff-request@eci386 or Canada 416-832-0541. Psroff 3.0 in c.s.u soon!
-
-
- exit 0 # Just in case...
-