1 /* Copyright (c) 1979 Regents of the University of California */ 2 3 static char sccsid[] = "@(#)RESET.c 1.6 02/08/82"; 4 5 #include "h00vars.h" 6 7 RESET(filep, name, maxnamlen, datasize) 8 9 register struct iorec *filep; 10 char *name; 11 long maxnamlen; 12 long datasize; 13 { 14 if (name == NULL && filep == INPUT && filep->fname[0] == '\0') { 15 if (fseek(filep->fbuf, (long)0, 0)) { 16 PERROR("Could not reset ", filep->pfname); 17 return; 18 } 19 filep->funit &= ~(EOFF | EOLN); 20 filep->funit |= SYNC; 21 return; 22 } 23 filep = GETNAME(filep, name, maxnamlen, datasize); 24 filep->fbuf = fopen(filep->fname, "r"); 25 if (filep->fbuf == NULL) { 26 /* 27 * This allows unnamed temp files to be opened even if 28 * they have not been rewritten yet. We decided to remove 29 * this feature since the standard requires that files be 30 * defined before being reset. 31 * 32 if (filep->funit & TEMP) { 33 filep->funit |= (EOFF | SYNC | FREAD); 34 return; 35 } 36 */ 37 PERROR("Could not open ", filep->pfname); 38 return; 39 } 40 filep->funit |= (SYNC | FREAD); 41 if (filep->funit & FTEXT) 42 filep->funit |= EOLN; 43 if (filep->fblk > PREDEF) { 44 setbuf(filep->fbuf, &filep->buf[0]); 45 } 46 } 47