Article View: comp.lang.postscript
Article #6660Official Patch 5 for Psroff 3.0
From: Chris Lewis
Date: Wed, 13 Nov 1991 06:05
Date: Wed, 13 Nov 1991 06:05
955 lines
31608 bytes
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!clewisShow 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