--- ray/src/util/rmatrix.c 2023/12/05 01:06:10 2.70 +++ ray/src/util/rmatrix.c 2023/12/05 21:45:39 2.72 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: rmatrix.c,v 2.70 2023/12/05 01:06:10 greg Exp $"; +static const char RCSid[] = "$Id: rmatrix.c,v 2.72 2023/12/05 21:45:39 greg Exp $"; #endif /* * General matrix operations. @@ -374,14 +374,15 @@ rmx_load(const char *inspec, RMPref rmp) fp = stdin; else if (inspec[0] == '!') fp = popen(inspec+1, "r"); - else if (rmp != RMPnone) { + else { const char *sp = inspec; /* check suffix */ while (*sp) ++sp; while (sp > inspec && sp[-1] != '.') --sp; if (!strcasecmp(sp, "XML")) { /* assume it's a BSDF */ - CMATRIX *cm = rmp==RMPtrans ? cm_loadBTDF(inspec) : + CMATRIX *cm = rmp==RMPnone ? (CMATRIX *)NULL : + rmp==RMPtrans ? cm_loadBTDF(inspec) : cm_loadBRDF(inspec, rmp==RMPreflB) ; if (!cm) return(NULL); @@ -449,7 +450,7 @@ rmx_write_ascii(const double *dp, int nc, int len, FIL { while (len-- > 0) { int k = nc; - while (nc-- > 0) + while (k-- > 0) fprintf(fp, " %.7e", *dp++); fputc('\t', fp); }