diff options
Diffstat (limited to 'Functions/Zftp/zfparams')
-rw-r--r-- | Functions/Zftp/zfparams | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/Functions/Zftp/zfparams b/Functions/Zftp/zfparams index 5c5262c52..59fea0ed4 100644 --- a/Functions/Zftp/zfparams +++ b/Functions/Zftp/zfparams @@ -1,12 +1,27 @@ # function zfparams { emulate -L zsh +[[ $curcontext = :zf* ]] || local curcontext=:zfparams -# Set to prompt for any user or password if not given. -# Don't worry about accounts here. -if (( $# > 0 )); then +if [[ $# -eq 1 && $1 = - ]]; then + # Delete existing parameter set. + local sess=$ZFTP_SESSION key + key=${zfconfig[fcache_$sess]} + [[ -n $key ]] && unset $key + for key in fcache lastloc lastdir curdir otherdir otherargs lastuser; do + unset "zfconfig[${key}_${sess}]" + done +elif (( $# > 0 )); then + # Set to prompt for any user or password if not given. + # Don't worry about accounts here. (( $# < 2 )) && 2='?' - (( $# < 3 )) && 3='?' + if (( $# < 3 )); then + if [[ $2 = '?'* ]]; then + 3="?Password on ${1}: " + else + 3="?Password for ${2##\\?} on ${1}: " + fi + fi fi zftp params $* # } |