diff --git a/stepmania/src/RageUtil.cpp b/stepmania/src/RageUtil.cpp index 38cef6ca0c..92e32d87d1 100644 --- a/stepmania/src/RageUtil.cpp +++ b/stepmania/src/RageUtil.cpp @@ -1509,6 +1509,15 @@ float StringToFloat( const RString &sString ) return ret; } +bool StringToFloat( const RString &sString, float &fOut ) +{ + char *endPtr; + + fOut = strtof( sString, &endPtr ); + return sString.size() && *endPtr == '\0' && isfinite( fOut ); +} + + const wchar_t INVALID_CHAR = 0xFFFD; /* U+FFFD REPLACEMENT CHARACTER */ wstring RStringToWstring( const RString &s ) diff --git a/stepmania/src/RageUtil.h b/stepmania/src/RageUtil.h index f90471659f..db486ae2ba 100644 --- a/stepmania/src/RageUtil.h +++ b/stepmania/src/RageUtil.h @@ -310,6 +310,7 @@ void MakeLower( char *p, size_t iLen ); void MakeUpper( wchar_t *p, size_t iLen ); void MakeLower( wchar_t *p, size_t iLen ); float StringToFloat( const RString &sString ); +bool StringToFloat( const RString &sString, float &fOut ); RString WStringToRString( const wstring &sString ); RString WcharToUTF8( wchar_t c );