extern struct s
*frame
, *stk
, *nxf
;
extern char obuf
[OBUFSZ
];
extern struct sgttyb ttys
;
if((i
=c
) & MOT
){pchar1(i
); return;}
j
= (tlss
>>9) | ((i
&~0777)>>3);
if(j
> dip
->blss
)dip
->blss
= j
;
if(j
> dip
->alss
)dip
->alss
= j
;
if(dip
== &d
[0])j
= eschar
;
i
= (trtab
[j
] & BMASK
) | (i
& ~CMASK
);
if(j
== '\n')dip
->alss
= dip
->blss
= 0;
if(no_out
|| (j
== FILLER
))return;
for(k
=chtab
; *++k
!= j
; k
++)
if(obufp
== (obuf
+ OBUFSZ
+ ascii
- 1))flusho();
while(*i
!= 0)oput(*i
++);
while((ptid
=open(ptname
,1)) < 0){
if(++waitf
<=2)prstr("Waiting for Typesetter.\n");
ttys
.sg_flags
&= ~t
.breset
;
write(ptid
, t
.twinit
, p
-t
.twinit
-1);
toolate
+= write(ptid
, obuf
, obufp
-obuf
);
if(control(i
,0))longjmp(sjbuf
,1);
if(!gflag
)lead
+= TRAILER
;
if(!gflag
)for(i
=8; i
>0; i
--)oput(T_PAD
);
if(stopmesg
)prstr("Troff finished.\n");
signal(SIGTERM
, SIG_IGN
);
struct {int use
; int uid
;} a
;
if((ptid
!= 1) && paper
){
write(acctf
,(char *)&a
,sizeof(a
));
if(toolate
|| skip() || !getname() || (pipe(id
) == -1) ||
prstr("Pipe not created.\n");