Avoid using stale nl_langinfo() pointer

See #17813

(cherry picked from commit a0cb7c1291)
This commit is contained in:
Paul Cornett
2017-03-02 07:48:08 -08:00
parent 6eb5943ed0
commit e4293e9e39

View File

@@ -821,15 +821,11 @@ wxString wxLocale::GetSystemEncodingName()
// to Unix98)
char *oldLocale = strdup(setlocale(LC_CTYPE, NULL));
setlocale(LC_CTYPE, "");
const char *alang = nl_langinfo(CODESET);
encname = wxString::FromAscii(nl_langinfo(CODESET));
setlocale(LC_CTYPE, oldLocale);
free(oldLocale);
if ( alang )
{
encname = wxString::FromAscii( alang );
}
else // nl_langinfo() failed
if (encname.empty())
#endif // HAVE_LANGINFO_H
{
// if we can't get at the character set directly, try to see if it's in