ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/writewfobj.c
(Generate patch)

Comparing ray/src/common/writewfobj.c (file contents):
Revision 2.2 by greg, Thu Apr 23 03:19:48 2020 UTC vs.
Revision 2.4 by greg, Fri Dec 18 00:15:47 2020 UTC

# Line 194 | Line 194 | toOBJ(Scene *sc, FILE *fp)
194                                          /* write out each object group */
195          for (i = 0; i < sc->ngrps; i++) {
196                  if (verbose)
197 <                        fprintf(stderr, " Writing faces %s               \r",
197 >                        fprintf(stderr, " Writing faces %-50s\r",
198                                          sc->grpname[i]);
199                  write_group(sc, i, fp);
200          }
# Line 202 | Line 202 | toOBJ(Scene *sc, FILE *fp)
202                  error(SYSTEM, "Error flushing .OBJ output");
203                  return(-1);
204          }
205 +        if (verbose)
206 +                fprintf(stderr, "Wrote %d faces                                                           \n",
207 +                                sc->nfaces);
208          return(sc->nfaces);
209   }
210  
# Line 220 | Line 223 | writeOBJ(Scene *sc, const char *fspec)
223                  if ((fp = popen(fspec+1, "w")) == NULL) {
224                          sprintf(errmsg, "%s: cannot execute", fspec);
225                          error(SYSTEM, errmsg);
226 <                        return(0);
226 >                        return(-1);
227                  }
228          } else
229   #endif
230          if ((fp = fopen(fspec, "w")) == NULL) {
231                  sprintf(errmsg, "%s: cannot open for writing", fspec);
232                  error(SYSTEM, errmsg);
233 <                return(0);
233 >                return(-1);
234          }
235                                                  /* start off header */
236          fprintf(fp, "# Wavefront .OBJ file created by %s\n#\n", progname);
237          n = toOBJ(sc, fp);                      /* write scene */
238   #if POPEN_SUPPORT
239 <        if (fspec[0] == '!')
240 <                pclose(fp);
241 <        else
239 >        if (fspec[0] == '!') {
240 >                if (pclose(fp)) {
241 >                        sprintf(errmsg, "%s: error writing to command\n", fspec);
242 >                        error(SYSTEM, errmsg);
243 >                        return(-1);
244 >                }
245 >        } else
246   #endif
247 <        fclose(fp);                             /* close it */
247 >        fclose(fp);                             /* close it (already flushed) */
248          return(n);
249   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines