void cvobject( /* convert an object */ char *fname, FILE *fin ) { extern char *fgetword(); char buf[128], typ[16], nam[128]; int i, n; register int j; if (fgetword(buf, sizeof(buf), fin) == NULL || fgetword(typ, sizeof(typ), fin) == NULL || fgetword(nam, sizeof(nam), fin) == NULL) goto readerr; if (!strcmp(typ, "polygon")) for (j = 0; j < nmarkers; j++) if (!strcmp(buf, marker[j].modin)) { replace(fname, &marker[j], nam, fin); return; } putchar('\n'); fputword(buf, stdout); printf(" %s ", typ); fputword(nam, stdout); putchar('\n'); if (!strcmp(typ, "alias")) { /* alias special case */ if (fgetword(buf, sizeof(buf), fin) == NULL) goto readerr; putchar('\t'); fputword(buf, stdout); putchar('\n'); return; } for (i = 0; i < 3; i++) { /* pass along arguments */ if (fscanf(fin, "%d", &n) != 1) goto readerr; printf("%d", n); for (j = 0; j < n; j++) { if (fgetword(buf, sizeof(buf), fin) == NULL) goto readerr; if (j%3 == 0) putchar('\n'); putchar('\t'); fputword(buf, stdout); } putchar('\n'); } return; readerr: fprintf(stderr, "%s: (%s): read error for %s \"%s\"\n", progname, fname, typ, nam); }
extern void printargs( /* print arguments to a file */ int ac, char **av, FILE *fp ) { while (ac-- > 0) { fputword(*av++, fp); fputc(ac ? ' ' : '\n', fp); } }