11716Smckusick /* Copyright (c) 1979 Regents of the University of California */
21716Smckusick 
3*3040Smckusic static char sccsid[] = "@(#)WRITEF.c 1.2 03/07/81";
41716Smckusick 
51716Smckusick #include "h00vars.h"
61716Smckusick #include "h01errs.h"
71716Smckusick 
81716Smckusick WRITEF(curfile, d1, d2, d3, d4, d5, d6)
91716Smckusick 
101716Smckusick 	register struct iorec	*curfile;
11*3040Smckusic 	FILE			*d1;
12*3040Smckusic 	char			*d2;
13*3040Smckusic 	long			d3, d4, d5, d6;
141716Smckusick {
151716Smckusick 	if (curfile->funit & FREAD) {
161716Smckusick 		ERROR(EWRITEIT, curfile->pfname);
171716Smckusick 		return;
181716Smckusick 	}
19*3040Smckusic #	ifdef VAX
20*3040Smckusic 		fprintf(d1, d2, d3, d4, d5, d6);
21*3040Smckusic #	else
22*3040Smckusic 		{
23*3040Smckusic 		register char	*cp;
24*3040Smckusic 		short		scnt;
25*3040Smckusic 
26*3040Smckusic 		scnt = 0;
27*3040Smckusic 		for (cp = (char *)d2; *cp; )
28*3040Smckusic 			switch(*cp++) {
29*3040Smckusic 			case '*':
30*3040Smckusic 			case 's':
31*3040Smckusic 			case 'c':
32*3040Smckusic 				scnt++;
33*3040Smckusic 			}
34*3040Smckusic 		switch(scnt) {
35*3040Smckusic 		case 0:
36*3040Smckusic 			fprintf(d1, d2, d3, d4);
37*3040Smckusic 			break;
38*3040Smckusic 		case 1:
39*3040Smckusic 			fprintf(d1, d2, (int)d3, d4, d5);
40*3040Smckusic 			break;
41*3040Smckusic 		case 2:
42*3040Smckusic 			fprintf(d1, d2, (int)d3, (int)d4, d5, d6);
43*3040Smckusic 			break;
44*3040Smckusic 		default:
45*3040Smckusic 			fprintf(stderr, "Panic: bad argcount %d to WRITEF\n",
46*3040Smckusic 				scnt);
47*3040Smckusic 			ERROR(EWRITE, curfile->pfname);
48*3040Smckusic 			return;
49*3040Smckusic 		}
50*3040Smckusic 	}
51*3040Smckusic #	endif VAX
521716Smckusick 	if (ferror(curfile->fbuf)) {
531716Smckusick 		ERROR(EWRITE, curfile->pfname);
541716Smckusick 		return;
551716Smckusick 	}
561716Smckusick }
57