|
|
1.1 ! root 1: /* Copyright (c) 1979 Regents of the University of California */ ! 2: ! 3: static char sccsid[] = "@(#)IOSYNC.c 1.5 6/10/81"; ! 4: ! 5: #include "h00vars.h" ! 6: ! 7: /* ! 8: * insure that a usable image is in the buffer window ! 9: */ ! 10: IOSYNC(curfile) ! 11: ! 12: register struct iorec *curfile; ! 13: { ! 14: char *limit, *ptr; ! 15: ! 16: if (curfile->funit & FWRITE) { ! 17: ERROR("%s: Attempt to read, but open for writing\n", ! 18: curfile->pfname); ! 19: return; ! 20: } ! 21: if ((curfile->funit & SYNC) == 0) { ! 22: return; ! 23: } ! 24: if (curfile->funit & EOFF) { ! 25: ERROR("%s: Tried to read past end of file\n", curfile->pfname); ! 26: return; ! 27: } ! 28: curfile->funit &= ~SYNC; ! 29: if (curfile->funit & SPEOLN) { ! 30: curfile->funit &= ~(SPEOLN|EOLN); ! 31: curfile->funit |= EOFF; ! 32: return; ! 33: } ! 34: fread(curfile->fileptr, (int)curfile->fsize, 1, curfile->fbuf); ! 35: if (ferror(curfile->fbuf)) { ! 36: ERROR("%s: Tried to read past end of file\n", curfile->pfname); ! 37: return; ! 38: } ! 39: if (feof(curfile->fbuf)) { ! 40: if (curfile->funit & FTEXT) { ! 41: *curfile->fileptr = ' '; ! 42: if (curfile->funit & EOLN) { ! 43: curfile->funit &= ~EOLN; ! 44: curfile->funit |= EOFF; ! 45: return; ! 46: } ! 47: curfile->funit |= (SPEOLN|EOLN); ! 48: return; ! 49: } ! 50: curfile->funit |= EOFF; ! 51: limit = &curfile->fileptr[curfile->fsize]; ! 52: for (ptr = curfile->fileptr; ptr < limit; ) ! 53: *ptr++ = 0; ! 54: return; ! 55: } ! 56: if (curfile->funit & FTEXT) { ! 57: if (*curfile->fileptr == '\n') { ! 58: curfile->funit |= EOLN; ! 59: *curfile->fileptr = ' '; ! 60: return; ! 61: } ! 62: curfile->funit &= ~EOLN; ! 63: } ! 64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.