summaryrefslogtreecommitdiff
path: root/Completion/Base/Utility
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Base/Utility')
-rw-r--r--Completion/Base/Utility/.distfiles26
-rw-r--r--Completion/Base/Utility/_comp_locale13
2 files changed, 34 insertions, 5 deletions
diff --git a/Completion/Base/Utility/.distfiles b/Completion/Base/Utility/.distfiles
index 97d86bdbf..91ddf881b 100644
--- a/Completion/Base/Utility/.distfiles
+++ b/Completion/Base/Utility/.distfiles
@@ -1,9 +1,25 @@
DISTFILES_SRC='
.distfiles
-_alternative _call_program _nothing _sub_commands
-_arg_compile _combination _regex_arguments _values
-_arguments _set_command _retrieve_cache _guard
-_cache_invalid _describe _sep_parts _pick_variant
-_call_function _multi_parts _store_cache _regex_words
+_alternative
+_arg_compile
+_arguments
+_cache_invalid
+_call_function
+_comp_locale
_complete_help_generic
+_call_program
+_combination
+_set_command
+_describe
+_multi_parts
+_nothing
+_regex_arguments
+_retrieve_cache
+_sep_parts
+_store_cache
+_sub_commands
+_values
+_guard
+_pick_variant
+_regex_words
'
diff --git a/Completion/Base/Utility/_comp_locale b/Completion/Base/Utility/_comp_locale
new file mode 100644
index 000000000..19870435a
--- /dev/null
+++ b/Completion/Base/Utility/_comp_locale
@@ -0,0 +1,13 @@
+#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=${${(f)"$(locale 2>/dev/null)"}:#^LC_CTYPE=*}
+unset -m LC_\*
+[[ -n $ctype ]] && eval export $ctype
+export LANG=C