diff options
| author | Oliver Kiddle <opk@zsh.org> | 2026-06-23 02:05:36 +0200 |
|---|---|---|
| committer | Oliver Kiddle <opk@zsh.org> | 2026-06-23 02:05:36 +0200 |
| commit | 2e0f89f2096ed4057119ff6fb7268c28b2d97dca (patch) | |
| tree | 25738a8badf5290ff590ab3e8028e17c087341ef /Completion | |
| parent | 54828: handle time arguments in shutdown completion (diff) | |
| download | zsh-2e0f89f2096ed4057119ff6fb7268c28b2d97dca.tar zsh-2e0f89f2096ed4057119ff6fb7268c28b2d97dca.tar.gz zsh-2e0f89f2096ed4057119ff6fb7268c28b2d97dca.tar.bz2 zsh-2e0f89f2096ed4057119ff6fb7268c28b2d97dca.tar.lz zsh-2e0f89f2096ed4057119ff6fb7268c28b2d97dca.tar.xz zsh-2e0f89f2096ed4057119ff6fb7268c28b2d97dca.tar.zst zsh-2e0f89f2096ed4057119ff6fb7268c28b2d97dca.zip | |
54844: complete variable assignments with configure
Diffstat (limited to 'Completion')
| -rw-r--r-- | Completion/Unix/Command/_configure | 24 | ||||
| -rw-r--r-- | Completion/Unix/Command/_gcc | 12 |
2 files changed, 32 insertions, 4 deletions
diff --git a/Completion/Unix/Command/_configure b/Completion/Unix/Command/_configure index 3b22b53db..460144ac3 100644 --- a/Completion/Unix/Command/_configure +++ b/Completion/Unix/Command/_configure @@ -1,6 +1,11 @@ #compdef configure config.status -_arguments -- -i '(--(disable|enable)-FEATURE* --(with|without)-PACKAGE*)' \ +local ret=1 +local -a expl suf + +[[ -prefix - ]] || + ! zstyle -T ":completion:${curcontext}:options" prefix-needed && + _arguments -- -i '(--(disable|enable)-FEATURE* --(with|without)-PACKAGE*)' \ -s '((#s)--disable- --enable- (#s)--enable- --disable- (#s)--with- --without- @@ -8,4 +13,19 @@ _arguments -- -i '(--(disable|enable)-FEATURE* --(with|without)-PACKAGE*)' \ '*=(E|)PREFIX*:prefix directory:_files -/' \ '*=PROGRAM*:program:_command_names -e' \ '*=NAME*executable*:program:_command_names -e' \ - '*=NAME*:file:_files' + '*=NAME*:file:_files' && ret=0 + +if [[ ! -prefix - ]]; then + if [[ "$PREFIX" = *\=* ]]; then + compstate[parameter]="${PREFIX%%\=*}" + compset -P 1 '*=' + _value && ret=0 + else + compset -S '=*' || suf=( -S = ) + _wanted -x variables expl variable compadd $suf \ + CC CFLAGS CPP CPPFLAGS CXX CXXFLAGS DEFS ERLCFLAGS FCFLAGS \ + FFLAGS GOFLAGS LDFLAGS LIBS OBJCFLAGS OBJCXXFLAGS && ret=0 + fi +fi + +return ret diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc index 17b9aa133..cf1cf7efa 100644 --- a/Completion/Unix/Command/_gcc +++ b/Completion/Unix/Command/_gcc @@ -1,10 +1,18 @@ -#compdef gcc g++ cc c++ llvm-gcc llvm-g++ clang clang++ -value-,LDFLAGS,-default- -value-,CFLAGS,-default- -value-,CXXFLAGS,-default- -value-,CPPFLAGS,-default- -P gcc-* -P g++-* -P c++-* +#compdef gcc g++ cc c++ llvm-gcc llvm-g++ clang clang++ -value-,LDFLAGS,-default- -value-,CFLAGS,-default- -value-,CXXFLAGS,-default- -value-,CPPFLAGS,-default- -value-,CC,-default- -value-,CXX,-default- -P gcc-* -P g++-* -P c++-* local curcontext="$curcontext" state line ret=1 expl i local -a args args2 warnings arch typeset -A opt_args -if [[ "$service" = -value-* ]]; then +if [[ "$service" = -value-,CC,* ]]; then + _description compilers expl compiler + compadd "$expl[@]" -M 'r:|-=* r:|=*' -k 'commands[(I)(clang|([ig]|sun|open)cc(|<->|-devel)|icx)]' + return +elif [[ "$service" = -value-,CXX,* ]]; then + _description compilers expl compiler + compadd "$expl[@]" -M 'r:|-=* r:|=*' -k 'commands[(I)((clang|g)++(|<->|-devel)|(sun|open|)CC|icpx)]' + return +elif [[ "$service" = -value-* ]]; then compset -q words=( fake "$words[@]" ) (( CURRENT++ )) |
