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