From 13f36d09c49624ffc1f8c9b5cc8a76b7272b4448 Mon Sep 17 00:00:00 2001 From: mrwastl Date: Sat, 28 May 2011 17:20:04 +0200 Subject: problem fixed when parsing skin version number (thanks to 'Keine_Ahnung' for detective work) --- glcdskin/parser.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/glcdskin/parser.c b/glcdskin/parser.c index 957f44f..b52427b 100644 --- a/glcdskin/parser.c +++ b/glcdskin/parser.c @@ -16,6 +16,8 @@ #include #include +#include + #include "parser.h" #include "xml.h" #include "skin.h" @@ -146,7 +148,12 @@ static bool CheckSkinVersion(const std::string & version) { float currv; char* ecptr = NULL; const char* verscstr = version.c_str(); + // only accept floating point numbers with '.' as separator, no ',' + char* curr_locale = setlocale(LC_NUMERIC, "C"); + currv = strtof(verscstr, &ecptr); + setlocale(LC_NUMERIC, curr_locale); + if ( (*ecptr != '\0') || (ecptr == NULL) /*|| (ecptr != verscstr)*/ || ((int)(GLCDSKIN_SKIN_VERSION * 100.0) < (int)(currv * 100.0)) ) -- cgit v1.2.3