- // Note that the OpenGL driver might call setlocale() behind-the-scenes,
- // and that might corrupt the returned pointer, so we need to take our own
- // copy of it here.
- char *saved_locale = strdup(setlocale(LC_NUMERIC, NULL));
- setlocale(LC_NUMERIC, "C");
+ locale_t c_locale = newlocale(LC_NUMERIC_MASK, "C", (locale_t)0);
+ locale_t saved_locale = uselocale(c_locale);