diff options
Diffstat (limited to 'Functions/Zftp/zfautocheck')
-rw-r--r-- | Functions/Zftp/zfautocheck | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/Functions/Zftp/zfautocheck b/Functions/Zftp/zfautocheck index abb994061..e53fde8d2 100644 --- a/Functions/Zftp/zfautocheck +++ b/Functions/Zftp/zfautocheck @@ -11,23 +11,31 @@ # command, which implies we are looking for something so should stay open # for it. -# Remember the old session: zflastsession will be overwritten by +# Remember the old location: will be overwritten by # a successful open. -local lastsession=$zflastsession +local lastloc=$zfconfig[lastloc_$ZFTP_SESSION] + +# Don't print out user messages when re-opening the connection. +local ZFTP_VERBOSE=${ZFTP_VERBOSE//0} + +# Unset the delay counter from the progress meter in case there was an +# abnormal exit. +(( ${+zftpseconds} )) && unset zftpseconds if [[ -z $ZFTP_HOST ]]; then zfopen || return 1 - [[ $1 = *d* ]] || do_close=1 + [[ $1 == *d* ]] || do_close=1 elif zftp test 2>/dev/null; then return 0 else zfopen || return 1 fi -if [[ $1 = *n* ]]; then +if [[ $1 == *n* ]]; then return 0 -elif [[ -n $lastsession && $ZFTP_HOST = ${lastsession%%:*} ]]; then - zfcd ${lastsession#*:} +elif [[ -n $lastloc && $ZFTP_HOST == ${lastloc%%:*} ]]; then + # don't print directory since we're just going back where we were. + zfcd ${lastloc#*:} >& /dev/null fi # } |