summaryrefslogtreecommitdiffstats
path: root/Completion
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2026-06-23 02:05:36 +0200
committerOliver Kiddle <opk@zsh.org>2026-06-23 02:05:36 +0200
commit2e0f89f2096ed4057119ff6fb7268c28b2d97dca (patch)
tree25738a8badf5290ff590ab3e8028e17c087341ef /Completion
parent54828: handle time arguments in shutdown completion (diff)
downloadzsh-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/_configure24
-rw-r--r--Completion/Unix/Command/_gcc12
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++ ))