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
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 .\" .\" **********