From: "G. Branden Robinson" <g.branden.robinson@gmail.com>
To: Jaap Akkerhuis <jaapna@xs4all.nl>
Cc: "Jacobson, Doug W [E CPE]" <dougj@iastate.edu>,
"tuhs@tuhs.org" <tuhs@tuhs.org>,
groff@gnu.org
Subject: [TUHS] Re: Old troff files (1988-2007)
Date: Sun, 6 Oct 2024 10:11:33 -0500 [thread overview]
Message-ID: <20241006151133.fbj6pmujpvuuo47d@illithid> (raw)
In-Reply-To: <CFA96AC0-8E84-44A7-AA26-59D694CF90CA@xs4all.nl>
[-- Attachment #1: Type: text/plain, Size: 3640 bytes --]
Hi Jaap,
At 2024-10-06T14:54:59+0200, Jaap Akkerhuis wrote:
> > On 6 Oct 2024, at 00:22, G. Branden Robinson
> > <g.branden.robinson@gmail.com> wrote:
> >
> > Unix nroff got frozen in amber in 1978 with respect to terminal
> > support, and continues to live in a world where the termcap and
> > terminfo libraries were never written.
>
> Nroff did actually read in the output description from, if I remember
> correctly, /usr/lib/termtab/xxx with the argument -Txxx.
Yes. When Kernighan refactored V7 troff/nroff for device-independence,
he implemented a similar scheme for each. While for troff, this
resulted in device and font description files, "DESC" and a motley
variety of capitalized one-or-two letter names for fonts, for nroff they
were termed "driving tables", a terminological choice that concealed how
closely they resembled the troff scheme.
Compare, for example:
https://github.com/n-t-roff/DWB3.3/blob/master/postscript/devopost/DESC
https://github.com/n-t-roff/DWB3.3/blob/master/postscript/devopost/R
with:
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V10/cmd/troff/tab.37
https://minnie.tuhs.org/cgi-bin/utree.pl?file=V10/cmd/troff/tab.450
...and the family resemblance seems clear.
> these where stripped object files.
I have heard tell of a "binary format" for Kernighan troff device and
font descriptions but never encountered it. groff never attempted to
replicate it and I gather that Plan 9 troff also discarded it.
> I have made them for Diable daisy-wheel printers. Some could create
> bold characters by overprinting and we once had one with two print
> heads, the second head had an italics daisy-wheel mounted.
Right. The Diablo features heavily in early '80s Unix documentation.
However none of this has much to do, in my opinion, with the _terminal
capability databases_ offered by termcap and (later) terminfo. The
whole point of these is to _query_ the user's terminal type, not have to
be told it with some `-T` option.
To my knowledge, no nroff has ever simply looked at "$TERM" and then
decided how to format output. Approximately all other Unix software
that writes to a terminal behaves that way. nroff didn't, and by God
some Unix grognards would have it stay that way.[1][2] Mark Nudelman's
less(1) is probably the foremost contributor of inertia here, since
man(1) is far and away the leading application of nroff(1), and less(1)
the victorious pager program after a long and bloody campaign of
attrition. (This isn't a complaint; we could have done worse. most(1)
could have won instead.[3])
Lennart Jablonka has contributed a patch to groff to resolve this
longevous discrepancy. (It ended up on my slow path for integration
because I decided I needed to understand terminfo much better, and that
in turn led me to contribute a large volume of man page revisions to
ncurses, many of which can be enjoyed(?) in its 6.5 release.[4])
https://savannah.gnu.org/bugs/?63583
Regards,
Branden
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=312935
[2] https://unix.stackexchange.com/questions/729124/linux-9-commands-send-ansi-color-sequences-to-monochrome-terminal
[3] https://invisible-island.net/ncurses/ncurses-slang.html
[4] https://invisible-island.net/ncurses/announce.html
https://invisible-island.net/ncurses/man/
Despite his grognard standpoint with respect to grotty(1)'s default
use of SGR escape sequences in output, I would emphasize that Thomas
Dickey has been a pleasure to work with. It's difficult to imagine
the same being true of Alan Curry.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-10-06 15:11 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 21:42 [TUHS] " Jacobson, Doug W [E CPE] via TUHS
2024-10-04 21:50 ` [TUHS] " Lyndon Nerenberg (VE7TFX/VE6BBM)
2024-10-04 21:52 ` Jacobson, Doug W [E CPE] via TUHS
2024-10-04 22:10 ` Bakul Shah via TUHS
2024-10-04 23:01 ` Clem Cole
2024-10-04 23:16 ` Clem Cole
2024-10-05 0:14 ` G. Branden Robinson
2024-10-05 4:09 ` Peter Yardley
2024-10-05 13:14 ` Clem Cole
2024-10-05 22:22 ` G. Branden Robinson
[not found] ` <CAC20D2NgmzDxhQu5P5hjrZ3ciSv=KayiUg8GwsFRpu0wPasprw@mail.gmail.com>
2024-10-06 5:53 ` [TUHS] Why groff ms doesn't completely support historical documents G. Branden Robinson
2024-10-06 12:54 ` [TUHS] Re: Old troff files (1988-2007) Jaap Akkerhuis
2024-10-06 15:11 ` G. Branden Robinson [this message]
2024-10-06 16:21 ` Ron Natalie
2024-10-09 21:02 ` Ron Natalie
2024-10-07 14:50 ` Leah Neukirchen
2024-10-08 6:45 ` G. Branden Robinson
2024-10-08 10:33 ` Jacobson, Doug W [E CPE] via TUHS
2024-10-08 10:49 ` G. Branden Robinson
2024-10-08 11:24 ` Jacobson, Doug W [E CPE] via TUHS
2024-10-16 21:40 ` Anton Shepelev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241006151133.fbj6pmujpvuuo47d@illithid \
--to=g.branden.robinson@gmail.com \
--cc=dougj@iastate.edu \
--cc=groff@gnu.org \
--cc=jaapna@xs4all.nl \
--cc=tuhs@tuhs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).