Update of bug #67646 (group groff):
Status: In Progress => Fixed
Open/Closed: Open => Closed
Planned Release: None => 1.24.0
_______________________________________________________
Follow-up Comment #3:
commit d13040e40325c051e2f7195ddc36943d51bee733
Author: G. Branden Robinson <[email protected]>
Date: Wed Oct 29 05:48:52 2025 -0500
[mdoc]: Regression-test Savannah #67646.
* tmac/tests/doc_infer-correct-type-of-dot-T-string.sh: Add test.
* tmac/tmac.am (tmac_TESTS): Run test.
Test fails at this commit.
commit f014f3ef28703c441115346972326fa44eb0a127
Author: G. Branden Robinson <[email protected]>
Date: Wed Oct 29 05:52:10 2025 -0500
[mdoc]: Fix Savannah #67646 (`.T` as macro arg).
* tmac/doc.tmac (doc-get-arg-type*): Handle the *roff internal string
'.T' specially in an mdoc macro argument sequence; it is defined in
the formatter, which _also_ defines a '.T' _register_, colliding
perfectly with mdoc's argument type system. This change prevents `.T`
from being called as a macro and interpolating its value, a surprising
outcome to mdoc users.
Fixes <https://savannah.gnu.org/bugs/?67646>. Thanks to onf for the
report. Problem dates back "all the way"; not only does groff 1.22.3
(November 2014) have it, but the 4.4BSD-Lite2 implementation of mdoc
does as well. mdoc as a *roff macro package implements its own bespoke
type system to accompany its bespoke macro processor; the type of a
macro argument (a string or macro) is determined by looking up its name
as a _register_. mandoc(1) does not exhibit this problem, likely
because it lacks a *roff formatter that defines both a `.T` register and
a `.T` string; rather it simulates both of these.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?67646>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
