From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13760 invoked from network); 15 Sep 1999 15:31:55 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 15 Sep 1999 15:31:55 -0000 Received: (qmail 9802 invoked by alias); 15 Sep 1999 15:31:48 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 7855 Received: (qmail 9795 invoked from network); 15 Sep 1999 15:31:47 -0000 Message-Id: <9909151456.AA29936@ibmth.df.unipi.it> To: Zsh workers Subject: Re: man completion and zftp problem In-Reply-To: "Oliver Kiddle"'s message of "Wed, 15 Sep 1999 16:04:36 DFT." <37DFB584.506608BA@u.genie.co.uk> Date: Wed, 15 Sep 1999 16:56:46 +0200 From: Peter Stephenson Oliver Kiddle wrote: > Finally, an unrelated thing which I have recently observed. If I use > zfgoto to connect to an ftp site from my bookmarks and accidentally type > the wrong password, the module saves my incorrect password in memory so, > I then have to unload and reload the module before I can connect to the > ftp site. You can use `zfparams -' to unset the incorrect stored parameters; this has been improved so that the function now unstores it's internal memory of the directory etc. But it does seem reasonable that a failed open won't leave the parameters it used stored, whatever the error was. I've changed it and documented the fact. (This should be transparent to zfgoto.) --- Doc/Zsh/zftpsys.yo.zo Wed Sep 15 16:50:19 1999 +++ Doc/Zsh/zftpsys.yo Wed Sep 15 16:48:25 1999 @@ -105,7 +105,10 @@ Normally, the var(host), var(user) and var(password) are internally recorded for later re-opening, either by a tt(zfopen) with no arguments, or automatically (see below). With the option `tt(-1)', no information is -stored. +stored. Also, if an open command with arguments failed, the parameters +will not be retained (and any previous parameters will also be deleted). +A tt(zfopen) on its own, or a tt(zftopen -1), never alters the stored +parameters. Both tt(zfopen) and tt(zfanon) (but not tt(zfparams)) understand URLs of the form tt(ftp://)var(host)/var(path...) as meaning to connect to the --- Functions/Zftp/zfopen.zo Fri Sep 10 14:07:42 1999 +++ Functions/Zftp/zfopen Wed Sep 15 16:50:32 1999 @@ -7,7 +7,7 @@ emulate -L zsh -local opt dir opt_1 +local opt dir opt_1 setparams while getopts :1 opt; do [[ $opt = "?" ]] && print "zfopen: bad option: -$OPTARG" >&2 && return 1 @@ -35,9 +35,13 @@ fi else # set parameters, but only if there was at least a host - (( $# > 0 )) && zfparams $* + (( $# > 0 )) && zfparams $* && setparams=1 # now call with no parameters - zftp open || return 1 + if ! zftp open; then + [[ -n $ZFTP_HOST ]] && zftp close + [[ -n $setparams ]] && zfparams - + return 1 + fi fi if [[ -n $dir ]]; then -- Peter Stephenson Tel: +39 050 844536 WWW: http://www.ifh.de/~pws/ Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy