Follow-up Comment #11, bug #66653 (group groff):

On Saturday, 30 August 2025 13:12:05 BST you wrote:
> Follow-up Comment #10, bug #66653 (group groff):
>
> Hi Deri,
>
[...]
> I think I have this licked.
>
> I'm attaching (or trying too--let's see if Savannah's email gateway can
> cope) a diff of my changes since my last push (just a couple of hours
> ago).
>
> Here it is in action:
>
>
> $ cat ATTIC/unicode-char-in-diversion.groff
> .box DIV
> hello \[u260E] world
> \#hello \[ru] world
> .br
> .box
> .DIV
> .\"pm DIV
> .chop DIV
> .asciify DIV
> .\"pm DIV
> .DIV
> \X'pdf: ignoreme \*[DIV]'
> $ ./build/test-groff -Z ATTIC/unicode-char-in-diversion.groff
> x T ps
> x res 72000 1 1
> x init
> p1
> x font 5 TR
> f5
> s10000
> md
> DFd
> V12000
> H72000
> thello
> wx font 12 ZD
> f12
> h2500
> Cu260E
> wf5
> h9690
> tw
> H111310
> torld
> wh2500
> thello
> wf12
> h2500
> Cu260E
> wf5
> h9690
> tw
> H169230
> torld
> V12000
> H185340
> x X pdf: ignoreme hello \[u260E] world
> n12000 0
> x trailer
> V792000
> x stop
>
>
> Please try this out and let me know if it is satisfactory, or isn't.
>
Hi Branden,

I like it a lot. One problem outstanding, it does not like your name! If I use

this as a test:-

.box DIV
hello \[u260E] world and G.\& \fBBranden\fP Robinson
\#hello \[ru] world
.br
.box
.
.\"pm DIV
.chop DIV
.asciify DIV
.\"pm DIV
.DIV
\X'pdf: ignoreme \*[DIV]'
.pdfinfo /Title "\*[DIV]"

Using:-

test-groff -Tpdf -Z G.trf

You will notice:-

troff:G.trf:12: warning: a node is not encodable in device-independent output
('asciify' might help)
x X ps:exec [/Title (hello \[u260E] world and G.) /DOCINFO pdfmark

Cut off in your prime! However, if you apply:-

--- ../src/roff/troff/node.cpp  2025-08-31 21:06:24.050087492 +0100
+++ node.cpp    2025-08-31 21:08:58.421762137 +0100
@@ -3883,7 +3883,8 @@

 void node::asciify(macro *m)
 {
-  m->append(this);
+  if (strcmp("dummy_node", this->type()) != 0 && strcmp("tag_node", this-
> type()) != 0)
+    m->append(this);
 }

 // XXX: Member function is identical to `composite_node::asciify()`.

The problem (and the error) disappear. This is probably not the best way to
stop dummy_nodes depositing null chars into c-string (which is what causes the

truncation), I don't know anything about C++ inheritance, it might just
require a dummy_node::asciify routine which does nothing!

Cheers

Deri

> (file #57604)
>


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?66653>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to