diff options
Diffstat (limited to 'Completion/Base/Utility/_comp_locale')
-rw-r--r-- | Completion/Base/Utility/_comp_locale | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Completion/Base/Utility/_comp_locale b/Completion/Base/Utility/_comp_locale new file mode 100644 index 000000000..e55338b97 --- /dev/null +++ b/Completion/Base/Utility/_comp_locale @@ -0,0 +1,20 @@ +#autoload + +# Arrange that LC_CTYPE retains the current setting so characters in +# file names are handled properly, but other locales are set to C so +# that the completion system can process output without surprises. + +# This exports new locale settings, so should only +# be run in a subshell. A typical use is in a $(...). + +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 |