141 lines
5.1 KiB
Diff
141 lines
5.1 KiB
Diff
diff -urNp setup-2.12.1-orig/lang.csh setup-2.12.1/lang.csh
|
|
--- setup-2.12.1-orig/lang.csh 2018-07-13 14:21:55.000000000 +0200
|
|
+++ setup-2.12.1/lang.csh 2019-03-11 08:56:42.000000000 +0100
|
|
@@ -1,8 +1,32 @@
|
|
# /etc/profile.d/lang.csh - exports environment variables, and provides fallback
|
|
# for CJK languages that can't be displayed in console.
|
|
+# Resets the locale if unavailable.
|
|
|
|
-if (${?LANG}) then
|
|
- set LANG_backup=${LANG}
|
|
+unset LANG_backup
|
|
+
|
|
+# If unavailable, reset to the default. Do this before reading in any
|
|
+# explicit user configuration. We simply check if locale emits any
|
|
+# warnings, and assume that the settings are invalid if it does.
|
|
+set locale_error=`(locale >/dev/null) |& cat`
|
|
+if ("${locale_error}" != "") then
|
|
+ if (${?LANG}) then
|
|
+ setenv LANG C.UTF-8
|
|
+ endif
|
|
+ unsetenv LC_ALL
|
|
+ setenv LC_CTYPE C.UTF-8
|
|
+ setenv LC_NUMERIC C.UTF-8
|
|
+ setenv LC_TIME C.UTF-8
|
|
+ setenv LC_COLLATE C.UTF-8
|
|
+ setenv LC_MONETARY C.UTF-8
|
|
+ setenv LC_MESSAGES C.UTF-8
|
|
+ setenv LC_PAPER C.UTF-8
|
|
+ setenv LC_NAME C.UTF-8
|
|
+ setenv LC_ADDRESS C.UTF-8
|
|
+ setenv LC_TELEPHONE C.UTF-8
|
|
+ setenv LC_MEASUREMENT C.UTF-8
|
|
+ setenv LC_IDENTIFICATION C.UTF-8
|
|
+else
|
|
+ set LANG_backup=${?LANG}
|
|
endif
|
|
|
|
foreach config (/etc/locale.conf "${HOME}/.i18n")
|
|
@@ -16,7 +40,7 @@ if (${?LANG_backup}) then
|
|
set LANG="${LANG_backup}"
|
|
endif
|
|
|
|
-unset LANG_backup config
|
|
+unset LANG_backup config locale_error
|
|
|
|
# ----------------------------------------------
|
|
|
|
@@ -24,7 +48,7 @@ unset LANG_backup config
|
|
# If it is set, then we we expect it is user's explicit override (most likely from ~/.i18n file).
|
|
# See 'man 7 locale' for more info about LC_ALL.
|
|
if (${?LC_ALL}) then
|
|
- if (${LC_ALL} != ${LANG}) then
|
|
+ if (${LC_ALL} != ${?LANG} && ${?LANG}) then
|
|
setenv LC_ALL
|
|
else
|
|
unsetenv LC_ALL
|
|
@@ -32,9 +56,9 @@ if (${?LC_ALL}) then
|
|
endif
|
|
|
|
# The ${LANG} manipulation is necessary only in virtual terminal (a.k.a. console - /dev/tty*):
|
|
-set in_console=`tty | grep --quiet -e '/dev/tty'; echo $?`
|
|
+set in_console=`tty | grep -vc -e '/dev/tty'`
|
|
|
|
-if (${?LANG} && ${TERM} == 'linux' && in_console == 0) then
|
|
+if (${?LANG} && ${?TERM} == 'linux' && in_console == 0) then
|
|
set utf8_used=`echo ${LANG} | grep --quiet -E -i -e '^.+\.utf-?8$'; echo $?`
|
|
|
|
if (${utf8_used} == 0) then
|
|
diff -urNp setup-2.12.1-orig/lang.sh setup-2.12.1/lang.sh
|
|
--- setup-2.12.1-orig/lang.sh 2018-07-13 14:21:55.000000000 +0200
|
|
+++ setup-2.12.1/lang.sh 2019-04-09 09:39:35.000000000 +0200
|
|
@@ -1,14 +1,40 @@
|
|
# /etc/profile.d/lang.sh - exports environment variables, and provides fallback
|
|
# for CJK languages that can't be displayed in console.
|
|
+# Resets the locale if unavailable.
|
|
|
|
-if [ -n "${LANG}" ]; then
|
|
+unset LANG_backup
|
|
+
|
|
+# If unavailable, reset to the default. Do this before reading in any
|
|
+# explicit user configuration. We simply check if locale emits any
|
|
+# warnings, and assume that the settings are invalid if it does.
|
|
+if [ -n "$(locale 2>&1 1>/dev/null)" ]; then
|
|
+ [ -z "$LANG" ] || LANG=C.UTF-8
|
|
+ unset LC_ALL
|
|
+ LC_CTYPE="C.UTF-8"
|
|
+ LC_NUMERIC="C.UTF-8"
|
|
+ LC_TIME="C.UTF-8"
|
|
+ LC_COLLATE="C.UTF-8"
|
|
+ LC_MONETARY="C.UTF-8"
|
|
+ LC_MESSAGES="C.UTF-8"
|
|
+ LC_PAPER="C.UTF-8"
|
|
+ LC_NAME="C.UTF-8"
|
|
+ LC_ADDRESS="C.UTF-8"
|
|
+ LC_TELEPHONE="C.UTF-8"
|
|
+ LC_MEASUREMENT="C.UTF-8"
|
|
+ LC_IDENTIFICATION="C.UTF-8"
|
|
+else
|
|
LANG_backup="${LANG}"
|
|
fi
|
|
|
|
for config in /etc/locale.conf "${HOME}/.i18n"; do
|
|
- # NOTE: We are using eval & sed here to avoid invoking of any commands & functions from those files.
|
|
if [ -f "${config}" ]; then
|
|
- eval $(sed -r -e 's/^[[:blank:]]*([[:upper:]_]+)=([[:print:][:digit:]\._-]+|"[[:print:][:digit:]\._-]+")/export \1=\2/;t;d' ${config})
|
|
+ # NOTE: We are using eval & sed here to avoid invoking of any commands & functions from those files.
|
|
+ if [ -x /usr/bin/sed ]; then
|
|
+ eval $(/usr/bin/sed -r -e 's/^[[:blank:]]*([[:upper:]_]+)=([[:print:][:digit:]\._-]+|"[[:print:][:digit:]\._-]+")/export \1=\2/;t;d' ${config})
|
|
+ else
|
|
+ #but if we don't have sed, let's go old way and source it
|
|
+ [ -f "${config}" ] && . "${config}"
|
|
+ fi
|
|
fi
|
|
done
|
|
|
|
@@ -24,7 +50,7 @@ unset LANG_backup config
|
|
# If it is set, then we we expect it is user's explicit override (most likely from ~/.i18n file).
|
|
# See 'man 7 locale' for more info about LC_ALL.
|
|
if [ -n "${LC_ALL}" ]; then
|
|
- if [ "${LC_ALL}" != "${LANG}" ]; then
|
|
+ if [ "${LC_ALL}" != "${LANG}" -a -n "${LANG}" ]; then
|
|
export LC_ALL
|
|
else
|
|
unset LC_ALL
|
|
diff -urNp setup-2.12.1-orig/profile setup-2.12.1/profile
|
|
--- setup-2.12.1-orig/profile 2018-07-13 14:21:55.000000000 +0200
|
|
+++ setup-2.12.1/profile 2018-12-12 09:55:18.000000000 +0100
|
|
@@ -25,10 +25,10 @@ pathmunge () {
|
|
if [ -x /usr/bin/id ]; then
|
|
if [ -z "$EUID" ]; then
|
|
# ksh workaround
|
|
- EUID=`id -u`
|
|
- UID=`id -ru`
|
|
+ EUID=`/usr/bin/id -u`
|
|
+ UID=`/usr/bin/id -ru`
|
|
fi
|
|
- USER="`id -un`"
|
|
+ USER="`/usr/bin/id -un`"
|
|
LOGNAME=$USER
|
|
MAIL="/var/spool/mail/$USER"
|
|
fi
|