Hi folks,
I've been adding a history subsection to the groff_man(7) page for the
next groff release (date TBD) and thanks to the TUHS archives I've been
able to answer almost all the questions I had about the origins of the
man(7) language's macros and registers (number and string).
I'm inlining my findings in rendered and source form below, but there's
one feature I haven't been able to sort out--where did .SB (small bold)
come from? The oldest groff release I can find online is 1.02 (June
1991), and .SB is already there, but I can't find it anywhere else. Is
it a GNUism? Did it perhaps appear in a proprietary Unix first?
I'm aware of Kristaps Dzonsons's history of Unix man pages[1], but
unfortunately for me that is more of a history of the *roff system(s),
and does not have much detail about the evolution of the man(7) macro
language itself.
If you can shed any light on this, I'd appreciate it!
History
Version 7 Unix (1979) supported all of the macros described in this
page not listed as extensions, except .P, .SB, and the deprecated .AT
and .UC. The only string registers defined were R and S; no number
registers were documented. .UC appeared in 3BSD (1980) and .P in AT&T
Unix System III (1980). 4BSD (1980) added lq and rq string registers.
4.3BSD (1986) added .AT and AT&T's .P. DEC Ultrix 11 (1988) added the
Tm string register.
.\" ====================================================================
.SS History
.\" ====================================================================
.
Version\~7 Unix (1979) supported all of the macros described in this
page not listed as extensions,
except
.BR .P ,
.BR .SB ,
.\" .SS was implemented in tmac.an but not documented in man(7).
and the deprecated
.BR .AT
and
.BR .UC .
.
The only string registers defined were
.B R
and
.BR S ;
no number registers were documented.
.
.B .UC
appeared in 3BSD (1980) and
.B .P
in AT&T Unix System\~III (1980).
.
4BSD (1980) added
.\" undocumented .VS and .VE macros to mark regions with 12-point box
.\" rules (\[br]) as margin characters, as well as...
.B lq
and
.B rq
string registers.
.
4.3BSD (1986) added
.\" undocumented .DS and .DE macros for "displays", which are .RS/.RE
.\" wrappers with filling disabled and vertical space of 1v before and
.\" .5v after, as well as...
.B .AT
and
AT&T's
.BR .P .
.
DEC Ultrix\~11 (1988) added the
.B Tm
string register.
.
.\" TODO: Determine provenance of .SB.
Regards,
Branden
[1]
https://manpages.bsd.lv/history.html