From 8cdb57b3b7f8810eaf87b8d797736c6a318f2cfc Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 29 Apr 2013 10:08:07 +0100 Subject: 31355: _comp_locale tries to sanitise locales but keep CTYPE; use this for subversion completion. --- Completion/Base/Utility/.distfiles | 26 +++++++++++++++++++++----- Completion/Base/Utility/_comp_locale | 13 +++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 Completion/Base/Utility/_comp_locale (limited to 'Completion/Base/Utility') 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 -- cgit 1.4.1