summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2004-06-17 13:12:25 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2004-06-17 13:12:25 +0000
commit5177458d40a62db8d0626719b73f549c71d27f86 (patch)
tree5662274b662934016da99a12e38b6e58dcb69964 /Completion/Unix/Command
parentc8de227be64b25d70e7d394b5c95a243d7bfd43c (diff)
downloadzsh-5177458d40a62db8d0626719b73f549c71d27f86.tar.gz
zsh-5177458d40a62db8d0626719b73f549c71d27f86.zip
20069: complete character encodings case-insensitively for GNU iconv
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_iconv50
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