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