At 2019-07-03T00:46:32+1000, John Gardner wrote:
> > *I was trying to get the 1976 edition of CSTR #54 to typeset the
> > other evening*
> 
> Where did you manage to get hold of that? I was under the impression that
> the source code of CSTR #54 was long lost to the sands of time... :|

https://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/doc/troff

If there's a PostScript or PDF version of the Web, Google doesn't seem
to know about it.

A few lines of hacking get it mostly working, but there are problems
with the page traps when the document goes into two-column mode.

It has its own private implementation of the mm macros and groff gets
pretty unhappy when the trap macros start mutually calling each other.

I'm attaching a diff with my fixup hacks to date.

Regards,
Branden
diff -urN ./troff.STOCK/m1 ./troff/m1
--- ./troff.STOCK/m1	2019-07-03 01:01:51.868534504 +1000
+++ ./troff/m1	2019-07-02 00:03:52.076276650 +1000
@@ -538,7 +538,7 @@
 .tr &.
 .sc
 Interrupted text.
-The copying of a input line in \fInofill\f (non-fill) mode can be \fIinterrupted\fR
+The copying of a input line in \fInofill\fR (non-fill) mode can be \fIinterrupted\fR
 by terminating
 the partial line with a \fB\ec\fR.
 The \fInext\fR encountered input text line will be considered to be a continuation
diff -urN ./troff.STOCK/m2 ./troff/m2
--- ./troff.STOCK/m2	2019-07-03 01:01:51.868534504 +1000
+++ ./troff/m2	2019-07-02 03:19:43.629995741 +1000
@@ -303,10 +303,10 @@
 .TS
 center box;
 c2|c2|c
-c2|c2|c2
-l2|c2|c2
-l2|c2|c2
-l2|l2|c2.
+c2|c2|c
+l2|c2|c
+l2|c2|c
+l2|l2|c.
 	Effect on	Value
 Sequence	Register	Interpolated
 _
diff -urN ./troff.STOCK/m3 ./troff/m3
--- ./troff.STOCK/m3	2019-07-03 01:01:51.868534504 +1000
+++ ./troff/m3	2019-07-02 00:03:27.352135217 +1000
@@ -264,8 +264,8 @@
 .ds X \0\0\0
 .TS
 center box;
-c2|cs2||c2|cs2
-c1|c2c2||c2|c2c2.
+c2|cs2||c2|cs
+c1|c2c2||c2|c2c.
 Vertical	Effect in	Horizontal	Effect in
 Local Motion	\*(TR	\*(NR	Local Motion	\*(TR	\*(NR
 _
diff -urN ./troff.STOCK/m4 ./troff/m4
--- ./troff.STOCK/m4	2019-07-03 01:01:51.868534504 +1000
+++ ./troff/m4	2019-07-02 03:22:04.713239825 +1000
@@ -170,9 +170,9 @@
 The built-in condition names are:
 .TS
 center box;
-c2|c2
-c2|c2
-c2|l2.
+c2|c
+c2|c
+c2|l.
 Condition
 Name	True If
 _
@@ -363,4 +363,3 @@
 and the exceeding of certain internal limits that
 make future output unlikely to be useful.
 .pg
-.bp
diff -urN ./troff.STOCK/table2 ./troff/table2
--- ./troff.STOCK/table2	2019-07-03 01:01:51.868534504 +1000
+++ ./troff/table2	2019-07-02 03:21:00.893355265 +1000
@@ -116,104 +116,112 @@
 	\(eq	\e(eq	math equals
 	\(**	\e(**	math star
 	\(sc	\e(sc	section
-	\(aa	\\(aa	acute accent
-	\(ga	\\(ga	grave accent
-	\(ul	\\(ul	underrule
-	\(sl	\\(sl	slash (matching backslash)
-	\(*a	\\(*a	alpha
-	\(*b	\\(*b	beta
-	\(*g	\\(*g	gamma
-	\(*d	\\(*d	delta
-	\(*e	\\(*e	epsilon
-	\(*z	\\(*z	zeta
-	\(*y	\\(*y	eta
-	\(*h	\\(*h	theta
-	\(*i	\\(*i	iota
-	\(*k	\\(*k	kappa
-	\(*l	\\(*l	lambda
-	\(*m	\\(*m	mu
-	\(*n	\\(*n	nu
-	\(*c	\\(*c	xi
-	\(*o	\\(*o	omicron
-	\(*p	\\(*p	pi
-	\(*r	\\(*r	rho
-	\(*s	\\(*s	sigma
-	\(ts	\\(ts	terminal sigma
-	\(*t	\\(*t	tau
-	\(*u	\\(*u	upsilon
-	\(*f	\\(*f	phi
-	\(*x	\\(*x	chi
-	\(*q	\\(*q	psi
-	\(*w	\\(*w	omega
-	\(*A	\\(*A	Alpha\(dg
-	\(*B	\\(*B	Beta\(dg
-	\(*G	\\(*G	Gamma
-	\(*D	\\(*D	Delta
-	\(*E	\\(*E	Epsilon\(dg
-	\(*Z	\\(*Z	Zeta\(dg
-	\(*Y	\\(*Y	Eta\(dg
-	\(*H	\\(*H	Theta
-	\(*I	\\(*I	Iota\(dg
-	\(*K	\\(*K	Kappa\(dg
-	\(*L	\\(*L	Lambda
-	\(*M	\\(*M	Mu\(dg
-	\(*N	\\(*N	Nu\(dg
-	\(*C	\\(*C	Xi
-	\(*O	\\(*O	Omicron\(dg
-	\(*P	\\(*P	Pi
-	\(*R	\\(*R	Rho\(dg
-	\(*S	\\(*S	Sigma
-	\(*T	\\(*T	Tau\(dg
-	\(*U	\\(*U	Upsilon
-	\(*F	\\(*F	Phi
-	\(*X	\\(*X	Chi\(dg
-	\(*Q	\\(*Q	Psi
-	\(*W	\\(*W	Omega
-	\(sr	\\(sr	square root
-	\(rn	\\(rn	root en extender
-	\(>=	\\(>=	>=
-	\(<=	\\(<=	<=
-	\(==	\\(==	identically equal
-	\(~=	\\(~=	approx =
-	\(ap	\\(ap	approximates
-	\(!=	\\(!=	not equal
-	\(->	\\(\(mi>	right arrow
-	\(<-	\\(<\(mi	left arrow
-	\(ua	\\(ua	up arrow
-	\(da	\\(da	down arrow
-	\(mu	\\(mu	multiply
-	\(di	\\(di	divide
-	\(+-	\\(+\(mi	plus-minus
-	\(cu	\\(cu	cup (union)
-	\(ca	\\(ca	cap (intersection)
-	\(sb	\\(sb	subset of
-	\(sp	\\(sp	superset of
-	\(ib	\\(ib	improper subset
-	\(ip	\\(ip	improper superset
-	\(if	\\(if	infinity
-	\(pd	\\(pd	partial derivative
-	\(gr	\\(gr	gradient
-	\(no	\\(no	not
-	\(is	\\(is	integral sign
-	\(pt	\\(pt	proportional to
-	\(es	\\(es	empty set
-	\(mo	\\(mo	member of
-	\(br	\\(br	box vertical rule
-	\(dd	\\(dd	double dagger
-	\(rh	\\(rh	right hand
-	\(lh	\\(lh	left hand
-	\(bs	\\(bs	Bell System logo
-	\(or	\\(or	or
-	\(ci	\\(ci	circle
-	\(lt	\\(lt	left top of big curly bracket
-	\(lb	\\(lb	left bottom
-	\(rt	\\(rt	right top
-	\(rb	\\(rb	right bot
-	\(lk	\\(lk	left center of big curly bracket
-	\(rk	\\(rk	right center of big curly bracket
-	\(bv	\\(bv	bold vertical
-	\(lf	\\(lf	left floor (left bottom of big
+	\(aa	\e(aa	acute accent
+	\(ga	\e(ga	grave accent
+	\(ul	\e(ul	underrule
+	\(sl	\e(sl	slash (matching backslash)
+	\(*a	\e(*a	alpha
+	\(*b	\e(*b	beta
+	\(*g	\e(*g	gamma
+	\(*d	\e(*d	delta
+	\(*e	\e(*e	epsilon
+	\(*z	\e(*z	zeta
+	\(*y	\e(*y	eta
+	\(*h	\e(*h	theta
+	\(*i	\e(*i	iota
+	\(*k	\e(*k	kappa
+	\(*l	\e(*l	lambda
+	\(*m	\e(*m	mu
+	\(*n	\e(*n	nu
+	\(*c	\e(*c	xi
+	\(*o	\e(*o	omicron
+	\(*p	\e(*p	pi
+	\(*r	\e(*r	rho
+	\(*s	\e(*s	sigma
+	\(ts	\e(ts	terminal sigma
+	\(*t	\e(*t	tau
+	\(*u	\e(*u	upsilon
+	\(*f	\e(*f	phi
+	\(*x	\e(*x	chi
+	\(*q	\e(*q	psi
+	\(*w	\e(*w	omega
+	\(*A	\e(*A	Alpha\(dg
+	\(*B	\e(*B	Beta\(dg
+	\(*G	\e(*G	Gamma
+	\(*D	\e(*D	Delta
+	\(*E	\e(*E	Epsilon\(dg
+	\(*Z	\e(*Z	Zeta\(dg
+	\(*Y	\e(*Y	Eta\(dg
+	\(*H	\e(*H	Theta
+	\(*I	\e(*I	Iota\(dg
+	\(*K	\e(*K	Kappa\(dg
+	\(*L	\e(*L	Lambda
+	\(*M	\e(*M	Mu\(dg
+	\(*N	\e(*N	Nu\(dg
+	\(*C	\e(*C	Xi
+	\(*O	\e(*O	Omicron\(dg
+	\(*P	\e(*P	Pi
+	\(*R	\e(*R	Rho\(dg
+	\(*S	\e(*S	Sigma
+	\(*T	\e(*T	Tau\(dg
+	\(*U	\e(*U	Upsilon
+	\(*F	\e(*F	Phi
+	\(*X	\e(*X	Chi\(dg
+	\(*Q	\e(*Q	Psi
+	\(*W	\e(*W	Omega
+	\(sr	\e(sr	square root
+	\(rn	\e(rn	root en extender
+	\(>=	\e(>=	>=
+'\" .. broken here
+	\(<=	\e(<=	<=
+	\(==	\e(==	identically equal
+'\" .. broken here
+	\(~=	\e(~=	approx =
+	\(ap	\e(ap	approximates
+'\" .. broken here
+	\(!=	\e(!=	not equal
+	\(->	\e(\(mi>	right arrow
+	\(<-	\e(<\(mi	left arrow
+'\" .. broken here
+	\(ua	\e(ua	up arrow
+	\(da	\e(da	down arrow
+'\" .. broken here
+'\"	\(mu	\e(mu	multiply
+'\" .. safe here
+	\(di	\e(di	divide
+'\" .. safe here
+	\(+-	\e(+\(mi	plus-minus
+'\" .. safe here
+	\(cu	\e(cu	cup (union)
+	\(ca	\e(ca	cap (intersection)
+	\(sb	\e(sb	subset of
+	\(sp	\e(sp	superset of
+	\(ib	\e(ib	improper subset
+	\(ip	\e(ip	improper superset
+	\(if	\e(if	infinity
+	\(pd	\e(pd	partial derivative
+	\(gr	\e(gr	gradient
+	\(no	\e(no	not
+	\(is	\e(is	integral sign
+	\(pt	\e(pt	proportional to
+	\(es	\e(es	empty set
+	\(mo	\e(mo	member of
+	\(br	\e(br	box vertical rule
+	\(dd	\e(dd	double dagger
+	\(rh	\e(rh	right hand
+	\(lh	\e(lh	left hand
+	\(bs	\e(bs	Bell System logo
+	\(or	\e(or	or
+	\(ci	\e(ci	circle
+	\(lt	\e(lt	left top of big curly bracket
+	\(lb	\e(lb	left bottom
+	\(rt	\e(rt	right top
+	\(rb	\e(rb	right bot
+	\(lk	\e(lk	left center of big curly bracket
+	\(rk	\e(rk	right center of big curly bracket
+	\(bv	\e(bv	bold vertical
+	\(lf	\e(lf	left floor (left bottom of big
 			square bracket)
-	\(rf	\\(rf	right floor (right bottom)
-	\(lc	\\(lc	left ceiling (left top)
-	\(rc	\\(rc	right ceiling (right top)
+	\(rf	\e(rf	right floor (right bottom)
+	\(lc	\e(lc	left ceiling (left top)
+	\(rc	\e(rc	right ceiling (right top)
diff -urN ./troff.STOCK/tprint ./troff/tprint
--- ./troff.STOCK/tprint	2019-07-03 01:01:51.868534504 +1000
+++ ./troff/tprint	2019-07-02 03:25:26.344879993 +1000
@@ -1,7 +1,10 @@
-troff   $* m.mac m0
-tbl m0a | troff   $* m.mac -
-tbl m[1234] | troff   $* m.mac -
-troff   $* m.mac m5
-troff   $* m.mac table1
-troff   $* m.mac table2
-troff  $* m.mac add
+#!/bin/sh
+set -v
+#groff -C $* m.mac m0 > 1.ps
+#groff -C -t $* m.mac m0a > 2.ps
+#groff -b -t -C $* m.mac m[1234] > 3.ps
+#groff -C $* m.mac m5 > 4.ps
+#groff -C $* m.mac table1 > 5.ps
+#groff -C $* m.mac table2 > 6.ps
+#groff -C $* m.mac add > 7.ps
+groff -b -t -C m.mac m0 m0a m[12345] table[12] add

Attachment: signature.asc
Description: PGP signature

Reply via email to