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/

Attachment: signature.asc
Description: PGP signature

Reply via email to