From eabfc368bd798b92f6b878430464b79de77c463f Mon Sep 17 00:00:00 2001 From: Sven Wischnowsky Date: Wed, 2 Aug 2000 09:09:54 +0000 Subject: prefer user-defined specs over ones derived from --help output (12475) --- Completion/Base/_arguments | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'Completion/Base/_arguments') diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments index 2d55800a4..5a8da45ab 100644 --- a/Completion/Base/_arguments +++ b/Completion/Base/_arguments @@ -70,7 +70,18 @@ if (( long )); then lopts=("--${(@)^${(@)${(@)${(@M)${(@ps:\n:j:\n:)${(@)${(@M)${(@f)$(_call options ${~words[1]} --help 2>&1)//\[--/ --}:#[ ]#-*}//,/ }}:#[ ]#--*}#*--}%%[] ]*}:#}") - lopts=( "${(@)lopts:#--}" ) + + # Remove options also described by user-defined specs. + + tmp=() + for opt in "${(@)lopts:#--}"; do + + # Using (( ... )) gives a parse error. + + let "$tmpargv[(I)(|\([^\)]#\))${opt}(|[-+=])(|\[*\])(|:*)]" || + tmp=( "$tmp[@]" "$opt" ) + done + lopts=( "$tmp[@]" ) # Now remove all ignored options ... -- cgit v1.2.3