mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 21:44:11 +01:00
moved from Completion/User/_iconv
This commit is contained in:
parent
f17c2a7c25
commit
4e4216f62e
54
Completion/Unix/Command/_iconv
Normal file
54
Completion/Unix/Command/_iconv
Normal file
@ -0,0 +1,54 @@
|
||||
#compdef iconv
|
||||
|
||||
local expl curcontext="$curcontext" state line codeset LOCPATH
|
||||
|
||||
(( $+_is_gnu )) || typeset -gA _is_gnu
|
||||
if (( ! $+_is_gnu[$words[1]] )); then
|
||||
if [[ $(_call_program version $words[1] --version </dev/null 2>/dev/null) = *GNU* ]];
|
||||
then
|
||||
_is_gnu[$words[1]]=yes
|
||||
else
|
||||
_is_gnu[$words[1]]=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n "$_is_gnu[$words[1]]" ]]; then
|
||||
|
||||
_arguments -C \
|
||||
{'(--from-code --list)-f','(-f --list)--from-code='}'[specify code set of input file]:code set:->codeset' \
|
||||
{'(--to-code --list)-t','(-t --list)--to-code='}'[specify code set for output]:code set:->codeset' \
|
||||
'--list[list all character code sets]' \
|
||||
'--verbose[print progress information]' \
|
||||
{'(--help)-\?','(-\?)--help'}'[display help information]' \
|
||||
'--usage[display a short usage message]' \
|
||||
{'(--version)-V','(-V)--version'}'[print program version]' \
|
||||
'1:file:_files' && return 0
|
||||
|
||||
if [[ $state = codeset ]]; then
|
||||
_wanted codesets expl 'code set' \
|
||||
compadd "$@" ${${(s:,:)$(iconv --list|sed -n '/^$/,$ p')}## #}
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
_arguments -C \
|
||||
'-f[specify code set of input file]:code set:->codeset' \
|
||||
'-t[specify code set for output]:code set:->codeset' \
|
||||
'1:file:_files' && return 0
|
||||
|
||||
if [[ $state = codeset ]]; then
|
||||
if [[ -f /usr/lib/iconv/iconv_data ]]; then # IRIX & Solaris
|
||||
codeset=( ${${(f)"$(</usr/lib/iconv/iconv_data)"}%%[[:blank:]]*} )
|
||||
elif [[ -d ${LOCPATH:=/usr/lib/nls/loc}/iconv ]]; then # OSF
|
||||
codeset=( $LOCPATH/iconv/*(N:t) )
|
||||
codeset=( ${(j:_:s:_:)codeset} )
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
||||
_wanted codesets expl 'code set' compadd "$@" -a codeset
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user