From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8295 invoked from network); 29 May 2000 09:13:58 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 29 May 2000 09:13:58 -0000 Received: (qmail 15207 invoked by alias); 29 May 2000 09:13:41 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11631 Received: (qmail 15200 invoked from network); 29 May 2000 09:13:41 -0000 Date: Mon, 29 May 2000 11:13:29 +0200 (MET DST) Message-Id: <200005290913.LAA04209@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Andrej Borsenkow"'s message of Mon, 29 May 2000 11:07:17 +0400 Subject: PATCH: Re: _configure completion weirdness Andrej Borsenkow wrote: > With current CVS (hey, I'm already running 3.1.7! :-))) I get very funny > result. > > ./configure --pre=/to > > completes to --prefix=/tools as expected, but > > ./configure --prefix=/to > > does not! > > This seems to be the result of > > zstyle ':completion:*:*:configure:*' tag-order 'options:-with:with\ > options options:-other:other\ options' 'options:-without:without\ > options' Oops. We shouldn't empty the arrays if we may still need them... Bye Sven Index: Completion/Base/_arguments =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Base/_arguments,v retrieving revision 1.24 diff -u -r1.24 _arguments --- Completion/Base/_arguments 2000/05/29 08:00:46 1.24 +++ Completion/Base/_arguments 2000/05/29 09:12:54 @@ -168,7 +168,7 @@ if (( $# )) && comparguments -i "$autod" "$@"; then local action noargs aret expl local tried local next direct odirect equal single matcher matched ws tmp1 tmp2 tmp3 - local opts subc tc prefix suffix descrs actions subcs + local opts subc tc prefix suffix descrs actions subcs anum local origpre="$PREFIX" origipre="$IPREFIX" nm="$compstate[nmatches]" if comparguments -D descrs actions subcs; then @@ -203,11 +203,12 @@ while true; do while _tags; do - while (( $#descrs )); do + anum=1 + while [[ anum -le $#descrs ]]; do - action="$actions[1]" - descr="$descrs[1]" - subc="$subcs[1]" + action="$actions[anum]" + descr="$descrs[anum]" + subc="$subcs[anum++]" if [[ -n "$matched" ]] || _requested "$subc"; then @@ -293,9 +294,6 @@ fi fi fi - shift descrs - shift actions - shift subcs done if [[ -z "$matched$hasopts" ]] && _requested options && -- Sven Wischnowsky wischnow@informatik.hu-berlin.de