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

Comparing ray/src/rt/rv2.c (file contents):
Revision 1.24 by greg, Thu Jul 18 16:37:59 1991 UTC vs.
Revision 1.29 by greg, Fri Oct 11 12:12:40 1991 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1987 Regents of the University of California */
1 > /* Copyright (c) 1991 Regents of the University of California */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ LBL";
# Line 22 | Line 22 | static char SCCSid[] = "$SunId$ LBL";
22  
23   #define  CTRL(c)        ('c'-'@')
24  
25 + extern char  VersionID[];
26   extern char  *progname;
27 + extern char  *octname;
28  
29  
30   getframe(s)                             /* get a new frame */
# Line 306 | Line 308 | char  *str, *dsc;
308   int  typ;
309   register union {int i; double d; COLOR C;}  *ptr;
310   {
311 +        extern char  *index();
312          int  i0;
313          double  d0, d1, d2;
314          char  buf[48];
# Line 339 | Line 342 | register union {int i; double d; COLOR C;}  *ptr;
342                          sprintf(buf, " (%c): ", ptr->i ? 'y' : 'n');
343                          (*dev->comout)(buf);
344                          (*dev->comin)(buf, NULL);
345 +                        if (buf[0] == '\0' ||
346 +                                        index("yY+1tTnN-0fF", buf[0]) == NULL)
347 +                                break;
348                  }
349 <                ptr->i = tolower(buf[0]) == 'y';
349 >                ptr->i = index("yY+1tT", buf[0]) != NULL;
350                  break;
351          case 'C':                       /* color */
352                  if (sscanf(str, "%lf %lf %lf", &d0, &d1, &d2) != 3) {
# Line 468 | Line 474 | register char  *s;
474                  break;
475          default:;
476   badparam:
477 +                *sskip(s) = '\0';
478                  sprintf(errmsg, "%s: unknown variable", s);
479                  error(COMMAND, errmsg);
480                  break;
# Line 559 | Line 566 | char  *s;
566                                                  /* write header */
567          fputs(progname, fp);
568          fprintview(&ourview, fp);
569 <        putc('\n', fp);
569 >        if (octname != NULL)
570 >                fprintf(fp, " %s\n", octname);
571 >        else
572 >                putc('\n', fp);
573 >        fprintf(fp, "SOFTWARE= %s\n", VersionID);
574          if (exposure != 1.0)
575                  fputexpos(exposure, fp);
576          if (dev->pixaspect != 1.0)
# Line 569 | Line 580 | char  *s;
580          fputresolu(YMAJOR|YDECR, hresolu, vresolu, fp);
581  
582          scanline = (COLR *)malloc(hresolu*sizeof(COLR));
583 <        if (scanline == NULL)
584 <                error(SYSTEM, "out of memory in writepict");
583 >        if (scanline == NULL) {
584 >                error(COMMAND, "not enough memory!");
585 >                fclose(fp);
586 >                unlink(fname);
587 >                return;
588 >        }
589          for (y = vresolu-1; y >= 0; y--) {
590                  getpictcolrs(y, scanline, &ptrunk, hresolu, vresolu);
591                  if (fwritecolrs(scanline, hresolu, fp) < 0)
592                          break;
593          }
594 +        free((char *)scanline);
595          if (fclose(fp) < 0)
596                  error(COMMAND, "write error");
581        free((char *)scanline);
597   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines