From dc98ba4190267925f50e4082f7ab5109d5f05921 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Sat, 2 Sep 2006 23:26:07 +0000 Subject: [PATCH] StringToFloat overload. Returns true if the entire string is a valid, finite float. --- stepmania/src/RageUtil.cpp | 9 +++++++++ stepmania/src/RageUtil.h | 1 + 2 files changed, 10 insertions(+) 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 );