mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 22:11:54 +02:00
31355: _comp_locale tries to sanitise locales but keep CTYPE;
use this for subversion completion.
This commit is contained in:
parent
2ea9cd4775
commit
8cdb57b3b7
4 changed files with 48 additions and 12 deletions
|
@ -1,3 +1,10 @@
|
|||
2013-04-29 Peter Stephenson <p.stephenson@samsung.com>
|
||||
|
||||
* 31355: Completion/Base/Utility/.distfiles,
|
||||
Completion/Base/Utility/_comp_locale,
|
||||
Completion/Unix/Command/_subversion: _comp_locale tries to
|
||||
sanitise locales but keep CTYPE; use this for subversion completion.
|
||||
|
||||
2013-04-25 Ramkumar Ramachandra <artagnon@gmail.com>
|
||||
|
||||
* 31288: Completion/Unix/Command/_git: _git: fix shortlog
|
||||
|
|
|
@ -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
|
||||
'
|
||||
|
|
13
Completion/Base/Utility/_comp_locale
Normal file
13
Completion/Base/Utility/_comp_locale
Normal file
|
@ -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
|
|
@ -20,7 +20,7 @@ _svn () {
|
|||
typeset -gHA _svn_cmds
|
||||
if _cache_invalid svn-cmds || ! _retrieve_cache svn-cmds; then
|
||||
_svn_cmds=(
|
||||
${=${(f)${${"$(LC_ALL=C _call_program commands svn help)"#l#*Available subcommands:}%%Subversion is a tool*}}/(#s)[[:space:]]#(#b)([a-z]##)[[:space:]]#(\([a-z, ?]##\))#/$match[1] :$match[1]${match[2]:+:${${match[2]//[(),]}// /:}}:}
|
||||
${=${(f)${${"$(_comp_locale; _call_program commands svn help)"#l#*Available subcommands:}%%Subversion is a tool*}}/(#s)[[:space:]]#(#b)([a-z]##)[[:space:]]#(\([a-z, ?]##\))#/$match[1] :$match[1]${match[2]:+:${${match[2]//[(),]}// /:}}:}
|
||||
)
|
||||
_store_cache svn-cmds _svn_cmds
|
||||
fi
|
||||
|
@ -41,14 +41,14 @@ _svn () {
|
|||
if _cache_invalid svn-${cmd}-usage || \
|
||||
! _retrieve_cache svn-${cmd}-usage;
|
||||
then
|
||||
usage=${${(M)${(f)"$(LC_ALL=C _call_program options svn help $cmd)"}:#usage:*}#usage:*$cmd] }
|
||||
usage=${${(M)${(f)"$(_comp_locale; _call_program options svn help $cmd)"}:#usage:*}#usage:*$cmd] }
|
||||
_store_cache svn-${cmd}-usage usage
|
||||
fi
|
||||
if _cache_invalid svn-${cmd}-usage || \
|
||||
! _retrieve_cache svn-${cmd}-args;
|
||||
then
|
||||
args=(
|
||||
${=${${${(M)${(f)"$(LC_ALL=C _call_program options svn help $cmd)"#(*Valid options:|(#e))}:#* :*}%% #:*}/ (arg|ARG)/:arg:}/(#b)(-##)([[:alpha:]]##) \[--([a-z-]##)\](:arg:)#/(--$match[3])$match[1]$match[2]$match[4] ($match[1]$match[2])--$match[3]$match[4]}
|
||||
${=${${${(M)${(f)"$(_comple_local; _call_program options svn help $cmd)"#(*Valid options:|(#e))}:#* :*}%% #:*}/ (arg|ARG)/:arg:}/(#b)(-##)([[:alpha:]]##) \[--([a-z-]##)\](:arg:)#/(--$match[3])$match[1]$match[2]$match[4] ($match[1]$match[2])--$match[3]$match[4]}
|
||||
)
|
||||
while (( idx=$args[(I)*--c(l|hangelist):arg:] )); do
|
||||
args[(I)*--c(l|hangelist):arg:]=( \*{--cl,--changelist}':change list:_svn_changelists' )
|
||||
|
@ -157,7 +157,7 @@ _svnadmin () {
|
|||
if [[ -n $state ]] && (( ! $+_svnadmin_cmds )); then
|
||||
typeset -gHA _svnadmin_cmds
|
||||
_svnadmin_cmds=(
|
||||
${=${(f)${${"$(LC_ALL=C _call_program commands svnadmin help)"#l#*Available subcommands:}}}/(#s)[[:space:]]#(#b)([-a-z]##)[[:space:]]#(\([a-z, ?]##\))#/$match[1] :$match[1]${match[2]:+:${${match[2]//[(),]}// /:}}:}
|
||||
${=${(f)${${"$(_comp_locale; _call_program commands svnadmin help)"#l#*Available subcommands:}}}/(#s)[[:space:]]#(#b)([-a-z]##)[[:space:]]#(\([a-z, ?]##\))#/$match[1] :$match[1]${match[2]:+:${${match[2]//[(),]}// /:}}:}
|
||||
)
|
||||
fi
|
||||
|
||||
|
@ -172,9 +172,9 @@ _svnadmin () {
|
|||
if (( $#cmd )); then
|
||||
curcontext="${curcontext%:*:*}:svnadmin-${cmd}:"
|
||||
|
||||
usage=${${(M)${(f)"$(LC_ALL=C _call_program options svnadmin help $cmd)"}:#$cmd: usage:*}#$cmd: usage: svnadmin $cmd }
|
||||
usage=${${(M)${(f)"$(_comp_locale; _call_program options svnadmin help $cmd)"}:#$cmd: usage:*}#$cmd: usage: svnadmin $cmd }
|
||||
args=(
|
||||
${=${${${(M)${(f)"$(LC_ALL=C _call_program options svnadmin help $cmd)"#(*Valid options:|(#e))}:#* :*}%% #:*}/ (arg|ARG)/:arg:}/(#b)-([[:alpha:]]) \[--([a-z-]##)\](:arg:)#/(--$match[2])-$match[1]$match[3] (-$match[1])--$match[2]$match[3]}
|
||||
${=${${${(M)${(f)"$(_comp_locale; _call_program options svnadmin help $cmd)"#(*Valid options:|(#e))}:#* :*}%% #:*}/ (arg|ARG)/:arg:}/(#b)-([[:alpha:]]) \[--([a-z-]##)\](:arg:)#/(--$match[2])-$match[1]$match[3] (-$match[1])--$match[2]$match[3]}
|
||||
)
|
||||
if [[ $usage == *REPOS_PATH* ]]; then
|
||||
args+=( ":path:_files -/" )
|
||||
|
@ -319,7 +319,7 @@ _svn_props() {
|
|||
_svn_changelists() {
|
||||
local cls
|
||||
|
||||
cls=( ${${${(M)${(f)"$(LC_ALL=C _call_program changelists svn status 2>/dev/null)"}:#--- Changelist*}%??}##*\'} )
|
||||
cls=( ${${${(M)${(f)"$(_comp_locale; _call_program changelists svn status 2>/dev/null)"}:#--- Changelist*}%??}##*\'} )
|
||||
compadd "$@" -a cls && return 0
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue