Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH] fix zfdir -r



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