URL: <https://savannah.gnu.org/bugs/?66686>
Summary: \w rejecting delimiter roffs have accepted for
decades
Group: GNU roff
Submitter: barx
Submitted: Mon 20 Jan 2025 12:09:37 PM CST
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 20 Jan 2025 12:09:37 PM CST By: Dave <barx>
Modifying an example from the info manual to change the delimiters for \w's
argument to a + sign:
$ echo "The length of the string 'abc' is \w+abc+u." | groff -Tascii | cat -s
The length of the string 'abc' is 72u.
This has worked for decades in groff, and works in Heirloom troff. It has no
syntactical ambiguity, because \w does not take a numeric expression.
In a bleeding-edge groff, it no longer works.
$ echo "The length of the string 'abc' is \w+abc+u." | groff-latest -Tascii |
cat -s
troff:<standard input>:1: error: character '+' is not allowed as a delimiter
The length of the string 'abc' is abc+u.
And the manner in which it fails--transforming something that used to be a
numeric expression into something that (probably) no longer is--sends things
further off the rails when calculations are attempted with this value.
This change dates from the last 5 months. In that time frame:
* Bug #66481 fixed a similar back-compatibility-breaking problem with the \w
escape and a | delimiter. But this couldn't have introduced the current
problem as a side effect: all it does is revert the fix for bug #66009 fix,
and the + delimiter worked fine in the pre-66009 days.
* Bug #63142 disallowed newlines as delimiters, which was an un(der)used GNU
aberration from the start. But its commit message says "As a bonus, check
starting delimters [sic] for these escape sequences (`\[obAZwX]`) for validity
in general." So I suspect this bug may have been introduced as part of that
bonus.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?66686>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
