+ // 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");