mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 10:01:11 +02:00
fix completions of locales on Linux, complete for more commands using
existing completions and more improvements to sccs completion
This commit is contained in:
parent
9ba4f4af9c
commit
01e67ec323
8 changed files with 163 additions and 74 deletions
|
@ -1,3 +1,12 @@
|
|||
2003-03-12 Oliver Kiddle <opk@zsh.org>
|
||||
|
||||
* 18346: Completion/Unix/Command/_cdcd, Completion/Unix/Type/_users,
|
||||
Completion/Unix/Command/_iconv, Completion/Unix/Command/_java,
|
||||
Completion/Unix/Command/_sccs, Completion/Unix/Type/_locales:
|
||||
update completions of java encodings for 1.4, GNU iconv to 2.2.5;
|
||||
fix completions of locales on Linux, complete for more commands using
|
||||
existing completions and more improvements to sccs completion
|
||||
|
||||
2003-03-12 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* 18344: Completion/Unix/Command/_perforce: tag-order is now
|
||||
|
|
|
@ -40,7 +40,7 @@ _cdcd_commands ()
|
|||
'access:configure cddb access method'
|
||||
'help:display a help message'
|
||||
)
|
||||
_describe 'cdcd command' commands
|
||||
_describe -t commands 'cdcd command' commands
|
||||
}
|
||||
|
||||
if (( CURRENT == 2 )); then
|
||||
|
|
|
@ -1,24 +1,33 @@
|
|||
#compdef iconv
|
||||
|
||||
local expl curcontext="$curcontext" state line codeset LOCPATH
|
||||
local expl curcontext="$curcontext" state line codeset LOCPATH ret=1
|
||||
|
||||
if _pick_variant gnu=GNU unix --version; 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
|
||||
local exargs="--list -? --help --usage --version -V"
|
||||
_arguments -C -S -s \
|
||||
"(-f --from-code $exargs)"{-f+,--from-code=}'[specify code set of input file]:code set:->codeset' \
|
||||
"(-t --to-code $exargs)"{-t+,--to-code=}'[specify code set for output]:code set:->codeset' \
|
||||
'(- 1)--list[list all character code sets]' \
|
||||
"($exargs)-c[omit invalid characters from output]" \
|
||||
"(-o --output $exargs)"{-o+,--output=}'[specify output file]:output file:_files' \
|
||||
"(-s --silent --verbose $exargs)"{-s,--silent}'[suppress warnings]' \
|
||||
"(-s --silent $exargs)--verbose[print progress information]" \
|
||||
'(-)'{-\?,--help}'[display help information]' \
|
||||
'(-)--usage[display a short usage message]' \
|
||||
'(-)'{-V,--version}'[print program version]' \
|
||||
'1:input file:_files' && return 0
|
||||
|
||||
if [[ $state = codeset ]]; then
|
||||
_wanted codesets expl 'code set' \
|
||||
compadd "$@" ${${(s:,:)$(iconv --list|sed -n '/^$/,$ p')}## #}
|
||||
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
|
||||
fi
|
||||
|
||||
return ret
|
||||
else
|
||||
|
||||
_arguments -C \
|
||||
|
|
|
@ -382,40 +382,26 @@ extdirs)
|
|||
|
||||
encoding)
|
||||
tmp=(
|
||||
'8859_1:ISO 8859-1'
|
||||
'8859_2:ISO 8859-2'
|
||||
'8859_3:ISO 8859-3'
|
||||
'8859_4:ISO 8859-4'
|
||||
'8859_5:ISO 8859-5'
|
||||
'8859_6:ISO 8859-6'
|
||||
'8859_7:ISO 8859-7'
|
||||
'8859_8:ISO 8859-8'
|
||||
'8859_9:ISO 8859-9'
|
||||
'Big5:Big5, Traditional Chinese'
|
||||
'CNS11643:CNS 11643, Traditional Chinese'
|
||||
'Cp037:USA, Canada(Bilingual, French), Netherlands, Portugal, Brazil, Australia'
|
||||
'Cp1006:IBM AIX Pakistan (Urdu)'
|
||||
'Cp1025:IBM Multilingual Cyrillic - Bulgaria, Bosnia, Herzegovinia, Macedonia(FYR)'
|
||||
'Cp1026:IBM Latin-5, Turkey'
|
||||
'Cp1046:IBM Open Edition US EBCDIC'
|
||||
'Cp1097:IBM Iran(Farsi)/Persian'
|
||||
'Cp1098:IBM Iran(Farsi)/Persian (PC)'
|
||||
'Cp1112:IBM Latvia, Lithuania'
|
||||
'Cp1122:IBM Estonia'
|
||||
'Cp1123:IBM Ukraine'
|
||||
'Cp1124:IBM AIX Ukraine'
|
||||
'Cp1125:IBM Ukraine (PC)'
|
||||
'Cp1250:Windows Eastern European'
|
||||
'Cp1251:Windows Cyrillic'
|
||||
'US-ASCII:American Standard Code for Information Interchange'
|
||||
'Cp1252:Windows Latin-1'
|
||||
'Cp1253:Windows Greek'
|
||||
'Cp1254:Windows Turkish'
|
||||
'Cp1255:Windows Hebrew'
|
||||
'Cp1256:Windows Arabic'
|
||||
'Cp1257:Windows Baltic'
|
||||
'Cp1258:Windows Vietnamese'
|
||||
'Cp1381:IBM OS/2, DOS Peopl'\''es Republic of China (PRC)'
|
||||
'Cp1383:IBM AIX People'\''s Republic of China (PRC)'
|
||||
'ISO-8859-1:ISO 8859-1, Latin alphabet No. 1 '
|
||||
'ISO-8859-15:Latin alphabet No. 9 '
|
||||
'UTF-8:Eight-bit UCS Transformation Format'
|
||||
'UTF-16:Sixteen-bit UCS Transformation Format, byte order identified by an'
|
||||
'UTF-16BE:Sixteen-bit UCS Transformation Format, big-endian byte order '
|
||||
'UTF-16LE:Sixteen-bit UCS Transformation Format, little-endian byte order '
|
||||
'ASCII:American Standard Code for Information Interchange'
|
||||
'ISO8859_1:ISO 8859-1, Latin alphabet No. 1'
|
||||
'UnicodeBig:Sixteen-bit Unicode Transformation Format, big-endian'
|
||||
'UnicodeBigUnmarked:Sixteen-bit Unicode Transformation Format, big-endian'
|
||||
'UnicodeLittle:Sixteen-bit Unicode Transformation Format, little-endian'
|
||||
'UnicodeLittleUnmarked:Sixteen-bit Unicode Transformation Format, little-endian'
|
||||
'UTF8:Eight-bit Unicode Transformation Format'
|
||||
'UTF-16:Sixteen-bit Unicode Transformation Format, byte order'
|
||||
'Big5:Big5, Traditional Chinese'
|
||||
'Big5_HKSCS:Big5 with Hong Kong extensions, Traditional Chinese'
|
||||
'Big5_Solaris:Big5 with seven additional Hanzi ideograph character mappings '
|
||||
'Cp037:USA, Canada (Bilingual, French), Netherlands, Portugal, Brazil, Australia'
|
||||
'Cp273:IBM Austria, Germany'
|
||||
'Cp277:IBM Denmark, Norway'
|
||||
'Cp278:IBM Finland, Sweden'
|
||||
|
@ -423,7 +409,6 @@ encoding)
|
|||
'Cp284:IBM Catalan/Spain, Spanish Latin America'
|
||||
'Cp285:IBM United Kingdom, Ireland'
|
||||
'Cp297:IBM France'
|
||||
'Cp33722:IBM-eucJP - Japanese (superset of 5050)'
|
||||
'Cp420:IBM Arabic'
|
||||
'Cp424:IBM Hebrew'
|
||||
'Cp437:MS-DOS United States, Australia, New Zealand, South Africa'
|
||||
|
@ -434,7 +419,9 @@ encoding)
|
|||
'Cp850:MS-DOS Latin-1'
|
||||
'Cp852:MS-DOS Latin-2'
|
||||
'Cp855:IBM Cyrillic'
|
||||
'Cp856:IBM Hebrew'
|
||||
'Cp857:IBM Turkish'
|
||||
'Cp858:Variant of Cp850 with Euro character'
|
||||
'Cp860:MS-DOS Portuguese'
|
||||
'Cp861:MS-DOS Icelandic'
|
||||
'Cp862:PC Hebrew'
|
||||
|
@ -454,26 +441,83 @@ encoding)
|
|||
'Cp930:Japanese Katakana-Kanji mixed with 4370 UDC, superset of 5026'
|
||||
'Cp933:Korean Mixed with 1880 UDC, superset of 5029'
|
||||
'Cp935:Simplified Chinese Host mixed with 1880 UDC, superset of 5031'
|
||||
'Cp937:Traditional Chinese Host miexed with 6204 UDC, superset of 5033'
|
||||
'Cp937:Traditional Chinese Host miexed with 6204 UDC, superset 5033'
|
||||
'Cp939:Japanese Latin Kanji mixed with 4370 UDC, superset of 5035'
|
||||
'Cp942:Japanese (OS/2) superset of 932'
|
||||
'Cp942:IBM OS/2 Japanese, superset of Cp932'
|
||||
'Cp942C:Variant of Cp942'
|
||||
'Cp943:IBM OS/2 Japanese, superset of Cp932 and Shift-JIS'
|
||||
'Cp943C:Variant of Cp943'
|
||||
'Cp948:OS/2 Chinese (Taiwan) superset of 938'
|
||||
'Cp949:PC Korean'
|
||||
'Cp949C:Variant of Cp949'
|
||||
'Cp950:PC Chinese (Hong Kong, Taiwan)'
|
||||
'Cp964:AIX Chinese (Taiwan)'
|
||||
'Cp970:AIX Korean'
|
||||
'EUCJIS:JIS, EUC Encoding, Japanese'
|
||||
'GB2312:GB2312, EUC encoding, Simplified Chinese'
|
||||
'Cp1006:IBM AIX Pakistan (Urdu)'
|
||||
'Cp1025:IBM Multilingual Cyrillic (Bulgaria, Bosnia)'
|
||||
'Cp1025:IBM Multilingual Cyrillic - Bulgaria, Bosnia, Herzegovinia, Macedonia (FYR)'
|
||||
'Cp1026:IBM Latin-5, Turkey'
|
||||
'Cp1046:IBM Arabic - Windows'
|
||||
'Cp1097:IBM Iran (Farsi)/Persian'
|
||||
'Cp1098:IBM Iran (Farsi)/Persian (PC)'
|
||||
'Cp1112:IBM Latvia, Lithuania'
|
||||
'Cp1122:IBM Estonia'
|
||||
'Cp1123:IBM Ukraine'
|
||||
'Cp1124:IBM AIX Ukraine'
|
||||
'Cp1140:Variant of Cp037 with Euro character'
|
||||
'Cp1141:Variant of Cp273 with Euro character'
|
||||
'Cp1142:Variant of Cp277 with Euro character'
|
||||
'Cp1143:Variant of Cp278 with Euro character'
|
||||
'Cp1144:Variant of Cp280 with Euro character'
|
||||
'Cp1145:Variant of Cp284 with Euro character'
|
||||
'Cp1146:Variant of Cp285 with Euro character'
|
||||
'Cp1147:Variant of Cp297 with Euro character'
|
||||
'Cp1148:Variant of Cp500 with Euro character'
|
||||
'Cp1149:Variant of Cp871 with Euro character'
|
||||
'Cp1250:Windows Eastern European'
|
||||
'Cp1251:Windows Cyrillic'
|
||||
'Cp1253:Windows Greek'
|
||||
'Cp1254:Windows Turkish'
|
||||
'Cp1255:Windows Hebrew'
|
||||
'Cp1256:Windows Arabic'
|
||||
'Cp1257:Windows Baltic'
|
||||
'Cp1258:Windows Vietnamese'
|
||||
"Cp1381:IBM OS/2, DOS People's Republic of China (PRC)"
|
||||
"Cp1383:IBM AIX People's Republic of China (PRC)"
|
||||
'Cp33722:IBM-eucJP - Japanese (superset of 5050)'
|
||||
'EUC_CN:GB2312, EUC encoding, Simplified Chinese'
|
||||
'EUC_JP:JIS X 0201, 0208, 0212, EUC encoding, Japanese'
|
||||
'EUC_KR:KS C 5601, EUC encoding, Korean'
|
||||
'EUC_TW:CNS11643 (Plane 1-3), EUC encoding, Traditional Chinese'
|
||||
'GB18030:Simplified Chinese, PRC standard'
|
||||
'GBK:GBK, Simplified Chinese'
|
||||
'ISO2022CN:ISO 2022 CN, Chinese'
|
||||
'ISO2022CN_CNS:CNS 11643 in ISO-2022-CN form, T. Chinese'
|
||||
'ISO2022CN_GB:GB 2312 in ISO-2022-CN form, S. Chinese'
|
||||
'ISCII91:ISCII91 encoding of Indic scripts'
|
||||
'ISO2022CN:ISO 2022 CN, Chinese (conversion to Unicode only)'
|
||||
'ISO2022CN_CNS:CNS 11643 in ISO 2022 CN form, Traditional Chinese'
|
||||
'ISO2022CN_GB:GB 2312 in ISO 2022 CN form, Simplified Chinese'
|
||||
'ISO2022JP:JIS X 0201, 0208 in ISO 2022 form, Japanese'
|
||||
'ISO2022KR:ISO 2022 KR, Korean'
|
||||
'JIS:JIS, Japanese'
|
||||
'JIS0208:JIS 0208, Japanese'
|
||||
'ISO8859_2:ISO 8859-2, Latin alphabet No. 2'
|
||||
'ISO8859_3:ISO 8859-3, Latin alphabet No. 3'
|
||||
'ISO8859_4:ISO 8859-4, Latin alphabet No. 4'
|
||||
'ISO8859_5:ISO 8859-5, Latin/Cyrillic alphabet'
|
||||
'ISO8859_6:ISO 8859-6, Latin/Arabic alphabet'
|
||||
'ISO8859_7:ISO 8859-7, Latin/Greek alphabet'
|
||||
'ISO8859_8:ISO 8859-8, Latin/Hebrew alphabet'
|
||||
'ISO8859_9:ISO 8859-9, Latin alphabet No. 5'
|
||||
'ISO8859_13:ISO 8859-13, Latin alphabet No. 7'
|
||||
'ISO8859_15:ISO 8859-15, Latin alphabet No. 9'
|
||||
'JIS0201:JIS X 0201, Japanese'
|
||||
'JIS0208:JIS X 0208, Japanese'
|
||||
'JIS0212:JIS X 0212, Japanese'
|
||||
'JISAutoDetect:Detects and converts from Shift-JIS, EUC-JP, ISO 2022 JP'
|
||||
'Johab:Johab, Korean'
|
||||
'KOI8_R:KOI8-R, Russian'
|
||||
'KSC5601:KS C 5601, Korean'
|
||||
'MS874:Windows Thai'
|
||||
'MS932:Windows Japanese'
|
||||
'MS936:Windows Simplified Chinese'
|
||||
'MS949:Windows Korean'
|
||||
'MS950:Windows Traditional Chinese'
|
||||
'MacArabic:Macintosh Arabic'
|
||||
'MacCentralEurope:Macintosh Latin-2'
|
||||
'MacCroatian:Macintosh Croatian'
|
||||
|
@ -489,7 +533,7 @@ encoding)
|
|||
'MacTurkish:Macintosh Turkish'
|
||||
'MacUkraine:Macintosh Ukraine'
|
||||
'SJIS:Shift-JIS, Japanese'
|
||||
'UTF8:UTF-8'
|
||||
'TIS620:TIS620, Thai'
|
||||
)
|
||||
_describe 'character encoding' tmp --
|
||||
;;
|
||||
|
|
|
@ -6,7 +6,7 @@ _sccs_files() {
|
|||
dir="${(M)PREFIX##*/}$finalpath"
|
||||
[[ $~dir = (.|..|)/* ]] || dir="${PROJECTDIR:-~+}/$dir"
|
||||
compset -P "*/"
|
||||
_wanted file expl file compadd "$@" - $~dir/*(N.:t:s/s.//) && ret=0
|
||||
_wanted file expl file compadd "$@" - $~dir/s.*(N.:t:s/s.//) && ret=0
|
||||
PREFIX="$pref"
|
||||
IPREFIX="$ipref"
|
||||
_wanted sccs-files expl 'sccs file' _files -W ${PROJECTDIR:-~+} \
|
||||
|
@ -20,9 +20,31 @@ typeset -A opt_args
|
|||
local subcmds ropt copt sfiles finalpath
|
||||
|
||||
subcmds=(
|
||||
admin cdc check clean comb create deledit delget delta diffs edit
|
||||
enter fix get help info print prs ptr rmdel sact sccsdiff tell
|
||||
unedit unget val what
|
||||
'admin:modify the flags or checksum of an sccs history file'
|
||||
'cdc:annotate the commentary of an sccs delta'
|
||||
'check:check for files currently being edited'
|
||||
'clean:remove files that can be retrieved from sccs history'
|
||||
'comb:generate scripts to combine deltas'
|
||||
'create:create (initialize) history files'
|
||||
'deledit:check file in and straight out again'
|
||||
'delget:check file in and maintain read-only copy'
|
||||
'delta:check in changes'
|
||||
'diffs:compare working copy with version in sccs history'
|
||||
'edit:retrieve file for editing (check out)'
|
||||
"enter:like create, but omits the final 'sccs get'"
|
||||
'fix:revise a (leaf) delta'
|
||||
'get:retieve a version from the sccs history'
|
||||
'help:get information on sccs commands and error messages'
|
||||
{info,tell}':list files being edited'
|
||||
'print:print history of specified files'
|
||||
'prs:display delta table for an sccs file'
|
||||
'prt:display the delta table, but omit the MR field'
|
||||
'rmdel:remove specfied delta from history file'
|
||||
'sact:show editing activity status of an sccs file'
|
||||
'sccsdiff:compare two versions from sccs history'
|
||||
{unedit,unget}':undo check out'
|
||||
'val:validate history file'
|
||||
'what:display any ID keyword strings in a file'
|
||||
)
|
||||
|
||||
ropt='-r+[specify sccs delta id]:sccs delta id'
|
||||
|
@ -37,7 +59,7 @@ if [[ $service = sccs ]]; then
|
|||
'*::command:->subcmd' && return 0
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
_wanted commands expl 'sccs command' compadd -a subcmds
|
||||
_describe -t commands 'sccs command' subcmds
|
||||
return
|
||||
fi
|
||||
service="$words[1]"
|
||||
|
@ -102,9 +124,10 @@ case $service in
|
|||
;;
|
||||
fix) _arguments "$ropt" "$sfiles";;
|
||||
help)
|
||||
_alternative \
|
||||
"commands:sccs command:(${(j: :)subcmds})" \
|
||||
'message-codes:sccs message code:'
|
||||
[[ $PREFIX$SUFFIX = [0-9]# ]] &&
|
||||
_message -e message-codes "sccs message code"
|
||||
subcmds+=( "stuck:help on help" )
|
||||
_describe -t commands 'sccs command' subcmds
|
||||
;;
|
||||
prs)
|
||||
_arguments "$sfiles" "$ropt" "$copt" \
|
||||
|
@ -128,6 +151,11 @@ case $service in
|
|||
;;
|
||||
rmdel) _arguments "$ropt" "$sfiles";;
|
||||
sccsdiff) _diff_options diff "$ropt" "$sfiles";;
|
||||
unedit|unget)
|
||||
_arguments "$sfiles" "$ropt" \
|
||||
'-s[silent]' \
|
||||
'-n[retain the retrieved version]'
|
||||
;;
|
||||
val)
|
||||
_arguments "$sfiles" "$ropt" \
|
||||
'-s[silent]' \
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#compdef -value-,LANG,-default- -P -value-,LC_*,-default-
|
||||
#compdef -value-,LANG,-default- -value-,LANGUAGE,-default- -P -value-,LC_*,-default-
|
||||
|
||||
local locales
|
||||
|
||||
if (( $+commands[locale] )); then
|
||||
locales=( $(_call_program locales locale -a) )
|
||||
[[ $OSTYPE = linux-gnu ]] && locales=( ${locales/utf8/UTF-8} )
|
||||
else
|
||||
locales=( /usr/lib/locale/*(:t) )
|
||||
fi
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#autoload
|
||||
#compdef pflags pcred pmap pldd psig pstack pfiles pwdx pstop prun pwait ptree
|
||||
|
||||
# If given the `-m <pattern>' option, this tries to complete only pids
|
||||
# of processes whose command line match the `<pattern>'.
|
||||
|
||||
local out pids list expl match desc listargs args all nm ret=1
|
||||
local out pids list expl match desc listargs all nm ret=1
|
||||
|
||||
_tags processes || return 1
|
||||
|
||||
|
@ -20,8 +20,6 @@ else
|
|||
nm="$compstate[nmatches]"
|
||||
fi
|
||||
|
||||
zstyle -s ":completion:${curcontext}:processes" command args
|
||||
|
||||
out=( "${(@f)$(_call_program processes ps 2>/dev/null)}" )
|
||||
desc="$out[1]"
|
||||
out=( "${(@M)out[2,-1]:#${~match}}" )
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#compdef passwd groups userdel
|
||||
#compdef passwd groups userdel chage chfn chsh
|
||||
|
||||
local expl users
|
||||
|
||||
|
|
Loading…
Reference in a new issue