diff options
author | Oliver Kiddle <opk@users.sourceforge.net> | 2004-06-17 13:12:25 +0000 |
---|---|---|
committer | Oliver Kiddle <opk@users.sourceforge.net> | 2004-06-17 13:12:25 +0000 |
commit | 5177458d40a62db8d0626719b73f549c71d27f86 (patch) | |
tree | 5662274b662934016da99a12e38b6e58dcb69964 /Completion/Unix/Command/_iconv | |
parent | c8de227be64b25d70e7d394b5c95a243d7bfd43c (diff) | |
download | zsh-5177458d40a62db8d0626719b73f549c71d27f86.tar.gz zsh-5177458d40a62db8d0626719b73f549c71d27f86.tar.xz zsh-5177458d40a62db8d0626719b73f549c71d27f86.zip |
20069: complete character encodings case-insensitively for GNU iconv
Diffstat (limited to 'Completion/Unix/Command/_iconv')
-rw-r--r-- | Completion/Unix/Command/_iconv | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/Completion/Unix/Command/_iconv b/Completion/Unix/Command/_iconv index 8e12e2107..e1528aec5 100644 --- a/Completion/Unix/Command/_iconv +++ b/Completion/Unix/Command/_iconv @@ -1,6 +1,7 @@ #compdef iconv -local expl curcontext="$curcontext" state line codeset LOCPATH ret=1 +local expl curcontext="$curcontext" state line codeset ret=1 +local LOCPATH="${LOCPATH:-/usr/lib/nls/loc}" if _pick_variant gnu=GNU unix --version; then @@ -17,17 +18,18 @@ if _pick_variant gnu=GNU unix --version; then '(-)--usage[display a short usage message]' \ '(-)'{-V,--version}'[print program version]' \ '1:input file:_files' && return 0 - - if [[ $state = codeset ]]; then - if compset -P '*/'; then - _wanted option expl option compadd "$@" /TRANSLIT && ret=0 - else - _wanted codesets expl 'code set' compadd "$@" -M 'r:|-=* r:|=*' \ - ${${${(f)"$(iconv --list|sed -n '/^$/,$ p')"}## #}%//} && ret=0 - fi + + if [[ $state = codeset ]]; then + if compset -P '*/'; then + _wanted option expl option compadd "$@" /TRANSLIT && ret=0 + else + _wanted codesets expl 'code set' compadd "$@" \ + -M 'm:{a-zA-Z}={A-Za-z} r:|-=* r:|=*' \ + ${${${(f)"$(_call_program codesets iconv --list|sed -n '/^$/,$ p')"}## #}%//} && ret=0 fi - - return ret + fi + + return ret else _arguments -C \ @@ -35,19 +37,17 @@ else '-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 + 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/iconv ]]; then # OSF + codeset=( $LOCPATH/iconv/*(N:t) ) + codeset=( ${(j:_:s:_:)codeset} ) + else + return 1 fi -fi - - + _wanted codesets expl 'code set' compadd "$@" -a codeset + fi + +fi |