if(f__curunit
->uend
|| f__curunit
->url
<= f__recpos
|| f__curunit
->url
== 1) return 0;
} while(++f__recpos
< f__curunit
->url
);
if(f__curunit
->uend
) return(-1);
if((ch
=getc(f__cf
))!=EOF
)
if(f__curunit
->url
>=f__recpos
||
err(f__elist
->cierr
,errno
,"readingd");
if(f__recpos
<= f__curunit
->url
|| f__curunit
->url
==1)
err(f__elist
->cierr
,110,"dout");
{ /*what about work done?*/
if(f__curunit
->url
==1 || f__recpos
==f__curunit
->url
)
while(f__recpos
<f__curunit
->url
)
err(f__elist
->cierr
, 110, "dfe");
if(f__curunit
->url
== 1 || f__recpos
== f__curunit
->url
) {
f__hiwater
= f__recpos
= f__cursor
= 0;
if(f__hiwater
> f__recpos
)
f__hiwater
= f__cursor
= 0;
f__formatted
=f__external
=1;
f__cursor
=f__scale
=f__recpos
=0;
if(a
->ciunit
>MXUNIT
|| a
->ciunit
<0)
err(a
->cierr
,101,"startchk");
f__curunit
= &f__units
[a
->ciunit
];
if(f__curunit
->ufd
==NULL
&& fk_open(DIR,FMT
,a
->ciunit
))
if(!f__curunit
->ufmt
) err(a
->cierr
,102,"dfe")
if(!f__curunit
->useek
) err(a
->cierr
,104,"dfe")
(void) fseek(f__cf
,(long)f__curunit
->url
* (a
->cirec
-1),SEEK_SET
);
integer
s_rdfe(a
) cilist
*a
;
integer
s_rdfe(cilist
*a
)
if(f__curunit
->uwrt
&& f__nowreading(f__curunit
))
err(a
->cierr
,errno
,"read start");
f__dorevert
= f__donewrec
= y_err
;
err(a
->cierr
,100,"read start");
integer
s_wdfe(a
) cilist
*a
;
integer
s_wdfe(cilist
*a
)
if(n
=c_dfe(a
)) return(n
);
if(f__curunit
->uwrt
!= 1 && f__nowwriting(f__curunit
))
err(a
->cierr
,errno
,"startwrt");
err(a
->cierr
,100,"startwrt");