fseekp
needprompt = aret == F_SEEK && fseekp == feobp;
fseekp = feobp = fblocks = 0;
needprompt = intty && fseekp == feobp && aret == F_SEEK;
if (fseekp < fbobp || fseekp > feobp) {
fbobp = feobp = fseekp;
(void) lseek(SHIN, fseekp, SEEK_SET);
if (fseekp == feobp) {
c = fbuf[0][fseekp - fbobp];
fseekp++;
buf = (int) fseekp / BUFSIZ;
if (fseekp >= feobp) {
feobp = fseekp = fblocks * BUFSIZ;
c = fbuf[buf][(int) fseekp % BUFSIZ];
fseekp++;
sb = (int) (fseekp - 1) / BUFSIZ;
fseekp -= BUFSIZ * sb;
fseekp = l->f_seek;
l->f_seek = fseekp;
fseekp = feobp;
fseekp = fbobp = feobp = lseek(SHIN, (off_t) 0, SEEK_CUR);