about summary refs log tree commit diff
path: root/Completion/Base
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2013-04-29 10:08:07 +0100
committerPeter Stephenson <pws@zsh.org>2013-04-29 10:08:07 +0100
commit8cdb57b3b7f8810eaf87b8d797736c6a318f2cfc (patch)
tree8bc39447cdf23a4489d0f5a0940c97384e74e2bc /Completion/Base
parent2ea9cd47752de9bd5b791c9394b3f625a35db3c2 (diff)
downloadzsh-8cdb57b3b7f8810eaf87b8d797736c6a318f2cfc.tar.gz
zsh-8cdb57b3b7f8810eaf87b8d797736c6a318f2cfc.tar.xz
zsh-8cdb57b3b7f8810eaf87b8d797736c6a318f2cfc.zip
31355: _comp_locale tries to sanitise locales but keep CTYPE;
use this for subversion completion.
Diffstat (limited to 'Completion/Base')
-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