diff --git a/bazaar/Functions4U/Functions4U.cpp b/bazaar/Functions4U/Functions4U.cpp index c86afe769..e03a93467 100644 --- a/bazaar/Functions4U/Functions4U.cpp +++ b/bazaar/Functions4U/Functions4U.cpp @@ -2583,6 +2583,7 @@ int SysX(const char *cmd, String& out, String& err, double timeOut, return IsNull(ret) ? 0 : ret; } + END_UPP_NAMESPACE // Dummy functions added after TheIDE change diff --git a/bazaar/Functions4U/Functions4U.h b/bazaar/Functions4U/Functions4U.h index eb37d5278..476819724 100644 --- a/bazaar/Functions4U/Functions4U.h +++ b/bazaar/Functions4U/Functions4U.h @@ -4,7 +4,7 @@ #include #include #ifdef flagGUI -#include +///#include #include #include "GatherTpp.h" #endif @@ -251,7 +251,15 @@ inline T BetweenVal(const T& val, const T& _min, const T& _max) { return max(_min, min(_max, val)); } -#define IsNan(a) ((a) != (a)) +template +inline bool IsNAN(T val) {return std::isnan(val);} + +template +inline T FixFloat(T val) { + if(std::isnan(val) || std::isinf(val) || val == HUGE_VAL || val == -HUGE_VAL) + return Null; + return val; +} template T AngleAdd360(T ang, T val) { @@ -431,10 +439,10 @@ public: } return ret; } - double GetDouble(String separators = "") {return atof(GetText(separators));}; - int GetInt(String separators = "") {return atoi(GetText(separators));}; - long GetLong(String separators = "") {return atol(GetText(separators));}; - uint64 GetUInt64(String separators = "") {return atoll(GetText(separators));}; + double GetDouble(String separators = "") {return FixFloat(atof(GetText(separators)));}; + int GetInt(String separators = "") {return int(FixFloat(atof(GetText(separators))));}; + long GetLong(String separators = "") {return long(FixFloat(atof(GetText(separators))));}; + uint64 GetUInt64(String separators = "") {return (uint64)(FixFloat(atof(GetText(separators))));}; String Right() {return String::Mid(pos+1);} int GetLastSeparator() {return lastSeparator;}