patch 8.0.0158: float funcion test fails on MS-Windows
Problem: On MS-Windows some float functions return a different value when
passed unusual values. strtod() doesn't work for "inf" and "nan".
Solution: Accept both results. Fix str2float() for MS-Windows. Also
reorder assert function arguments.
diff --git a/src/eval.c b/src/eval.c
index 9d2c5ac..70fbc88 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -5971,6 +5971,22 @@
char *s = (char *)text;
float_T f;
+ /* MS-Windows does not deal with "inf" and "nan" properly. */
+ if (STRNICMP(text, "inf", 3) == 0)
+ {
+ *value = INFINITY;
+ return 3;
+ }
+ if (STRNICMP(text, "-inf", 3) == 0)
+ {
+ *value = -INFINITY;
+ return 4;
+ }
+ if (STRNICMP(text, "nan", 3) == 0)
+ {
+ *value = NAN;
+ return 3;
+ }
f = strtod(s, &s);
*value = f;
return (int)((char_u *)s - text);