gbranden pushed a commit to branch master
in repository groff.
commit 2426d1b52c883a592fa7589a31c56558dbd3c357
Author: G. Branden Robinson <[email protected]>
AuthorDate: Fri Apr 3 16:44:22 2026 -0500
groff_diff(7): Recast intro to compatibility mode.
Except when retrocomputing with CSRC Unix, the *roff documents one
encounters these days don't generally _require_ compatibility mode to
format intelligibly, though some might render better with it.
This fact isn't just due to the influence of GNU troff, though that may
have helped. Another factor is the Berkeley CSRG's promulgation of
readable troff documents. Observe:
$ grep "^['.]" $(find 4.3BSD-Tahoe/usr/doc -type f \
-and -not -name Makefile) | wc -l
66793
That's ~67,000 *roff control lines in the 4.3BSD-Tahoe (1988)
documentary corpus. (I selected Tahoe because that's the year _before_
James Clark started writing groff.)
Now let's see how many of these lines use old-school "cramming" syntax,
assuming that a two-character request or macro name need not be followed
by a space.
$ grep -E "^['.][[:alnum:]]{3,}" $(find 4.3BSD-Tahoe/usr/doc -type f \
-and -not -name Makefile) | wc -l
134
And if we look more closely...
$ grep -El "^['.][[:alnum:]]{3,}" $(find 4.3BSD-Tahoe/usr/doc -type f \
-and -not -name Makefile) | sort
4.3BSD-Tahoe/usr/doc/ps2/02.summary/vhel3
4.3BSD-Tahoe/usr/doc/ps2/09.lisp/ch16.n
4.3BSD-Tahoe/usr/doc/usd/11.notes/0.long
4.3BSD-Tahoe/usr/doc/usd/11.notes/0.short
4.3BSD-Tahoe/usr/doc/usd/24.troff/add
4.3BSD-Tahoe/usr/doc/usd/24.troff/m.mac
4.3BSD-Tahoe/usr/doc/usd/24.troff/m0
4.3BSD-Tahoe/usr/doc/usd/24.troff/m0a
4.3BSD-Tahoe/usr/doc/usd/24.troff/m1
4.3BSD-Tahoe/usr/doc/usd/24.troff/m2
4.3BSD-Tahoe/usr/doc/usd/24.troff/m3
4.3BSD-Tahoe/usr/doc/usd/24.troff/m4
4.3BSD-Tahoe/usr/doc/usd/24.troff/m5
4.3BSD-Tahoe/usr/doc/usd/24.troff/table1
4.3BSD-Tahoe/usr/doc/usd/24.troff/table2
4.3BSD-Tahoe/usr/doc/usd/25.trofftut/ttcharset
We see that most of the matches are CSRC documents adopted by Berkeley:
USD #24 and #25 are Ossanna's CSTR #54 and Kerighan's troff tutorial,
respectively. Let's count up the stragglers.
$ grep -E "^['.][[:alnum:]]{3,}" \
4.3BSD-Tahoe/usr/doc/ps2/02.summary/vhel3 \
4.3BSD-Tahoe/usr/doc/ps2/09.lisp/ch16.n \
4.3BSD-Tahoe/usr/doc/usd/11.notes/0.long \
4.3BSD-Tahoe/usr/doc/usd/11.notes/0.short
4.3BSD-Tahoe/usr/doc/ps2/02.summary/vhel3:.ne3
4.3BSD-Tahoe/usr/doc/ps2/09.lisp/ch16.n:'argument list' is atomic, the
command takes an indefinite number
4.3BSD-Tahoe/usr/doc/usd/11.notes/0.long:.ce999
4.3BSD-Tahoe/usr/doc/usd/11.notes/0.short:.ce999
That's one false positive--the "09.lisp" document looks clumsily
composed--and three valid ones.
Three out of roughly 67,000.
It looks to me like James Clark shrewdly exploited an opportunity to
cement good document composition practice.
Only at the CSRC could one find such deep hatred for the space bar. :)
Also tighten to avoid stranding a word.
---
man/groff_diff.7.man | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/man/groff_diff.7.man b/man/groff_diff.7.man
index 8f018c76b..e506cf70c 100644
--- a/man/groff_diff.7.man
+++ b/man/groff_diff.7.man
@@ -81,22 +81,24 @@ by the
.I troff \" generic
formatter.
.
-We also note here differences arising from
+We also note differences arising from
.IR groff 's
implementation of AT&T
.I troff \" AT&T
-features.
-.
-The following discussion assumes familiarity with those features;
+features,
+and assume
+familiarity with them;
see
.MR roff @MAN7EXT@
for background.
.
GNU
.I troff \" GNU
-can operate in a manner that increases support
-for documents written for AT&T
-.IR troff ; \" AT&T
+can operate in a manner that better supports
+documents expecting only
+AT&T
+.I troff \" AT&T
+as the formatter;
see section \[lq]Compatibility mode\[rq] below.
.
.
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit