#define FIO_IMP #include "fio.h" #include <libc.h> long Fseek(fd, n, cmd) long n; { register Fbuffer *f; register long dest, k; FIOSET(f, fd); dest = SEEK(fd, n, cmd); if(dest < 0) return(dest); k = f->end-f->lnext; if((dest >= f->offset) || (dest < f->offset-k)){ FIORESET(f); f->offset = dest; } else { f->next = f->lnext + (dest-(f->offset-k)); SEEK(fd, f->offset, 0); } return(dest); }