Properly handle empty locale selection

This commit is contained in:
Anthony Rose 2021-02-21 15:40:42 +00:00
parent f4a89b7a25
commit 5a56df3d36

View file

@ -51,17 +51,21 @@ _acp_set_locale () {
list) list)
localectl list-locales localectl list-locales
;; ;;
"")
LANG=C
_acp_locale_selected=1
;;
*) *)
if [ $(localectl list-locales | grep "$_acp_entered_locale" | wc -l) -eq 0 ] if [ $(localectl list-locales | grep "${_acp_entered_locale}" | wc -l) -eq 0 ]
then then
echo "Invalid locale entered." echo "Invalid locale entered."
continue continue
fi fi
if [ -z "$_acp_entered_locale" ]
then
LANG=C.utf8
else
LANG="$_acp_entered_locale" LANG="$_acp_entered_locale"
fi
_acp_locale_selected=1
;;
esac
LC_COLLATE="$LANG" # Alphabetic sorting. LC_COLLATE="$LANG" # Alphabetic sorting.
LC_CTYPE="$LANG" # Interpretation of byte sequences. LC_CTYPE="$LANG" # Interpretation of byte sequences.
LC_IDENTIFICATION="$LANG" # Locale metadata (GNU). LC_IDENTIFICATION="$LANG" # Locale metadata (GNU).
@ -74,12 +78,14 @@ _acp_set_locale () {
LC_MONETARY="$LANG" # Currency display. LC_MONETARY="$LANG" # Currency display.
LC_PAPER="$LANG" # Standard paper size -- A4 or Letter (GNU). LC_PAPER="$LANG" # Standard paper size -- A4 or Letter (GNU).
LC_TELEPHONE="$LANG" # Formats for telephone services (GNU). LC_TELEPHONE="$LANG" # Formats for telephone services (GNU).
if [ ! -z "$_acp_entered_locale" ]
then
rm -f "$HOME/.config/locale.conf" rm -f "$HOME/.config/locale.conf"
locale > "$HOME/.config/locale.conf" locale > "$HOME/.config/locale.conf"
_acp_locale_selected=1 fi
;;
esac
done done
unset _acp_locale_selected
unset _acp_entered_locale
} }
if [ -r "$HOME/.config/locale.conf" ] if [ -r "$HOME/.config/locale.conf" ]