neatroff
neatroff copied to clipboard
Fix vertical relative position in \D mode
The number register \n(.d does not contain the vertical position until wb is put into fmt. This is problematic for drawing functions because relative positions such as |1i are not relative to the current word buffer (in which the drawing is done) but to fmt. This causes unexpected drawings.
This is not compliant to the behavior of either groff, heirloom doctools, or Plan 9's troff, but we the behavior with horizontal vertical position is already non-compliant.
An alternative is to adopt the other troff's behavior, that is to never update the relative position while parsing a drawing function.