groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [groff] 04/04: groff_mdoc(7): Update "Predefined strings".


From: Ingo Schwarze
Subject: Re: [groff] 04/04: groff_mdoc(7): Update "Predefined strings".
Date: Sat, 31 Oct 2020 14:37:26 +0100
User-agent: Mutt/1.12.2 (2019-09-21)

G. Branden Robinson wrote on Sat, Oct 31, 2020 at 11:52:33PM +1100:
> At 2020-10-31T13:00:38+0100, Ingo Schwarze wrote:

>> Hi Brandon,

> D'oh!  My vowels are discombobulated!

Sorry!  Let me undiscombobulate:

Hi Branden,

> I was kind of wondering why they were there, but I figured the designers
> of mdoc knew best...

Frankly, i'm not completely sure.

Cynthia Livingston designed and implemented the the mdoc macro package
on behalf of USENIX in 1989/90.  So when she started, groff had not
been publicly released yet.  She used Kernighan's device independent
troff.  Version 2 of the macros - which has been obsolete since 1993,
when the version 3 we are using now was publicly released - contained:

  .if t \{\
  .       ds <= \(<=
  .       ds >= \(>=
  .       ds Lq \&``
  .       ds Rq \&''
  .       ds ua \(ua
  .       ds aa \(aa
  .       ds ga \(ga
  .       ds sR \(aa
  .       ds sL \(ga
  .\}
  .if n \{\
  .       ds <= \&<\&=
  .       ds >= \&>\&=
  .       ds Rq ''
  .       ds Lq ``
  .       ds ua ^
  .       ds aa '
  .       ds ga `
  .       ds sL `
  .       ds sR '
  .\}

So my best guess would be that the nroff used together with Kernighan's
troff likely had some (unknown) issues with \(<=, \(ua, \(ga ...
It would probably be possible to figure out the details because
the source of that troff/nroff still exist.

At some point after groff was first released (1990) but before
4.4BSD (1993), Cynthia suggested to simplify the macros and the
manual pages by making groff mandatory and dropping support for
Kernighan's troff, but the Berkeley Computer Systems Reasearch Group
objected, insisting that support for Kernighan's troff was retained.

So the 4.4BSD version of these strings possibly also might have
something to do with desiring compatibility with both troffs, but
i'm not sure.  Likely, we are taking about issues here that mostly
predate groff.


> Okay.  I'm implementing CS and CT register support in mdoc right now;
> just need to write the regression tests.

Right.  I need to do that in mandoc, too.  In principle, it is agreed
with Jason to add support for mixed-case .TH, .SH, .Dt, and .Sh, and
it seems likely that at some point, we'll switch the source code in
all the 4000 or so manual pages, even though terminal output is
likely to remain ALL CAPS at least for now.

> Sometimes, convincing me is easy.  :)

:-)

Yours,
  Ingo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]