X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b37e592bd78ba94abdff0bd964f16000043b3419..9bc95da04ca5541783c9aead91769fcde0651d97:/src/xrc/xmlres.cpp diff --git a/src/xrc/xmlres.cpp b/src/xrc/xmlres.cpp index 5b41a453aa..cd053af857 100644 --- a/src/xrc/xmlres.cpp +++ b/src/xrc/xmlres.cpp @@ -1189,18 +1189,11 @@ float wxXmlResourceHandler::GetFloat(const wxString& param, float defaultv) { wxString str = GetParamValue(param); -#if wxUSE_INTL - // strings in XRC always use C locale but wxString::ToDouble() uses the - // current one, so transform the string to it supposing that the only - // difference between them is the decimal separator - // - // TODO: use wxString::ToCDouble() when we have it - str.Replace(wxT("."), wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, - wxLOCALE_CAT_NUMBER)); -#endif // wxUSE_INTL - + // strings in XRC always use C locale so make sure to use the + // locale-independent wxString::ToCDouble() and not ToDouble() which uses + // the current locale with a potentially different decimal point character double value; - if (!str.ToDouble(&value)) + if (!str.ToCDouble(&value)) value = defaultv; return wx_truncate_cast(float, value); @@ -1996,9 +1989,9 @@ static XRCID_record *XRCID_Records[XRCID_TABLE_SIZE] = {NULL}; static int XRCID_Lookup(const char *str_id, int value_if_not_found = wxID_NONE) { - int index = 0; + unsigned int index = 0; - for (const char *c = str_id; *c != '\0'; c++) index += (int)*c; + for (const char *c = str_id; *c != '\0'; c++) index += (unsigned int)*c; index %= XRCID_TABLE_SIZE; XRCID_record *oldrec = NULL;