Follow-up Comment #11, bug #61453 (group groff): [comment #10 comment #10:] > [comment #7 comment #7:] > > I'm a little nervous of meddling with the semantics of a > > negative page length given the potential for interaction with > > negative vertical drawing positions. > > There seem to be (at least) two ways to implement this. When the user specifies ".pl -1", the code can either: > > 0 Store -1 as the page length.
I've just foreclosed this possibility (not because of this ticket, but because it was [https://savannah.gnu.org/bugs/?64301 causing me headaches with trapping arithmetic]). commit a00682e9cb4070e35139f6df59130d9ce12505ce Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Thu Jul 25 15:20:55 2024 -0500 [troff]: Enforce minimum page length. * src/roff/troff/div.cpp (page_length): Clamp `pl` request argument to the output device's vertical resolution (similarly to the way `ll` and `lt` behave). * doc/groff.texi.in (Page Layout): * NEWS: Document this. > 0 Set a new flag that indicates page-length handling is to be disregarded. Any code that compares against page length is made conditional on this flag being unset. This remains completely feasible. > In many cases, implementation 1 may automatically do what's desired without further code change. But this raises your concern about interaction with negative vertical drawing positions. I have no intention of invalidating negative vertical drawing positions. Setting the `nl` register to `-1` to force a re-spring of a trap at vertical position 0 is well established. There are more exotic applications like drawing an arc with its center off the page. > Implementation 2 is a more invasive change. But because it skips page-length checking altogether, it avoids the prior concern. Not terribly invasive, I think. This would be a property of the top-level diversion and no other formatter object I can think of. That's also the only thing that has page location traps in the first place, so I don't foresee any problems with symbol visibility. Possibly, all the changes that this feature needs can be made to "div.cpp". _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?61453> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature