mirror of
https://github.com/json-c/json-c.git
synced 2026-04-05 05:19:07 +08:00
Issue #463: fix newlocale() call to use LC_NUMERIC_MASK instead of LC_NUMERIC, and remove incorrect comment.
The second call to newlocale() with LC_TIME accidentally made things work because LC_TIME == LC_NUMERIC_MASK on some platforms.
This commit is contained in:
@@ -265,14 +265,7 @@ struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
|
|||||||
#ifdef HAVE_USELOCALE
|
#ifdef HAVE_USELOCALE
|
||||||
{
|
{
|
||||||
locale_t duploc = duplocale(oldlocale);
|
locale_t duploc = duplocale(oldlocale);
|
||||||
newloc = newlocale(LC_NUMERIC, "C", duploc);
|
newloc = newlocale(LC_NUMERIC_MASK, "C", duploc);
|
||||||
// XXX at least Debian 8.4 has a bug in newlocale where it doesn't
|
|
||||||
// change the decimal separator unless you set LC_TIME!
|
|
||||||
if (newloc)
|
|
||||||
{
|
|
||||||
duploc = newloc; // original duploc has been freed by newlocale()
|
|
||||||
newloc = newlocale(LC_TIME, "C", duploc);
|
|
||||||
}
|
|
||||||
if (newloc == NULL)
|
if (newloc == NULL)
|
||||||
{
|
{
|
||||||
freelocale(duploc);
|
freelocale(duploc);
|
||||||
|
|||||||
Reference in New Issue
Block a user