char id_iio[] = "@(#)iio.c 1.2";
* internal (character array) i/o
extern int rd_ed(),rd_ned(),w_ed(),w_ned();
extern int l_read(),l_write();
int z_wnew(),z_rnew(),z_tab();
if(icptr
>= icend
&& !recpos
) /* new rec beyond eof */
if(recpos
++ < svic
->icirlen
) return(*icptr
++);
{ if(c
=='\n') return(z_wnew());
if(recpos
++ < svic
->icirlen
)
else err(errflag
,F_EREREC
,"iio")
err(endflag
,EOF
,"iio") /* NOT STANDARD, end-of-file on writes */
err(errflag
,F_EREREC
,"iio")
{ if(ch
==EOF
|| --recpos
>= svic
->icirlen
) return(OK
);
if(--icptr
< svic
->iciunit
|| recpos
< 0) err(errflag
,F_ERBREC
,"ilio")
doend
= donewrec
= z_rnew
;
doend
= donewrec
= z_wnew
;
dorevert
= doend
= z_rnew
;
dorevert
= doend
= z_wnew
;
icend
= a
->iciunit
+ a
->icirnum
*a
->icirlen
;
if(pars_f(fmtbuf
)) err(errflag
,F_ERFMT
,"ifio")
icptr
= a
->iciunit
+ recnum
*a
->icirlen
;
icptr
= svic
->iciunit
+ (++recnum
)*svic
->icirlen
;
recpos
= reclen
= cursor
= 0;
{ icptr
+= (reclen
- recpos
);
while(recpos
< svic
->icirlen
) (*putn
)(' ');
recpos
= reclen
= cursor
= 0;
if(reclen
< recpos
) reclen
= recpos
;
if((recpos
+ cursor
) < 0) return(F_ERBREC
);
if(!reading
&& (cursor
-n
) > 0)
while(cursor
--) if(n
=(*putn
)(' ')) return(n
);
sequential
= formatted
= LISTDIRECTED
;
icend
= icptr
+ a
->icirlen
* a
->icirnum
;