URL: <https://savannah.gnu.org/bugs/?67372>
Summary: \A regression in 1.23
Group: GNU roff
Submitter: schwarze
Submitted: Mon 28 Jul 2025 03:59:44 PM GMT
Category: Core
Severity: 3 - Normal
Item Group: Incorrect behaviour
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Mon 28 Jul 2025 03:59:44 PM GMT By: Ingo Schwarze <schwarze>
With the mnemonics
v = variable name
d = delimiter character
i = identifier name
s = suffix string
consider the two following roff(7) input files:
.ds v did
\A\*vs
.nr v 121
\A\nvs
With groff-1.22.4, both print "1s" when run through nroff(1)
because d and 1 are valid delimiter characters and i and 2 are valid
identifiers,
so \Adids and \A121s both result in 1s.
With groff-1.23.0, both only print "1" without the trailing "s" and also print
this incorrect message:
troff:tmp.roff:2: warning: missing closing delimiter in identifier
validation escape sequence (got a newline)
I say "incorrect" because the closing delimiter is clearly present and not
"missing".
The program complaining about the newline indicates that the parser got
broken;
the parser should never reach the newline while parsing the \A sequence.
I'm asking for help debugging because i'm very unfamiliar with the bowels of
the roff parser...
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?67372>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
