> The following bug still exists in 1.19.2.  I've identified the
> problem -- see below.

Sorry, but your analysis is wrong.

> >     .S 27 29
> >     .SP
> >     foo
> >     .SK
> > 
> >    foo.tr:4: fatal error: input stack limit exceeded (probable
> >                           infinite loop)
> > 
> >  Happens whenever vertical spacing is "too big".  With ".S 27 60"
> >  ".SP" can be omitted -- only the "foo" line is needed to cause
> >  looping.
> 
> In earlier versions, register pg*footer-size was set to 5 and
> referenced as \\n[pg*footer-size]v.  In 1.18 it is set to 5v and
> referenced as \\n[pg*footer-size]u.

Using `u' is correct!

> This doesn't work because the vertical spacing (v) can change by the
> time the register is referenced.

It *does* work.  If you say `5v', groff automatically converts this to
`u' units.  Please read section `Measurements' in the groff info
manual for details.

The very problem is that the footer trap is called within footer trap
again.  You can verify this by yourself -- just say

  groff -rD9 -mtrace -mm foo.tr > foo.ps 2> foo.trace

to get a detailed trace of macro calls together with extensive mm
debugging information.

Jörgen, can you help?

I poked around in the code a bit, but my knowledge of mm is too
limited, and I wasn't able to fix it.  Disabling a second call of
itself within the [EMAIL PROTECTED] macro doesn't work as expected (you now
get three pages instead of two with the above input) -- maybe the trap
should be executed within a different environment to protect against
big vertical spacing values...


    Werner


_______________________________________________
Bug-groff mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-groff

Reply via email to