diff --git a/ChangeLog b/ChangeLog index 10c17d8b5..f5468b161 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-05-04 Peter Stephenson + + * 31369: Completion/Base/Utility/_comp_locale: action if locale + command is not usable. + 2013-04-29 Bart Schaefer * 31361: Src/init.c: handle negative optno ("no" prefix used) diff --git a/Completion/Base/Utility/_comp_locale b/Completion/Base/Utility/_comp_locale index 19870435a..e55338b97 100644 --- a/Completion/Base/Utility/_comp_locale +++ b/Completion/Base/Utility/_comp_locale @@ -7,7 +7,14 @@ # This exports new locale settings, so should only # be run in a subshell. A typical use is in a $(...). -local ctype=${${(f)"$(locale 2>/dev/null)"}:#^LC_CTYPE=*} -unset -m LC_\* -[[ -n $ctype ]] && eval export $ctype +local ctype + +if ctype=${${(f)"$(locale 2>/dev/null)"}:#^LC_CTYPE=*}; then + unset -m LC_\* + [[ -n $ctype ]] && eval export $ctype +else + ctype=${LC_ALL:-${LC_CTYPE:-${LANG:-C}}} + unset -m LC_\* + export LC_CTYPE=$ctype +fi export LANG=C