1 /* Copyright (c) 1979 Regents of the University of California */
2 
3 static char sccsid[] = "@(#)WRITEF.c 1.2 03/07/81";
4 
5 #include "h00vars.h"
6 #include "h01errs.h"
7 
8 WRITEF(curfile, d1, d2, d3, d4, d5, d6)
9 
10 	register struct iorec	*curfile;
11 	FILE			*d1;
12 	char			*d2;
13 	long			d3, d4, d5, d6;
14 {
15 	if (curfile->funit & FREAD) {
16 		ERROR(EWRITEIT, curfile->pfname);
17 		return;
18 	}
19 #	ifdef VAX
20 		fprintf(d1, d2, d3, d4, d5, d6);
21 #	else
22 		{
23 		register char	*cp;
24 		short		scnt;
25 
26 		scnt = 0;
27 		for (cp = (char *)d2; *cp; )
28 			switch(*cp++) {
29 			case '*':
30 			case 's':
31 			case 'c':
32 				scnt++;
33 			}
34 		switch(scnt) {
35 		case 0:
36 			fprintf(d1, d2, d3, d4);
37 			break;
38 		case 1:
39 			fprintf(d1, d2, (int)d3, d4, d5);
40 			break;
41 		case 2:
42 			fprintf(d1, d2, (int)d3, (int)d4, d5, d6);
43 			break;
44 		default:
45 			fprintf(stderr, "Panic: bad argcount %d to WRITEF\n",
46 				scnt);
47 			ERROR(EWRITE, curfile->pfname);
48 			return;
49 		}
50 	}
51 #	endif VAX
52 	if (ferror(curfile->fbuf)) {
53 		ERROR(EWRITE, curfile->pfname);
54 		return;
55 	}
56 }
57