On 5/21/23, G. Branden Robinson <g.branden.robin...@gmail.com> wrote: > At 2023-05-13T12:52:06-0500, Dave Kemper wrote: >> .nf >> .ss 36 >> foo bar >> .ss 48 >> foo bar >> foo\h'1m'bar >> >> In Heirloom troff, the space on the first and third lines match. In >> groff (both 1.22.4 and 1.23 rc4), the second and third lines do. > > On DWB 3.3 troff, a direct descendant of Kernighan troff, and the basis > for Heirloom Doctools troff, the second and third lines match:
The behavioral divergence between DWB 3.3 and Heirloom surprises me. I wondered if maybe this was the result of a different Times space width in Heirloom, but if I'm reading its metrics files correctly (which I admit is partly educated guesswork on my part), the widths appear to match groff's: $ cd heirloom/local/ucblib/doctools/font/devps $ fgrep 'N space ' * B.afm:C 32 ; WX 250 ; N space ; B 0 0 0 0 ; BI.afm:C 32 ; WX 250 ; N space ; B 0 0 0 0 ; CB.afm:C 32 ; WX 600 ; N space ; B 0 0 0 0 ; CI.afm:C 32 ; WX 600 ; N space ; B 0 0 0 0 ; CW.afm:C 32 ; WX 600 ; N space ; B 0 0 0 0 ; CX.afm:C 32 ; WX 600 ; N space ; B 0 0 0 0 ; H.afm:C 32 ; WX 278 ; N space ; B 0 0 0 0 ; HB.afm:C 32 ; WX 278 ; N space ; B 0 0 0 0 ; HI.afm:C 32 ; WX 278 ; N space ; B 0 0 0 0 ; HX.afm:C 32 ; WX 278 ; N space ; B 0 0 0 0 ; I.afm:C 32 ; WX 250 ; N space ; B 0 0 0 0 ; R.afm:C 32 ; WX 250 ; N space ; B 0 0 0 0 ; S.afm:C 32 ; WX 250 ; N space ; B 0 0 0 0 ; S1.afm:C 32 ; WX 250 ; N space ; B 0 0 0 0 ; ZD.afm:C 32 ; WX 278 ; N space ; B 0 0 0 0 ; > I don't think I trust Heirloom here. First, I suspect what they did was > treat the CSTR #54 as more authoritative than empirically measured > formatter behavior. I can't rule that out, but it sure goes against (my understanding of) the general philosophy of the Heirloom project (which is to use only the original source code for original functionality, not reverse-engineering any of it). But I have no alternative theory that fits the facts. I guess the upshot is that rather than a groff difference that needs to be documented, this is a CSTR #54 erratum (which groff could still document, but it feels less important).