Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!sri-unix!hplabs!nsc!voder!jeff From: jeff@voder.UUCP (Jeff Gilliam) Newsgroups: comp.bugs.4bsd Subject: -me macros flub multi-page boxed tables +FIX Message-ID: <2708@voder.UUCP> Date: Tue, 11-Nov-86 21:07:00 EST Article-I.D.: voder.2708 Posted: Tue Nov 11 21:07:00 1986 Date-Received: Wed, 12-Nov-86 04:50:06 EST Organization: National Semiconductor, Santa Clara Lines: 75 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