OSX/locale: moved command up, so errorchecking also happens

This commit is contained in:
Jens Verwiebe 2012-11-21 14:29:34 +00:00
parent d0b7b0d228
commit d314eef7a7

@ -58,25 +58,25 @@ void bl_locale_set(const char *locale)
// Specify location of dictionaries.
gen.add_messages_path(messages_path);
gen.add_messages_domain(default_domain);
//gen.set_default_messages_domain(default_domain);
//gen.set_default_messages_domain(default_domain);
#if defined (__APPLE__)
// workaround to get osx system locale from user defaults
FILE* fp;
char result [10];
char osx_locale [10];
fp = popen("defaults read .GlobalPreferences AppleLocale","r");
fread(result,1,sizeof(result),fp);
fclose (fp);
sprintf(osx_locale, """%s.UTF-8""", result);
locale = osx_locale;
#endif
if (locale && locale[0]) {
std::locale::global(gen(locale));
}
else {
#if defined (__APPLE__)
// workaround to get osx system locale from user defaults
FILE* fp;
char result [10];
char osx_locale [10];
fp = popen("defaults read .GlobalPreferences AppleLocale","r");
fread(result,1,sizeof(result),fp);
fclose (fp);
sprintf(osx_locale, """%s.UTF-8""", result);
std::locale::global(gen(osx_locale));
#else
std::locale::global(gen(""));
#endif
}
// Note: boost always uses "C" LC_NUMERIC by default!
}