URL:
<https://savannah.gnu.org/bugs/?64484>
Summary: [troff] .device and \X don't behave the same
Group: GNU roff
Submitter: gbranden
Submitted: Fri 28 Jul 2023 10:22:42 AM UTC
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: Fri 28 Jul 2023 10:22:42 AM UTC By: G. Branden Robinson <gbranden>
The `device` request and `X` escape sequence don't behave the same way when it
comes to encoding of things that aren't representable in the page description
language (_groff_out_(5)).
Exhibit:
$ cat EXPERIMENTS/device-vs-X.groff
.nf
foo
\X'baz: \%qux man-beast\[u1F63C]'
.device baz: \%qux man-beast\[u1F63C]
$ groff -Z EXPERIMENTS/device-vs-X.groff | grep '^x X'
x X baz: qux man-beast
x X baz: \%qux man-beast\[u1F63C]
This is _not_ a regression from _groff_ 1.22.4
$ /usr/bin/groff -Z EXPERIMENTS/device-vs-X.groff | grep '^x X'
troff: EXPERIMENTS/device-vs-X.groff:3: a special character is invalid within
\X
x X baz: qux man-beast
x X baz: \%qux man-beast\[u1F63C]
It seems likely to me that `device` was added to GNU _troff_ to provide a
request counterpart to the \X escape sequence (an AT&T device-independent
_troff_ feature), as `brp` did for `\p`.
I think we should either (1) get our story straight here (put the behavior
into parity) or (2) strongly call out the distinction in documentation and
supply use cases for why you'd employ one versus the other.
My preference is for (1) right now but I'd appreciate hearing from Deri, who
gives these features a lot of exercise in "pdf.tmac".
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?64484>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/