URL: <https://savannah.gnu.org/bugs/?67385>
Summary: [mdoc] renders degenerate input using insane page
length in nroff mode
Group: GNU roff
Submitter: gbranden
Submitted: Sat 02 Aug 2025 10:24:02 AM GMT
Category: Macro package mdoc
Severity: 3 - Normal
Item Group: Rendering/Cosmetics
Status: In Progress
Privacy: Public
Assigned to: gbranden
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Sat 02 Aug 2025 10:24:02 AM GMT By: G. Branden Robinson <gbranden>
In this commit:
commit d8cd70f3a8cfd06996ddce6b1d18150eaef69983
Author: G. Branden Robinson <[email protected]>
Date: Sun May 18 10:35:01 2025 -0500
[mdoc]: Fix Savannah #65190 (2/2).
[mdoc]: Refactor continuous rendering mode to use an "infinite page
length" method facilated by the new semantics of the `.R` register.
* tmac/mdoc/doc-common (doc-ne): Drop unneeded macro.
(doc-bp): Define with `de1` to temporary disable compatibility mode,
and replace definition. No longer altering the page length, it works
like `br`, including control-character-sensitive behavior.
(doc-set-up-continuous-rendering): Drop macro in favor of open-coded
initialization logic.
([initialization]): If continuously rendering, set up replacement
macro for `bp` request and set the page length to "infinite".
(Dd): Call `an*break-page-with-new-number` only if _not_ continuously
rendering.
(doc-end-macro): If continously rendering, stop incrementing the page
length prior to writing the footer and document separation line, and
upon encountering the end of the last document (the input file name
register `.F` becomes empty), set the page length to the vertical
drawing position.
Fixes Savannah #65190 (2/2).
I failed to ensure that the appropriate end-of-input macro would be called.
That causes degenerate documents, when rendered in _nroff_ mode (and the `cR`
register not made false), to format on a page length of over a million lines.
Not graceful.
Discovered on my own while probing (unsuccessfully) for a _mandoc_(1) problem
in conversation with Ingo Schwarze.
https://github.com/ischwarze/groff-port/commit/b251b75a25d4a86107870d0676d3a7dcbf125db1#commitcomment-163275225
This is a rendering/cosmetics problem, to be sure, and moreover only happens
with degenerate (that is, invalid) input, but is sufficiently obnoxious to
warrant "Normal" Severity.
Also, it's my fault.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?67385>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
