bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #61453] want native mechanism for continuous (non-paginated) render


From: G. Branden Robinson
Subject: [bug #61453] want native mechanism for continuous (non-paginated) rendering
Date: Thu, 25 Jul 2024 18:34:50 -0400 (EDT)

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.robinson@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/

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]