ref: b78c9edfb4e91efa4aa61e09feaf3da4848342b0
parent: de1e8f7a3fe80a5c4d14b67440d1b6151354b584
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Wed Apr 9 15:11:50 EDT 2025
sl_read_numtok: simplify nan/inf parsing
--- a/src/read.c
+++ b/src/read.c
@@ -55,26 +55,15 @@
}
}
- if(tok[0] == '+'){
- if(!strcmp(tok, "+NaN") || !strcasecmp(tok, "+nan.0")){
+ if(*tok == '+' || *tok == '-'){
+ if(!strcasecmp(tok+1, "nan.0")){
if(pval)
- *pval = mk_double(D_PNAN);
+ *pval = mk_double(*tok == '+' ? D_PNAN : D_NNAN);
return true;
}
- if(!strcmp(tok, "+Inf") || !strcasecmp(tok, "+inf.0")){
+ if(!strcasecmp(tok+1, "inf.0")){
if(pval)
- *pval = mk_double(D_PINF);
- return true;
- }
- }else if(tok[0] == '-'){
- if(!strcmp(tok, "-NaN") || !strcasecmp(tok, "-nan.0")){
- if(pval)
- *pval = mk_double(D_NNAN);
- return true;
- }
- if(!strcmp(tok, "-Inf") || !strcasecmp(tok, "-inf.0")){
- if(pval)
- *pval = mk_double(D_NINF);
+ *pval = mk_double(*tok == '+' ? D_PINF : D_NINF);
return true;
}
}
--
⑨