URL: <https://savannah.gnu.org/bugs/?65322>
Summary: [troff] certain diversion stunts can crash the formatter Group: GNU roff Submitter: gbranden Submitted: Fri 16 Feb 2024 08:57:10 PM UTC Category: Core Severity: 3 - Normal Item Group: Crash/Unresponsive Status: Confirmed Privacy: Public Assigned to: gbranden Open/Closed: Open Discussion Lock: Any Planned Release: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Fri 16 Feb 2024 08:57:10 PM UTC By: G. Branden Robinson <gbranden> This is a problem in Git only; I don't see it in 1.23.0. When you do certain intensely clever things with diversions, as the _mom_ package and _pdf.tmac_ macro file do, you can apparently confuse the formatter into the wilderness. $ cat ./EXPERIMENTS/heading.mom .PRINTSTYLE TYPESET .START .HEADING 1 NAMED one "First Heading" This is a heading. .HEADING 2 NAMED two "Second Heading" Let's refer back to the first heading (this .PDF_LINK one SUFFIX ). + $ ./build/test-groff -mom -Tpdf ./EXPERIMENTS/heading.mom >| heading.pdf troff: ../src/roff/troff/input.cpp:626: static int input_stack::finish_get(node**): Assertion `level == 0' failed. /home/branden/src/GIT/groff/build/groff: error: troff: Aborted (core dumped) That assertion was put in by James Clark in _groff_ 1.02 (1991) or earlier. I'm going to guess it's not spurious. My hypothesis is that the `chop` and `asciify` requests in mom's `pdfmomclean` macro can damage a diversion's contents such that the formatter gets into an invalid state. .de pdfmomclean . ie '\\n[.z]'' \{\ . ds pdfcleaned \\$* . ev pdfcln . tr \[em]- . nf . box pdf:clean . nop \\*[\\*[pdfcleaned]] . fl . box . chop pdf:clean . asciify pdf:clean . ev . ds \\*[pdfcleaned] "\\*[pdf:clean] . rm pdf:clean . tr \[em]\[em] . \} . el .nop \!.pdfmomclean \\$@ .. But I place no blame on `pdfmomclean`; the formatter should not permit itself to be confused in this way. Figuring out the details will take some digging. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?65322> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/