Kaydet (Commit) 56bc0b1a authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Don't set locale env vars on macOS

macosx_getLocale (via getProcessLocale, both sal/osl/unx/osxlocale.cxx) obtains
from the system a locale string like "en-DE".  (Whether that is even a sane and
recommended way to obtain the system locale on macOS I don't know; but lets
leave it at that for now.)

However, setting a locale env var (LANG, LC_ALL) to such a value causes a
constructor call std::locale("") to throw a std::runtime_error
"collate_byname<char>::collate_byname failed to construct for ", at least on
macOS 10.14.4.  And libdivvun (which might be bundled with a LO extension) is
known to be hit by that, see <https://github.com/divvun/libdivvun/issues/28>
"locale("") gives 'collate_byname<char>::collate_byname failed to construct
for ' on LO on mac".

The code setting LC_ALL/LC_CTYPE/LANG was there ever since
8737d183 "INTEGRATION:
CWS geordi2q14: #111934#: merge CWS ooo111fix2", but for unclear reasons.  Lets
assume that it had no purpose (any longer).

Change-Id: I0b519ad567a713d61f662aa984791db1a91c708c
Reviewed-on: https://gerrit.libreoffice.org/70918
Tested-by: Jenkins
Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
üst 777232d0
...@@ -835,12 +835,6 @@ void imp_getProcessLocale( rtl_Locale ** ppLocale ) ...@@ -835,12 +835,6 @@ void imp_getProcessLocale( rtl_Locale ** ppLocale )
/* return the locale */ /* return the locale */
*ppLocale = parse_locale( locale.getStr() ); *ppLocale = parse_locale( locale.getStr() );
#ifndef IOS
setenv( "LC_ALL", locale.getStr(), 1);
setenv("LC_CTYPE", locale.getStr(), 1 );
setenv("LANG", locale.getStr(), 1 );
#endif
} }
#else #else
/***************************************************************************** /*****************************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment