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

Comparing ray/src/util/radcompare.c (file contents):
Revision 2.24 by greg, Tue Jun 30 22:53:05 2020 UTC vs.
Revision 2.27 by greg, Thu Feb 18 23:16:35 2021 UTC

# Line 35 | Line 35 | double max_lim = 0.25;         /* difference limit if non-neg
35  
36   int     lin1cnt=0, lin2cnt=0;   /* file line position */
37  
38 + int     comment_c = '\0';       /* comment delimiter for text files */
39 +
40   const char      nsuffix[10][3] = {              /* 1st, 2nd, 3rd, etc. */
41                          "th","st","nd","rd","th","th","th","th","th","th"
42                  };
# Line 111 | Line 113 | usage()
113   {
114          fputs("Usage: ", stderr);
115          fputs(progname, stderr);
116 <        fputs(" [-h][-s|-w|-v][-rel min_test][-rms epsilon][-max epsilon] reference test\n",
116 >        fputs(" [-h][-c#][-s|-w|-v][-rel min_test][-rms epsilon][-max epsilon] reference test\n",
117                          stderr);
118          exit(2);
119   }
# Line 149 | Line 151 | read_line(LINEBUF *bp, FILE *fp)
151                  if (!bp->str)
152                          goto memerr;
153          }
154 +        if (comment_c) {                /* elide comment? */
155 +                char    *cp = sskip2(bp->str,0);
156 +                if (*cp == comment_c) {
157 +                        *cp++ = '\n';
158 +                        *cp = '\0';
159 +                        bp->len = cp - bp->str;
160 +                }
161 +        }
162          return(bp->len);
163   memerr:
164          fprintf(stderr,
# Line 187 | Line 197 | real_check(double r1, double r2)
197  
198          if (rel_min > 0) {      /* doing relative differences? */
199                  double  av2 = .25*(r1*r1 + 2.*fabs(r1*r2) + r2*r2);
200 <                if (av2 > rel_min*rel_min)
201 <                        diff2 /= av2;
200 >                if (av2 < rel_min*rel_min)
201 >                        av2 = rel_min*rel_min;
202 >                diff2 /= av2;
203          }
204          if (max_lim >= 0 && diff2 > max_lim*max_lim) {
205                  if (report != REP_QUIET)
# Line 475 | Line 486 | identify_type(const char *name, FILE *fin, LUTAB *htp)
486          }
487          if (c)
488                  return(TYP_BINARY);
478        SET_FILE_TEXT(fin);                     /* originally set to binary */
489          return(TYP_TEXT);
490   badeof:
491          if (report != REP_QUIET) {
# Line 558 | Line 568 | compare_text()
568  
569          if (report >= REP_VERBOSE) {
570                  fputs(progname, stdout);
571 <                fputs(": comparing inputs as ASCII text\n", stdout);
571 >                fputs(": comparing inputs as ASCII text", stdout);
572 >                if (comment_c) {
573 >                        fputs(", ignoring comments starting with '", stdout);
574 >                        fputc(comment_c, stdout);
575 >                        fputc('\'', stdout);
576 >                }
577 >                fputc('\n', stdout);
578          }
579 +        SET_FILE_TEXT(f1in);                    /* originally set to binary */
580 +        SET_FILE_TEXT(f2in);
581          init_line(&l1buf); init_line(&l2buf);   /* compare a line at a time */
582          while (read_line(&l1buf, f1in)) {
583                  lin1cnt++;
# Line 898 | Line 916 | main(int argc, char *argv[])
916                  switch (argv[a][1]) {
917                  case 'h':                       /* ignore header info. */
918                          ign_header = !ign_header;
919 +                        continue;
920 +                case 'c':                       /* ignore comments */
921 +                        comment_c = argv[a][2];
922                          continue;
923                  case 's':                       /* silent operation */
924                          report = REP_QUIET;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines