On Mon Dec 2, 2024 at 7:05 PM CET, Douglas McIlroy wrote:
> > I have discovered recently that `ne` and `bp` behave differently in
> > regards to pending input lines. `bp` breaks such lines, while `ne`
> > does not. In practice this means that `ne` does not behave like a
> > conditional `bp` as one would reasonably expect.
>
> I invented .ne 55 years ago and have never heard a complaint about its
> design before. It is not a conditional .bp, because that would case a
> line break, which .ne never does, nor should.
I know it does not behave like a conditional `bp` (that was my
entire argument, after all). I have yet to see any explanation
of the rationale behind that behavior, though.
Most explanations I have seen so far more or less amount to the one
given by groff(7):
.ne d Break page if distance to next page location trap
is less than distance d (default scaling unit v).
(i.e. break page if distance to next trap < argument)
CSTR #54 provides a detailed technical description
(better than the above), but no rationale.
Could you please summarize what's the idea behind it?
~ onf