The second call to newlocale() with LC_TIME accidentally made things
work because LC_TIME == LC_NUMERIC_MASK on some platforms.
#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);