194 |
|
{ |
195 |
|
char buf[MAXSTR]; |
196 |
|
int i, n; |
197 |
+ |
register int c; |
198 |
|
/* get file name */ |
199 |
|
if (fgets(buf, MAXSTR, fp) == NULL) |
200 |
|
goto readerr; |
201 |
< |
if ((n = strlen(buf)) < 1) |
201 |
< |
goto readerr; |
202 |
< |
buf[n-1] = '\0'; |
201 |
> |
buf[strlen(buf)-1] = '\0'; |
202 |
|
fhead.filename = savestr(buf); |
203 |
|
/* get layers */ |
204 |
|
fhead.layer[0] = "Worksheet"; |
205 |
|
for (i = 1; i <= 8; i++) { |
206 |
< |
if (fscanf(fp, "Layer No.%d", &n) != 1 || n != i) |
206 |
> |
if (fscanf(fp, "L%*[^0-8]%d", &n) != 1 || n != i) |
207 |
|
goto readerr; |
208 |
< |
while ((n = getc(fp)) != EOF && (n == ' ' || n == '\t')) |
208 |
> |
while ((c = getc(fp)) != EOF && (c == ' ' || c == '\t')) |
209 |
|
; |
210 |
< |
if (n == EOF) |
210 |
> |
if (c == EOF) |
211 |
|
goto readerr; |
212 |
< |
ungetc(n, fp); |
212 |
> |
ungetc(c, fp); |
213 |
|
if (fgets(buf, MAXSTR, fp) == NULL) |
214 |
|
goto readerr; |
215 |
|
buf[strlen(buf)-1] = '\0'; |
487 |
|
} |
488 |
|
/* put out faces */ |
489 |
|
sprintf(buf, "op%d", ++nopens); |
490 |
< |
putface(openmod, buf, "ref", &newp, 0, 4, 7, 3, fp); |
491 |
< |
putface(openmod, buf, "opp", &newp, 1, 2, 6, 5, fp); |
492 |
< |
putface(openmod, buf, "end1", &newp, 3, 7, 6, 2, fp); |
493 |
< |
putface(openmod, buf, "end2", &newp, 0, 1, 5, 4, fp); |
494 |
< |
putface(openmod, buf, "bot", &newp, 0, 3, 2, 1, fp); |
495 |
< |
putface(openmod, buf, "top", &newp, 4, 5, 6, 7, fp); |
490 |
> |
putface(openmod, buf, "ref", &newp, 3, 7, 4, 0, fp); |
491 |
> |
putface(openmod, buf, "opp", &newp, 5, 6, 2, 1, fp); |
492 |
> |
putface(openmod, buf, "end1", &newp, 2, 6, 7, 3, fp); |
493 |
> |
putface(openmod, buf, "end2", &newp, 4, 5, 1, 0, fp); |
494 |
> |
putface(openmod, buf, "bot", &newp, 1, 2, 3, 0, fp); |
495 |
> |
putface(openmod, buf, "top", &newp, 7, 6, 5, 4, fp); |
496 |
|
} |
497 |
|
|
498 |
|
|
505 |
|
ID tmpid; |
506 |
|
|
507 |
|
if (rp->qflg & FL(Q_LAY)) { /* check layer */ |
508 |
< |
tmpid.name = NULL; |
508 |
> |
tmpid.name = fhead.layer[bp->layer]; |
509 |
|
tmpid.number = bp->layer; |
510 |
|
if (!matchid(&tmpid, &idm(rp)[Q_LAY])) |
511 |
|
return(0); |
563 |
|
static char nambuf[32]; |
564 |
|
static int blkcnt = 0; |
565 |
|
register char *nam; |
566 |
< |
register int i; |
566 |
> |
register int i, j; |
567 |
|
|
568 |
+ |
sprintf(nambuf, "l%d.", bp->layer); |
569 |
+ |
i = strlen(nambuf); |
570 |
|
nam = bp->refid.name; |
570 |
– |
if (nam == NULL) |
571 |
– |
nam = fhead.layer[bp->layer]; |
571 |
|
if (nam == NULL) { |
572 |
< |
sprintf(nambuf, "l%d.", bp->layer); |
573 |
< |
i = strlen(nambuf); |
574 |
< |
} else { |
575 |
< |
for (i = 0; i < 12 && nam[i]; i++) { |
576 |
< |
if (nam[i] == ' ' || nam[i] == '\t') |
577 |
< |
nambuf[i] = '_'; |
572 |
> |
nam = fhead.layer[bp->layer]; |
573 |
> |
if (nam != NULL) |
574 |
> |
i = 0; |
575 |
> |
} |
576 |
> |
if (nam != NULL) { |
577 |
> |
for (j = 0; j < 12 && nam[j]; j++) { |
578 |
> |
if (nam[j] == ' ' || nam[j] == '\t') |
579 |
> |
nambuf[i++] = '_'; |
580 |
|
else |
581 |
< |
nambuf[i] = nam[i]; |
581 |
> |
nambuf[i++] = nam[j]; |
582 |
|
} |
583 |
|
nambuf[i++] = '.'; |
584 |
|
} |