/* text.c 4.2 83/02/12 */
int lf
, rf
; /* temporary spots for left and right fonts */
text(t
,p1
) int t
; char *p1
; {
eht
[yyval
] = VERT(6 * ((ps
>6)?ps
:6)); /* ht in machine units */
eht
[yyval
] = VERT(2); /* 2 half-spaces */
lfont
[yyval
] = rfont
[yyval
] = ROM
;
else if ((tp
= lookup(&restbl
, p1
, NULL
)) != NULL
)
for (csp
=psp
=0; (c
=p1
[psp
++])!='\0';) {
lf
= rf
; /* save first */
error(FATAL
,"converted token %.25s... too long",p1
);
if(dbg
)printf(".\t%dtext: S%d <- %s; b=%d,h=%d,lf=%c,rf=%c\n",
t
, yyval
, p
, ebase
[yyval
], eht
[yyval
], lfont
[yyval
], rfont
[yyval
]);
printf(".ds %d \"%s\n", yyval
, p
);
trans(c
,p1
) int c
; char *p1
; {
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case ':': case ';': case '!': case '%':
case '(': case '[': case ')': case ']':
shim(); roman(c
); shim(); break;
if (p1
[psp
]=='=') { /* look ahead for == <= >= */
case '\\': /* troff - pass 2 or 3 more chars */
cs
[csp
++] = c
; cs
[csp
++] = c
= p1
[psp
++]; cs
[csp
++] = p1
[psp
++];
if (c
=='(') cs
[csp
++] = p1
[psp
++];
if (c
=='*' && cs
[csp
-1] == '(') {
cs
[csp
++] = '\\'; cs
[csp
++] = 'f'; cs
[csp
++] = rf
==ITAL
? ITAL
: ROM
;
cs
[csp
++] = '\\'; cs
[csp
++] = 'f'; cs
[csp
++] = 'P';
f
= rf
==ITAL
? ITAL
: ROM
;
cs
[csp
++] = '\\'; cs
[csp
++] = '^';
cs
[csp
++] = '\\'; cs
[csp
++] = '|'; /* trying | instead of ^ */
cs
[csp
++] = '\\'; cs
[csp
++] = '^';
f
= ft
==ITAL
? ITAL
: ROM
;
cs
[csp
++] = '\\'; cs
[csp
++] = '|';
cs
[csp
++] = '\\'; cs
[csp
++] = 'f'; cs
[csp
++] = ROM
;
cs
[csp
++] = '\\'; cs
[csp
++] = 'f'; cs
[csp
++] = 'P';
name4(c1
,c2
) int c1
,c2
; {