diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-03-04 08:53:41 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2002-03-04 08:53:41 +0000 |
commit | f56ba813bb92b1d61be91cb39df620b37a5a0588 (patch) | |
tree | 6b7432b8e437bfbd92b7859e0c9e38dd11277f1d /Completion/Unix | |
parent | 10490ec499fff7b932f92a0b19c7e5343a24761d (diff) | |
download | zsh-f56ba813bb92b1d61be91cb39df620b37a5a0588.tar.gz zsh-f56ba813bb92b1d61be91cb39df620b37a5a0588.tar.xz zsh-f56ba813bb92b1d61be91cb39df620b37a5a0588.zip |
allow different sets of completion definitions selected with option -T to compdef; use this for parameter values and redirections (16755)
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Command/_gcc | 24 | ||||
-rw-r--r-- | Completion/Unix/Command/_su | 2 | ||||
-rw-r--r-- | Completion/Unix/Type/_files | 2 | ||||
-rw-r--r-- | Completion/Unix/Type/_printers | 2 | ||||
-rw-r--r-- | Completion/Unix/Type/_terminals | 2 | ||||
-rw-r--r-- | Completion/Unix/Type/_time_zone | 2 |
6 files changed, 26 insertions, 8 deletions
diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc index e6c81e408..f297126d1 100644 --- a/Completion/Unix/Command/_gcc +++ b/Completion/Unix/Command/_gcc @@ -1,8 +1,21 @@ -#compdef gcc +#compdef gcc g++ -T values LDFLAGS CFLAGS CPPFLAGS -local curcontext="$curcontext" state line ret=1 expl args +local curcontext="$curcontext" state line ret=1 expl args args2 typeset -A opt_args +if [[ "$comptype" = values ]]; then + compset -q + words=( fake "$words[@]" ) + (( CURRENT++ )) + if ("$service" = LDFLAGS ]]; then + args2=( '-R:runtime path:->rundir' ) + else + args2=() + fi +else + args2=( '*:input file:_files -g \*.\(\[cCmisSoak\]\|cc\|cxx\|ii\|k\[ih\]\)' ) +fi + args=() case $MACHTYPE in m68*) @@ -243,7 +256,7 @@ _arguments -C -M 'L:|-{fW}no-=-{fW} r:|[_-]=* r:|=*' \ -freg-struct-return -fshared-data -fshort-enums \ -fshort-double -fvolatile -fvolatile-global \ -fverbose-asm -fpack-struct \ - '*:input file:_files -g \*.\(\[cCmisSoak\]\|cc\|cxx\|ii\|k\[ih\]\)' && ret=0 + "$args2[@]" && ret=0 case "$state" in @@ -276,6 +289,11 @@ library) _wanted libraries expl library \ compadd - ${^=LD_LIBRARY_PATH:-/usr/lib /usr/local/lib}/lib*.(a|so*)(:t:fr:s/lib//) && ret=0 ;; +rundir) + compset -P '*:' + compset -S ':*' + _files -/ -S/ -r '\n\t\- /:' "$@" + ;; esac return ret diff --git a/Completion/Unix/Command/_su b/Completion/Unix/Command/_su index d8ed17183..a1dd69db8 100644 --- a/Completion/Unix/Command/_su +++ b/Completion/Unix/Command/_su @@ -17,4 +17,4 @@ fi shell="${${(M@)${(@f)$(</etc/passwd)}:#$usr*}##*:}" compset -n $base -_contexts -o $shell $shell:t -default- +_dispatch comps $shell $shell:t -default- diff --git a/Completion/Unix/Type/_files b/Completion/Unix/Type/_files index fa98ce574..4a57cdbc7 100644 --- a/Completion/Unix/Type/_files +++ b/Completion/Unix/Type/_files @@ -1,4 +1,4 @@ -#autoload +#compdef -T redirs -default- local opts tmp glob pat pats expl tag i def descr end ign ret=1 match tried local type sdef diff --git a/Completion/Unix/Type/_printers b/Completion/Unix/Type/_printers index 03f950c9c..7229c1dc6 100644 --- a/Completion/Unix/Type/_printers +++ b/Completion/Unix/Type/_printers @@ -1,4 +1,4 @@ -#autoload +#compdef -T values PRINTER LPDEST local expl ret=1 list disp sep diff --git a/Completion/Unix/Type/_terminals b/Completion/Unix/Type/_terminals index 7dbfeeba5..039430ad5 100644 --- a/Completion/Unix/Type/_terminals +++ b/Completion/Unix/Type/_terminals @@ -1,4 +1,4 @@ -#compdef infocmp +#compdef infocmp -T values TERM local desc expl diff --git a/Completion/Unix/Type/_time_zone b/Completion/Unix/Type/_time_zone index 1ae921b61..215d8bd4a 100644 --- a/Completion/Unix/Type/_time_zone +++ b/Completion/Unix/Type/_time_zone @@ -1,4 +1,4 @@ -#compdef +#compdef -T values TZ local expl |