summaryrefslogtreecommitdiff
path: root/Completion/Base/Utility/_comp_locale
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Base/Utility/_comp_locale')
-rw-r--r--Completion/Base/Utility/_comp_locale20
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