[comp.bugs.4bsd] -me macros flub multi-page boxed tables +FIX

jeff@voder.UUCP (Jeff Gilliam) (11/12/86)

Description:
	While processing boxed tables that span page boundaries the
	me macros can get into a loop.  The footer macro calls the
	.T# macro (defined by tbl) to draw the bottom and sides of
	the table, which sweeps past the footer trap, invoking the
	footer macro, which calls the .T# macro, which ...
Repeat-By:
	Run the following input through 'tbl | troff -me'.

	.lp
	.TS H
	box;
	c c.
	this	that
	=
	.TH
	foo	T{
	bar
	.sp 2i
	T}
	ick	snick
	foo	T{
	bar
	.sp 2i
	T}
	ick	snick
	foo	T{
	bar
	.sp 2i
	T}
	ick	snick
	foo	T{
	bar
	.sp 2i
	T}
	ick	snick
	foo	T{
	bar
	.sp 2i
	T}
	.TE

Fix:
	The footer macro .@f should rename itself before invoking
	.T#, then return to its original name.

RCS file: RCS/tmac.e,v
retrieving revision 1.1
retrieving revision 1.2
diff -c -r1.1 -r1.2
*** /tmp/,RCSt1004023	Tue Nov 11 18:04:29 1986
--- /tmp/,RCSt2004023	Tue Nov 11 18:04:31 1986
***************
*** 258,263 ****
--- 258,264 ----
  .if \n@>1 .tm >> @f %=\\n% nl=\\n(nl ?a=\\n(?a ?b=\\n(?b ?f=\\n(?f
  .if \n@>2 .nr VL \\n(.pu-\\n(nlu
  .if \n@>2 .tm @f bm=\\n(bm _B=\\n(_B _b=\\n(_b .p-nl=\\n(VL
+ .rn @f f@
  .ec
  .if \\n(?T \
  \{\
***************
*** 267,272 ****
--- 268,274 ----
  .\}
  .ev 2
  .ce 0
+ .rn f@ @f
  .if \\n(?b \
  \{\
  .	nr ?b 0
-- 

Jeff Gilliam	{ucbvax,pyramid,nsc}!voder!jeff