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

Comparing ray/src/common/calfunc.c (file contents):
Revision 2.22 by greg, Mon Jun 10 16:52:27 2019 UTC vs.
Revision 2.24 by greg, Wed Jul 24 21:20:28 2019 UTC

# Line 390 | Line 390 | l_if(char *nm)         /* if(cond, then, else) conditional ex
390   static double
391   l_select(char *nm)      /* return argument #(A1+1) */
392   {
393 <        int  n;
393 >        int     narg = nargum();
394 >        double  a1 = argument(1);
395 >        int  n = (int)(a1 + .5);
396  
397 <        n = (int)(argument(1) + .5);
396 <        if (n == 0)
397 <                return(nargum()-1);
398 <        if (n < 1 || n > nargum()-1) {
397 >        if (a1 < -.5 || n >= narg) {
398                  errno = EDOM;
399                  return(0.0);
400          }
401 +        if (!n)         /* asking max index? */
402 +                return(narg-1);
403          return(argument(n+1));
404   }
405  
# Line 408 | Line 409 | l_max(char *nm)                /* general maximum function */
409   {
410          int  n = nargum();
411          int  i = 1;
412 <        int  vmax = argument(1);
412 >        double  vmax = argument(1);
413  
414          while (i++ < n) {
415                  double  v = argument(i);
# Line 424 | Line 425 | l_min(char *nm)                /* general minimum function */
425   {
426          int  n = nargum();
427          int  i = 1;
428 <        int  vmin = argument(1);
428 >        double  vmin = argument(1);
429  
430          while (i++ < n) {
431                  double  v = argument(i);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines