Annotation of 42BSD/usr.lib/libpc/RESET.c, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1979 Regents of the University of California */
                      2: 
                      3: static char sccsid[] = "@(#)RESET.c 1.7 7/23/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;
                     20:                filep->funit |= (SYNC | EOLN);
                     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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.