Xref: utzoo comp.bugs.4bsd:1487 comp.text:5869 Path: utzoo!attcan!uunet!wuarchive!mit-eddie!bu-cs!bucsb!bucsf!jbw From: jbw@bucsf.bu.edu (Joe Wells) Newsgroups: comp.bugs.4bsd,comp.text Subject: Re: C/A/T troff bug with -mm macros (4.3BSD) Message-ID: Date: 18 Dec 89 02:43:50 GMT References: <927@hsi86.hsi.UUCP> Organization: Boston University Computer Science Department Lines: 297 In-reply-to: stevens@hsi.UUCP's message of 15 Dec 89 17:03:39 GMT In article <927@hsi86.hsi.UUCP> stevens@hsi.UUCP (Richard Stevens) writes: I have found a bug with the old C/A/T version of troff that's shipped with 4.3BSD. The bug shows up with the -mm macro package. As several people have already pointed out, this is because of the missing \g command in your version of troff. I'm including a diff to the MM macro package to make it work without \g. The diff also fixes some other bugs. Enjoy, -- Joe Wells jbw%bucsf.bu.edu@bu-it.bu.edu ...!harvard!bu-cs!bucsf!jbw (617) 375-6893 200-202 Bay State Rd., Box 1486, Boston, MA 02215, USA ---------------------------------------------------------------------- *** mmt.old Wed May 31 16:32:52 1989 --- mmt Mon Jun 5 18:51:29 1989 *************** *** 619,643 **** .tmERROR:(\\n(.F)input line \\n(.c:\\$1 .if!\\nD .ab \& .. .deTB ! .nr!1 1 ! .ie.)F TABLE 1 \\n+(Tb "\\$1" "\\n(H1-" 0 ! .el.)F TABLE 1 \\n+(Tb "\\$1" "\\$2" 0\\$3 .. .deEC ! .nr!2 1 ! .ie.)F Equation 2 \\n+(Ec "\\$1" "\\n(H1-" 0 ! .el.)F Equation 2 \\n+(Ec "\\$1" "\\$2" 0\\$3 .. .deEX ! .nr!3 1 ! .ie.)F Exhibit 3 \\n+(Ex "\\$1" "\\n(H1-" 0 ! .el.)F Exhibit 3 \\n+(Ex "\\$1" "\\$2" 0\\$3 .. .deFG ! .nr!0 1 ! .ie.)F Figure 0 \\n+(Fg "\\$1" "\\n(H1-" 0 ! .el.)F Figure 0 \\n+(Fg "\\$1" "\\$2" 0\\$3 .. .de)F .nr;0 \w\\$5 --- 619,657 ---- .tmERROR:(\\n(.F)input line \\n(.c:\\$1 .if!\\nD .ab \& .. + .\" Fixed numbering on exhibits, tables, figures, etc. + .\" Used to be like this: + .\" .deTB + .\" .nr!1 1 + .\" .ie.)F TABLE 1 \\n+(Tb "\\$1" "\\n(H1-" 0 + .\" .el.)F TABLE 1 \\n+(Tb "\\$1" "\\$2" 0\\$3 + .\" .. + .\" Notice the syntax error (missing condition) on the .ie line. + .\" N=5 means do section numbering for figures. + .\" --Joe Wells .deTB ! .nr !1 1 ! .nr Tb +1 ! .ie \\nN=5 .)F TABLE 1 \\n(Tb "\\$1" "\\n(H1-" 0 ! .el .)F TABLE 1 \\n(Tb "\\$1" "\\$2" 0\\$3 .. .deEC ! .nr !2 1 ! .nr Ec +1 ! .ie \\nN=5 .)F Equation 2 \\n(Ec "\\$1" "\\n(H1-" 0 ! .el .)F Equation 2 \\n(Ec "\\$1" "\\$2" 0\\$3 .. .deEX ! .nr !3 1 ! .nr Ex +1 ! .ie \\nN=5 .)F Exhibit 3 \\n(Ex "\\$1" "\\n(H1-" 0 ! .el .)F Exhibit 3 \\n(Ex "\\$1" "\\$2" 0\\$3 .. .deFG ! .nr !0 1 ! .nr Fg +1 ! .ie \\nN=5 .)F Figure 0 \\n(Fg "\\$1" "\\n(H1-" 0 ! .el .)F Figure 0 \\n(Fg "\\$1" "\\$2" 0\\$3 .. .de)F .nr;0 \w\\$5 *************** *** 1143,1149 **** .sp|1.1i-1v \t\s36\(bs\s0 .vs.3i ! .if\w\\*(}2 \t\s16\f3\\*(}2\fP\s0 .vs12p .sp|1.9i .mk:2 --- 1157,1169 ---- .sp|1.1i-1v \t\s36\(bs\s0 .vs.3i ! .\" Fixed display of company name so that it works properly for a ! .\" long name. ! .\" Used to be this: ! .\" .if\w\\*(}2 \t\s16\f3\\*(}2\fP\s0 ! .\" String }2 is the company name. ! .\" --Joe Wells ! .if\w"\\*(}2" \s16\f3\h'|\\nWu-\w"\\*(}2"u'\\*(}2\fP\s0 .vs12p .sp|1.9i .mk:2 *************** *** 1192,1199 **** .rs .ie\\n(;3 \{\ .ie\\n(:t=2 \{\ ! .af!S \\gP ! .afP i .]t .in+\\n(:3u .>3 --- 1212,1227 ---- .rs .ie\\n(;3 \{\ .ie\\n(:t=2 \{\ ! .\" We keep track of the format of register P in string Pf, because ! .\" the \g command does not work in our version of troff. The \g ! .\" command returns the display format of a numeric register. ! .\" Next three lines used to be this: ! .\" .af!S \\gP ! .\" .afP i ! .\" --Joe Wells ! .ds !S \\*(Pf ! .ds Pf i ! .afP \\*(Pf .]t .in+\\n(:3u .>3 *************** *** 1203,1209 **** .wh0 )k .bp .nrP 1 ! .afP \\g(!S .]t .wh0 )h .if\\n(:G \{\ --- 1231,1241 ---- .wh0 )k .bp .nrP 1 ! .\" Next two lines used to be this: ! .\" .afP \\g(!S ! .\" --Joe Wells ! .ds Pf \\*(!S ! .af P \\*(Pf .]t .wh0 )h .if\\n(:G \{\ *************** *** 1854,1859 **** .ie\\*(]w 'ch )f -\\n(:ou .el'ch )f -(\\n(:ou+1v) .. .dePH .ds}t "\\$1 .. --- 1886,1899 ---- .ie\\*(]w 'ch )f -\\n(:ou .el'ch )f -(\\n(:ou+1v) .. + .\" Purposes of some macros: + .\" }t = page header + .\" }e = even page header + .\" }o = odd page header + .\" }b = page footer + .\" }f = even page footer + .\" }p = odd page footer + .\" --Joe Wells .dePH .ds}t "\\$1 .. *************** *** 1875,1885 **** .deTP 'sp .)K ! .af;P \\gP ! .afP 1 ! .nr;P \\nP ! .afP \\g(;P ! .af;P 1 .ie\\n(Pv \{\ .ie(\\n(Pv=1)&(\\n(;P>1) 'sp 2 .el\{\ --- 1915,1932 ---- .deTP 'sp .)K ! .\" Next five lines are altered from original. Used to be: ! .\" .af;P \\gP ! .\" .afP 1 ! .\" .nr;P \\nP ! .\" .afP \\g(;P ! .\" .af;P 1 ! .\" --Joe Wells ! .af ;P 1 ! .af P 1 ! .nr ;P \\nP ! .if '\\*(Pf'' .ds Pf 1 ! .af P \\*(Pf .ie\\n(Pv \{\ .ie(\\n(Pv=1)&(\\n(;P>1) 'sp 2 .el\{\ *************** *** 1890,1895 **** .if!\\n(;P-1 .if \\nN 'sp .if!\\n(;P-1 .if \\n(:S .tl \\*(}t .if!\\n(;P-1 .if !\\nN .tl \\*(}t .if\\n(;P-1 .ie \w'\\*(]n' .tl '\\*(]n - \\nP''' .el.tl \\*(}t 'if!\\n(;P%2 'tl \\*(}e --- 1937,1944 ---- .if!\\n(;P-1 .if \\nN 'sp .if!\\n(;P-1 .if \\n(:S .tl \\*(}t .if!\\n(;P-1 .if !\\nN .tl \\*(}t + .\" String ]n is addressee of letter. + .\" --Joe Wells .if\\n(;P-1 .ie \w'\\*(]n' .tl '\\*(]n - \\nP''' .el.tl \\*(}t 'if!\\n(;P%2 'tl \\*(}e *************** *** 1928,1938 **** .tlBell System except under written agreement. \} .if\\n(!K .tl .)R ! .af;P \\gP ! .afP 1 ! .nr;P \\nP ! .afP \\g(;P ! .af;P 1 .ie!\\n(;P%2 .tl \\*(}f .el.tl \\*(}p .ie\\n(;P=1 \{\ --- 1977,1994 ---- .tlBell System except under written agreement. \} .if\\n(!K .tl .)R ! .\" Next five lines used to be: ! .\" .af;P \\gP ! .\" .afP 1 ! .\" .nr;P \\nP ! .\" .afP \\g(;P ! .\" .af;P 1 ! .\" --Joe Wells ! .af ;P 1 ! .af P 1 ! .nr ;P \\nP ! .if '\\*(Pf'' .ds Pf 1 ! .af P \\*(Pf .ie!\\n(;P%2 .tl \\*(}f .el.tl \\*(}p .ie\\n(;P=1 \{\ *************** *** 2625,2634 **** .tmERROR: MM package read twice .ab \} .ds]Z MM DEFINED ! .if!\w'\gE' .nr E 1 .if!\nL .nr L 11i .pl\nLu ! .if!\w'\gO' .nr O .963i .po\nOu .if\nP .nr P -1 .nrP \nP 1 --- 2681,2701 ---- .tmERROR: MM package read twice .ab \} .ds]Z MM DEFINED ! .\" Next line used to be: ! .\" .if!\w'\gE' .nr E 1 ! .\" Note, register E can no longer be set from the command line to ! .\" zero. No big loss. Numeric register E controls the font of the ! .\" subject/date/from fields. ! .\" --Joe Wells ! .if !\nE .nr E 1 .if!\nL .nr L 11i .pl\nLu ! .\" The next line used to be this: ! .\" .if!\w'\gO' .nr O .963i ! .\" Note, you can no longer set register O from the command line ! .\" to zero. Register O controls the page offset. ! .\" --Joe Wells ! .if!\nO .nr O .963i .po\nOu .if\nP .nr P -1 .nrP \nP 1