From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17408 invoked from network); 2 May 2002 19:13:35 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 2 May 2002 19:13:35 -0000 Received: (qmail 29281 invoked by alias); 2 May 2002 19:13:24 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 17066 Received: (qmail 29263 invoked from network); 2 May 2002 19:13:22 -0000 Date: Thu, 2 May 2002 12:13:19 -0700 From: Danek Duvall To: Zsh Workers Subject: Bug in _path_files? Message-ID: <20020502191319.GA2807@lorien.emufarm.org> Mail-Followup-To: Danek Duvall , Zsh Workers Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.25i I have strange behavior in zsh 4.0.3 when completing directories in the stack: % cd /usr/share/zsh; cd 4.0.3; cd functions % dirs -v 0 /usr/share/zsh/4.0.3/functions 1 /usr/share/zsh/4.0.3 2 /usr/share/zsh 3 ~ % cd ~-2/^D 4.0.1-pre-2/ 4.0.3/ site-functions/ % cd ~+2/^D functions/ % cd ~2/^D functions/ The third form is the one I use all the time, but it seems to be wrong here (it should have the output of the first form). I do have pushdminus set, but it shouldn't make a difference, although it does. The following patch fixes my symptoms and is correct as far as I can see it. The idea being that without the +/-, you should jump directly to the entry in $dirstack, rather than counting from one end or the other, regardless of the value of pushdminus. --- _path_files-4.0.3 Wed Oct 24 12:31:52 2001 +++ _path_files Thu May 2 12:01:46 2002 @@ -233,7 +233,7 @@ else tmp1=$tmp1[2,-1] fi - [[ -o pushdminus ]] && tmp1=$(( $#dirstack - $tmp1 )) + [[ -o pushdminus && "$linepath" == [-+]* ]] && tmp1=$(( $#dirstack - $tmp1 )) if (( ! tmp1 )); then realpath=$PWD/ elif [[ tmp1 -le $#dirstack ]]; then Thanks, Danek