Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Bug in _path_files?
- X-seq: zsh-workers 17072
- From: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- To: Danek Duvall <duvall@xxxxxxxxxxx>,        Zsh Workers <zsh-workers@xxxxxxxxxxxxxx>
- Subject: Re: Bug in _path_files?
- Date: Fri, 3 May 2002 11:52:00 +0100
- In-reply-to: <20020502191319.GA2807@xxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20020502191319.GA2807@xxxxxxxxxxxxxxxxxx>
- Sender: Oliver Kiddle <kiddleo@xxxxxxxxxx>
On Thu, May 02, 2002 at 12:13:19PM -0700, Danek Duvall wrote:
>     % 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.
You're right here. It seems to handle pushdminus for that third
form yet that form should not be affected by pushdminus. 
> 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 patch looks correct to me. However, it leaves some code that I
believe to be redundant (prepending `-' or `+' to $tmp1 only to
ignore it by using $tmp1[2,-1]) so I suggest the following patch
instead which I think makes the code a bit simpler (hopefully
without breaking it).
Thanks for the bug report
Oliver
Index: Completion/Unix/Type/_path_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_path_files,v
retrieving revision 1.15
diff -u -r1.15 _path_files
--- Completion/Unix/Type/_path_files	16 Apr 2002 08:27:47 -0000	1.15
+++ Completion/Unix/Type/_path_files	3 May 2002 10:41:44 -0000
@@ -224,20 +224,15 @@
     realpath="${HOME%/}/"
   elif [[ "$linepath" = ([-+]|)[0-9]## ]]; then
     if [[ "$linepath" != [-+]* ]]; then
-      if [[ -o pushdminus ]]; then
-        tmp1="-$linepath"
-      else
-        tmp1="+$linepath"
-      fi
-    else
       tmp1="$linepath"
-    fi
-    if [[ "$linepath" = -* ]]; then
-      tmp1=$(( $#dirstack $tmp1 ))
     else
-      tmp1=$tmp1[2,-1]
+      if [[ "$linepath" = -* ]]; then
+        tmp1=$(( $#dirstack $linepath ))
+      else
+        tmp1=$linepath[2,-1]
+      fi
+      [[ -o pushdminus ]] && tmp1=$(( $#dirstack - $tmp1 ))
     fi
-    [[ -o pushdminus ]] && tmp1=$(( $#dirstack - $tmp1 ))
     if (( ! tmp1 )); then
       realpath=$PWD/
     elif [[ tmp1 -le $#dirstack ]]; then
This e-mail and any attachment is for authorised use by the intended recipient(s) only.  It may contain proprietary material, confidential information and/or be subject to legal privilege.  It should not be copied, disclosed to, retained or used by, any other party.  If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender.  Thank you.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author