Hello all,

I  have  found what seems to be a bug in m.tmac. The
display-start macro stored the current indent into a
register  and  used  its  values  in the dispaly-end
macro. This didn't work when, for example, a display
wrapped a list having another display as its item.

In  the attached patch, I have replaced the register
with a stack. Also attached is a small test document
demonstrating the problem.

Anton

Attachment: listinds-test.mm
Description: application/freemind

--- m-old.tmac  2011-07-31 01:08:10.937500000 +0400
+++ m.tmac      2011-07-31 01:11:53.328125000 +0400
@@ -2072,7 +2072,8 @@
 .\"
 .nr ds*old-ll \\n[.l]
 .nr ds*old-in \\n[.i]
-.misc@push ds-ll \\n[.l]
+.misc@push ds-in \\n[ds*old-in] \" Saving indent and line length of
+.misc@push ds-ll \\n[ds*old-ll] \" the text outside the display.
 .misc@push ds-form \\n[ds*format]
 .nr ds*i \\n[.i]
 .nr ds*ftmp \\n[.f]
@@ -2095,7 +2096,8 @@
 .\" **********
 .nr ds*width \\n[dl]
 .nr ds*height \\n[dn]
-.misc@pop-nr ds-ll ds*old-ll
+.misc@pop-nr ds-ll ds*old-ll \" Restore indent and
+.misc@pop-nr ds-in ds*old-in \" line length
 .misc@pop-nr ds-form ds*format
 .\"
 .\" **********

Reply via email to