Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
[PATCH] fix zfdir -r
- X-seq: zsh-workers 35299
 
- From: Han Pingtian <hanpt@xxxxxxxxxxxxxxxxxx>
 
- To: zsh-workers@xxxxxxx
 
- Subject: [PATCH] fix zfdir -r
 
- Date: Wed, 27 May 2015 14:22:13 +0800
 
- List-help: <mailto:zsh-workers-help@zsh.org>
 
- List-id: Zsh Workers List <zsh-workers.zsh.org>
 
- List-post: <mailto:zsh-workers@zsh.org>
 
- Mail-followup-to: zsh-workers@xxxxxxx
 
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
 
First, This patch try to fix the problem that 'zfdir -r' works just
like 'zfdir': they both show contents of current directory.
Then, with this patch if 'newdir' in 'zfdir -r newdir' is different
to the dir in last 'zfdir dir', the effect of '-r' will be canceled.
---
 Functions/Zftp/zfdir | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Functions/Zftp/zfdir b/Functions/Zftp/zfdir
index 4818dc9..5ec0ebf 100644
--- a/Functions/Zftp/zfdir
+++ b/Functions/Zftp/zfdir
@@ -62,7 +62,7 @@ for (( i = 1; i <= $#argv; i++ )); do
   fi
 done
 
-if [[ $# -eq 0 ]]; then
+if [[ $# -eq 0 && $redir -ne 1 ]]; then
   # Cache it in the current directory file.  This means that repeated
   # calls to zfdir with no arguments always use a cached file.
   if [[ -z $curdir ]]; then
@@ -79,11 +79,12 @@ else
   fi
   file=$otherdir
   newargs="$*"
-  if [[ -f $file && $redir != 1 && $force -ne 1 ]]; then
+  if [[ -f $file && -n $newargs && $force -ne 1 ]]; then
     # Don't use the cached file if the arguments changed.
+    # Even in zfdir -r new_args ...
     [[ $newargs = $zfconfig[otherargs_$ZFTP_SESSION] ]] || rm -f $file
   fi
-  zfconfig[otherargs_$ZFTP_SESSION]=$newargs
+  [[ -n $newargs ]] && zfconfig[otherargs_$ZFTP_SESSION]=$newargs
 fi
 
 if [[ $force -eq 1 ]]; then
-- 
1.9.3
Messages sorted by:
Reverse Date,
Date,
Thread,
Author