|
|
1.1 ! root 1: # include "e.h" ! 2: ! 3: fromto(p1, p2, p3) ! 4: int p1, p2, p3; ! 5: { ! 6: float b, h1, b1, t; ! 7: int subps; ! 8: ! 9: yyval = salloc(); ! 10: lfont[yyval] = rfont[yyval] = 0; ! 11: h1 = eht[yyval] = eht[p1]; ! 12: b1 = ebase[p1]; ! 13: b = 0; ! 14: subps = ps; ! 15: ps += deltaps; ! 16: nrwid(p1, ps, p1); ! 17: printf(".nr %d \\n(%d\n", yyval, p1); ! 18: if (p2 > 0) { ! 19: nrwid(p2, subps, p2); ! 20: printf(".if \\n(%d>\\n(%d .nr %d \\n(%d\n", p2, yyval, yyval, p2); ! 21: eht[yyval] += eht[p2]; ! 22: b = eht[p2]; ! 23: } ! 24: if (p3 > 0) { ! 25: nrwid(p3, subps, p3); ! 26: printf(".if \\n(%d>\\n(%d .nr %d \\n(%d\n", p3, yyval, yyval, p3); ! 27: eht[yyval] += eht[p3]; ! 28: } ! 29: printf(".ds %d ", yyval); /* bottom of middle box */ ! 30: if (p2 > 0) { ! 31: t = eht[p2]-ebase[p2]+b1; ! 32: printf("\\v'%gm'\\h'\\n(%du-\\n(%du/2u'%s\\*(%d%s", ! 33: REL(t,ps), yyval, p2, DPS(ps,subps), p2, DPS(subps,ps)); ! 34: printf("\\h'-\\n(%du-\\n(%du/2u'\\v'%gm'\\\n", ! 35: yyval, p2, REL(-t,ps)); ! 36: } ! 37: printf("\\h'\\n(%du-\\n(%du/2u'\\*(%d\\h'\\n(%du-\\n(%du/2u'\\\n", ! 38: yyval, p1, p1, yyval, p1); ! 39: if (p3 >0) { ! 40: t = h1-b1+ebase[p3]; ! 41: printf("\\v'%gm'\\h'-\\n(%du-\\n(%du/2u'%s\\*(%d%s\\h'\\n(%du-\\n(%du/2u'\\v'%gm'\\\n", ! 42: REL(-t,ps), yyval, p3, DPS(ps,subps), p3, DPS(subps,ps), yyval, p3, REL(t,ps)); ! 43: } ! 44: printf("\n"); ! 45: ebase[yyval] = b + b1; ! 46: dprintf(".\tS%d <- %d from %d to %d; h=%g b=%g\n", ! 47: yyval, p1, p2, p3, eht[yyval], ebase[yyval]); ! 48: sfree(p1); ! 49: if (p2 > 0) ! 50: sfree(p2); ! 51: if (p3 > 0) ! 52: sfree(p3); ! 53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.