diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2020-02-05 09:40:56 +0100 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2020-02-05 15:46:15 +0100 |
commit | 25649502e08a52087dea5e482d34a1d4150f0930 (patch) | |
tree | ea0d7fe84692705124ad6b0caf4dd4cf521bcf0d /desktop/scripts | |
parent | d41d7ecb60fb38204fafcb1aa4595992721855e6 (diff) |
tdf#130080 soffice.sh: Avoid exporting empty LC_ALL
The previous way of doing
LO_SAVE_LC_ALL="$LC_ALL"
LC_ALL=C
export LC_ALL
# ... (call some tools,...)
LC_ALL="$LO_SAVE_LC_ALL"
resulted in the LC_ALL environment variable explicity being
set to an empty string in case it was not set at all previously.
For some reason, an LC_ALL explicitly set to an empty string
(other than an unset LC_ALL) makes the system ICU on various
Linux distributions assume an "US-ASCII" encoding, even if the
locale is otherwise configured to be a UTF-8 one.
Since the corresponding detection from ICU is used in the
KF5/Qt stack, that resulted in the Plasma-native file picker
assuming an ASCII-encoding, and thus having problems with
files containing non-ASCII characters.
To avoid this, don't export LC_ALL if unset or set to an
empty string.
A big thanks to frinring on IRC #kde-devel for the analysis
of why the Plasma-native file picker is affected by LC_ALL being
set to an empty string!
I could also reproduce that the following sample program run
with 'LC_ALL=' on KDE Neon Developer edition printed "US-ASCII"
when using the system ICU, while it printed "UTF-8" when using
a self-built ICU as of current master (commit
d6b88d49e3be7096baf3828776c2b482a8ed1780) instead, but did not
further investigate why:
#include <unicode/ucnv.h>
#include <iostream>
int main() {
std::cout << ucnv_getDefaultName();
}
Change-Id: Idee88f200b6edecdb2633ed6e6fa70b370ffcf0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88003
Reviewed-by: Michael Stahl <michael.stahl@cib.de>
Tested-by: Jenkins
Diffstat (limited to 'desktop/scripts')
-rwxr-xr-x | desktop/scripts/soffice.sh | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/desktop/scripts/soffice.sh b/desktop/scripts/soffice.sh index 026f7f022c78..415ea047361d 100755 --- a/desktop/scripts/soffice.sh +++ b/desktop/scripts/soffice.sh @@ -169,8 +169,12 @@ AIX) ;; esac -# restore locale setting -LC_ALL="$LO_SAVE_LC_ALL" +# restore locale setting, avoiding to export empty LC_ALL, s. tdf#130080 +if [ -n "$LO_SAVE_LC_ALL" ]; then + LC_ALL="$LO_SAVE_LC_ALL" +else + unset LC_ALL +fi # run soffice.bin directly when you want to get the backtrace if [ -n "$GDBTRACECHECK" ] ; then |