# | 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 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |