Browse Source

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.
tags/json-c-0.14-20200419
Eric Haszlakiewicz 6 years ago
parent
commit
374ffe87c6
1 changed files with 1 additions and 8 deletions
  1. +1
    -8
      json_tokener.c

+ 1
- 8
json_tokener.c View File

@@ -265,14 +265,7 @@ struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
#ifdef HAVE_USELOCALE
{
locale_t duploc = duplocale(oldlocale);
newloc = newlocale(LC_NUMERIC, "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);
}
newloc = newlocale(LC_NUMERIC_MASK, "C", duploc);
if (newloc == NULL)
{
freelocale(duploc);


Loading…
Cancel
Save