+grml-scripts (1.1.24) UNRELEASED; urgency=low
+
+ * grml-setlang: do not set $LANGUAGE and $LC_MESSAGES any longer, but
+ instead just set $LANG and $LC_CTYPE. $LC_CTYPE is set to 'en_US.UTF-8'
+ by default and to 'C' if using a ISO system - this should avoid breakages
+ if logging in to a remote system where the according $LANG locale isn't
+ available. Thanks to Gebi and Thorsten 'mira' Glaser for discussing
+ the issue.
+
+ -- Michael Prokop <mika@grml.org> Wed, 08 Jul 2009 00:15:26 +0200
+
grml-scripts (1.1.23) unstable; urgency=low
* Drop symlink for 'service' manpage.
# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
-# Latest change: Mit Sep 05 18:33:23 CEST 2007 [mika]
################################################################################
PN="$(basename $0)"
ewarn "Language ${LANGUAGE} not supported, using default." ; eend 0
fi
+# fallback to C if using an ISO system (which is latin1 for LC_CTYPE);
+# this should prevent users from broken ctype settings if the set
+# locale isn't available on a remote system
+if echo $LANGUAGE | grep -q -- '-iso' ; then
+ LC_CTYPE=C
+else
+ LC_CTYPE=en_US.UTF-8
+fi
+
# read in the file where all the $LANGUAGE stuff is defined
source $LANGFUNC
if ! [ -r $CONFFILE ] ; then
cat > $CONFFILE <<EOF
# File generated by $PN on $(date)
-LANGUAGE=$LANGUAGE
LANG=$LANG
-LC_MESSAGES=$LANG
+LC_CTYPE=$LC_CTYPE
+# LANGUAGE=$LANGUAGE
# TZ=$TZ
# other environment variables you might want to set:
-# LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY
-# LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE
-# LC_MEASUREMENT LC_IDENTIFICATION
-# Notice: set LC_ALL to overwrite all LC_* variables
+# LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY
+# LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS
+# LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION
+#
+# Note: set LC_ALL to overwrite all LC_* variables
+# LC_ALL > LC_* > LANG
+# LANGUAGE is glibc only and binds stronger than LC_ALL
EOF
fi
-setvalue 'LANGUAGE=' $LANGUAGE
-setvalue 'LANG=' $LANG
-setvalue 'LC_MESSAGES=' $LANG
-# setvalue 'TZ=' $TZ
+setvalue 'LANG=' $LANG
+setvalue 'LC_CTYPE=' $LC_CTYPE
retval=$?
case $retval in