File:  [CSRG BSD Unix] / 41BSD / lib / libpc / RESET.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:12:53 2018 UTC (8 years, 1 month ago) by root
Branches: MAIN, BSD
CVS tags: HEAD, BSD41
BSD 4.1

/* Copyright (c) 1979 Regents of the University of California */

static char sccsid[] = "@(#)RESET.c 1.1 10/29/80";

#include "h00vars.h"
#include "h01errs.h"

RESET(filep, name, maxnamlen, datasize)

	register struct iorec	*filep;
	char			*name;
	int			maxnamlen;
	int			datasize;
{
	if (name == NULL && filep == INPUT && filep->fname[0] == '\0') {
		if (rewind(filep->fbuf)) {
			ERROR(ESEEK, filep->pfname);
			return;
		}
		filep->funit &= ~(EOFF | EOLN);
		filep->funit |= SYNC;
		return;
	}
	filep = GETNAME(filep, name, maxnamlen, datasize);
	filep->fbuf = fopen(filep->fname, "r");
	if (filep->fbuf == NULL) {
		if (filep->funit & TEMP) {
			filep->funit |= (EOFF | SYNC | FREAD);
			return;
		}
		ERROR(EOPEN, filep->pfname);
		return;
	}
	filep->funit |= (SYNC | FREAD);
	if (filep->fblk > PREDEF) {
		setbuf(filep->fbuf, &filep->buf[0]);
	}
}

unix.superglobalmegacorp.com

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