man.7: ffix
commit9196348d2b624de8d594eabe2b85defeff4c5ef4
authorG. Branden Robinson <g.branden.robinson@gmail.com>
Fri, 28 Jul 2023 17:28:06 +0000 (28 12:28 -0500)
committerAlejandro Colomar <alx@kernel.org>
Sat, 29 Jul 2023 13:01:13 +0000 (29 15:01 +0200)
treeb52442a177938fde78702f1f171d3b5486715095
parentd56554f0d693c4c0c63c15f0ae1c437005b16666
man.7: ffix

The `\c` escape sequence works in an argument to a macro call that is
part of a paragraph tag with font style alternation macros, but not the
ordinary font macros `B` and `I`.  This is because `TP`, `B`, and `I`
all set up input traps; the six font style alternation macros do not.

The old formatting would, for some versions of some formatters, set the
"[trailer]" text as part of the paragraph body, not the tag--like this.

       .UE    [trailer] Terminate the link text  of  the  preceding  .UR
              macro,  with  the  optional trailer (if present, usually a
(and so on)

This was a poorly understood--and undocumented--interaction of man(7)
features until recently.  Gory details involving nroff on Unix Version 7
(1979) running on a simulated PDP-11/45 are available.[1]

Here is a comparison of the former and new markup.

before
======
groff 1.22.3: BAD
groff 1.22.4: GOOD
groff 1.23.0: BAD
mandoc 1.14.6: BAD

now
===
groff 1.22.3: BAD
groff 1.22.4: GOOD
groff 1.23.0: GOOD
mandoc 1.14.6: GOOD

[1] https://savannah.gnu.org/bugs/?51468
    https://lists.gnu.org/archive/html/groff/2022-06/msg00020.html

Signed-off-by: G. Branden Robinson <g.branden.robinson@gmail.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
man7/man.7