From ecdfa912ae9dc5bd7d98160ab88ae4f17fe761b1 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 5 Jun 2003 09:51:25 +0000 Subject: 18526: -O option to _describe for prefix-needed in _arguments --- Completion/Base/Utility/_arguments | 4 ++-- Completion/Base/Utility/_describe | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'Completion') diff --git a/Completion/Base/Utility/_arguments b/Completion/Base/Utility/_arguments index fe8edd61a..44be6db84 100644 --- a/Completion/Base/Utility/_arguments +++ b/Completion/Base/Utility/_arguments @@ -387,7 +387,7 @@ if (( $# )) && comparguments -i "$autod" "$singopt[@]" "$@"; then tmp1=( "${(M@)tmp1:#[-+]?(|:*)}" ) tmp2=( "${PREFIX}${(@M)^${(@)${(@)tmp1%%:*}#[-+]}:#?}" ) - _describe -o option \ + _describe -O option \ tmp1 tmp2 -Q -S '' -- \ tmp3 -Q @@ -399,7 +399,7 @@ if (( $# )) && comparguments -i "$autod" "$singopt[@]" "$@"; then single=yes else next=( "$next[@]" "$odirect[@]" ) - _describe -o option \ + _describe -O option \ next -Q -M "$matcher" -- \ direct -QS '' -M "$matcher" -- \ equal -QqS= -M "$matcher" diff --git a/Completion/Base/Utility/_describe b/Completion/Base/Utility/_describe index eafdcc35b..d5d7aeba7 100644 --- a/Completion/Base/Utility/_describe +++ b/Completion/Base/Utility/_describe @@ -2,7 +2,7 @@ # This can be used to add options or values with descriptions as matches. -local _opt _expl _tmpm _tmpd _mlen +local _opt _expl _tmpm _tmpd _mlen _noprefix local _type=values _descr _ret=1 _showd _nm _hide _args _grp _sep local csl="$compstate[list]" csl2 local _oargv _argv _new _strs _mats _opts _i _try=0 @@ -12,6 +12,10 @@ local _oargv _argv _new _strs _mats _opts _i _try=0 if [[ "$1" = -o ]]; then _type=options shift +elif [[ "$1" = -O ]]; then + _type=options + _noprefix=1 + shift elif [[ "$1" = -t ]]; then _type="$2" shift 2 @@ -20,6 +24,10 @@ elif [[ "$1" = -t* ]]; then shift fi +[[ "$_type$_noprefix" = options && ! -prefix [-+]* ]] && \ + zstyle -T ":completion:${curcontext}:options" prefix-needed && + return 1 + # Do the tests. `showd' is set if the descriptions should be shown. zstyle -T ":completion:${curcontext}:$_type" verbose && _showd=yes -- cgit 1.4.1