xref: /csrg-svn/usr.bin/f77/libI77/rewind.c (revision 47943)
1*47943Sbostic /*-
2*47943Sbostic  * Copyright (c) 1980 The Regents of the University of California.
3*47943Sbostic  * All rights reserved.
42500Sdlw  *
5*47943Sbostic  * %sccs.include.proprietary.c%
623086Skre  */
723086Skre 
8*47943Sbostic #ifndef lint
9*47943Sbostic static char sccsid[] = "@(#)rewind.c	5.3 (Berkeley) 04/12/91";
10*47943Sbostic #endif /* not lint */
11*47943Sbostic 
1223086Skre /*
132500Sdlw  * rewind.c  -  f77 file rewind
142500Sdlw  */
152500Sdlw 
162500Sdlw #include "fio.h"
172500Sdlw 
1814827Sdlw static char	rwnd[]	= "rewind";
1914827Sdlw 
f_rew(a)202500Sdlw f_rew(a) alist *a;
212500Sdlw {	int n;
222500Sdlw 	unit *b;
232500Sdlw 
242500Sdlw 	lfname = NULL;
252500Sdlw 	elist = NO;
262500Sdlw 	external = YES;			/* for err */
272500Sdlw 	lunit = a->aunit;
282500Sdlw 	errflag = a->aerr;
2914827Sdlw 	if(not_legal(lunit)) err(errflag,F_ERUNIT,rwnd)
302500Sdlw 	b = &units[lunit];
3124094Sjerry 	if(!b->ufd) return(OK);
322500Sdlw 	lfname = b->ufnm;
3314827Sdlw 	if(!b->useek) err(errflag,F_ERNOBKSP,rwnd)
342500Sdlw 	b->uend = NO;
352500Sdlw 	if(b->uwrt)
3614827Sdlw 		if(n=t_runc(b,errflag,rwnd)) return(n);
372500Sdlw 	rewind(b->ufd);
382500Sdlw 	return(OK);
392500Sdlw }
40