fix NaN issue on lang and region tizen_2.1 2.1b_release 2.2_release accepted/tizen_2.1/20130426.150225 submit/tizen_2.1/20130426.145558 submit/tizen_2.2/20130714.145917
authorshy81.shin <shy81.shin@samsung.com>
Fri, 26 Apr 2013 08:33:25 +0000 (17:33 +0900)
committershy81.shin <shy81.shin@samsung.com>
Fri, 26 Apr 2013 08:33:25 +0000 (17:33 +0900)
i18n/digitlst.cpp [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 1ae9027..d118036
@@ -741,6 +741,14 @@ DigitList::set(double source)
     sprintf(rep, "%+1.*e", MAX_DBL_DIGITS - 1, source);
     U_ASSERT(uprv_strlen(rep) < sizeof(rep));
 
+    // uprv_decNumberFromString() will parse the string expecting '.' as a
+    // decimal separator, however sprintf() can use ',' in certain locales.
+    // Overwrite a ',' with '.' here before proceeding.
+    char *decimalSeparator = strchr(rep, ',');
+    if (decimalSeparator != NULL) {
+        *decimalSeparator = '.';
+    }
+
     // Create a decNumber from the string.
     uprv_decNumberFromString(fDecNumber, rep, &fContext);
     uprv_decNumberTrim(fDecNumber);