5.8.1Pdebian/zsh-common//usr/share/zsh/functions/Zftp/zfanondebian/zsh-common//usr/share/zsh/functions/Zftp/zfautocheck8debian/zsh-common//usr/share/zsh/functions/Zftp/zfcd81debian/zsh-common//usr/share/zsh/functions/Zftp/zfcd_match1o ,debian/zsh-common//usr/share/zsh/functions/Zftp/zfcgeto Xdebian/zsh-common//usr/share/zsh/functions/Zftp/zfclose T `debian/zsh-common//usr/share/zsh/functions/Zftp/zfcput W debian/zsh-common//usr/share/zsh/functions/Zftp/zfdir debian/zsh-common//usr/share/zsh/functions/Zftp/zffcache1 0debian/zsh-common//usr/share/zsh/functions/Zftp/zfgcp1Adebian/zsh-common//usr/share/zsh/functions/Zftp/zfgetIdebian/zsh-common//usr/share/zsh/functions/Zftp/zfget_match- xdebian/zsh-common//usr/share/zsh/functions/Zftp/zfgoto-Xdebian/zsh-common//usr/share/zsh/functions/Zftp/zfhere debian/zsh-common//usr/share/zsh/functions/Zftp/zfinitAdebian/zsh-common//usr/share/zsh/functions/Zftp/zflsAt4debian/zsh-common//usr/share/zsh/functions/Zftp/zfmarkAdebian/zsh-common//usr/share/zsh/functions/Zftp/zfopenW0debian/zsh-common//usr/share/zsh/functions/Zftp/zfparams debian/zsh-common//usr/share/zsh/functions/Zftp/zfpcpdebian/zsh-common//usr/share/zsh/functions/Zftp/zfput Qdebian/zsh-common//usr/share/zsh/functions/Zftp/zfrglob!debian/zsh-common//usr/share/zsh/functions/Zftp/zfrtime#p debian/zsh-common//usr/share/zsh/functions/Zftp/zfsession#j% debian/zsh-common//usr/share/zsh/functions/Zftp/zfstatj(+ debian/zsh-common//usr/share/zsh/functions/Zftp/zftp_chpwd_) debian/zsh-common//usr/share/zsh/functions/Zftp/zftp_progress_)*debian/zsh-common//usr/share/zsh/functions/Zftp/zftransfer,O`debian/zsh-common//usr/share/zsh/functions/Zftp/zftypeƚ-i debian/zsh-common//usr/share/zsh/functions/Zftp/zfuget51 debian/zsh-common//usr/share/zsh/functions/Zftp/zfuput5AfdқCABr!Q'd|Adz"KACNACf҉zA" r"F-FAFA"  CF@YATSARAgdA,1A.r;t9A. A A,\yA" QqA"RA"1"A RA( 'd!A,%PA,&Ah  A fA,(AC f,A,+DyA.,AL 1A.RA FA FA,2A F% A6 1 A.6r+;|9A,7 A,8"K A.95 A1 A.<rY ABC+t CFq A +t ABFFA41AC AF emulatecurcontext:zflocalcurcontext:zfanonopt_1getoptsoptprintzfanon: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )EMAIL_ADDRdomainhostHOST/etc/resolv.confdomainMf/dev/null:Name:2oldvbZFTP_VERBOSEoldtmZFTP_TMOUTZFTP_VERBOSEZFTP_TMOUTzftpopen/dev/nullZFTP_HOSTcloseZFTP_VERBOSEoldvbZFTP_TMOUToldtmCan't get your hostname. Define $EMAIL_ADDR by hand.EMAIL_ADDRUSER@hostUsing EMAIL_ADDR as anonymous FTP password.1ftp://1/1%%/opt_1anonymousparamsdirzfcdAC'9A'A"=FA ARAB &FAB+;$;0AC|FThAFqAB &FA1A.#+;t;A FQ AF%2` A |F0Elocallastloczfconfiglastloc_ZFTP_SESSIONZFTP_VERBOSEZFTP_VERBOSE//0 +zftpseconds unsetzftpsecondsZFTP_HOSTzfopenreturndo_closezftptest/dev/nulllastlocZFTP_HOSTlastloc%%:zfcdlastloc:AfdқCABr!Q'd|AA.r+{9ABF$sFABCF$CFA  AV Rr+ r+%A.!EA A$}A f+AN'2pr+$r+AC f+A&*r+$AC (+=A 'dAt 1 A" f#4 A fk41A.7 AF0Iemulatecurcontext:zflocalcurcontext:zfcdzfautocheckreturnHOMEHOME/~1#HOME # == 0 zfconfiglastdir_ZFTP_SESSIONeval${ZFTP_PWD:s!1!2!}lastdirZFTP_PWDzftp@lastdirzfconfigcurdir_ZFTP_SESSIONzfconfiglastdir_ZFTP_SESSIONprintzfconfiglastloc_ZFTP_SESSIONAfdқCACF <A AVRr+qr+A. AC'A  ,D`A4EAA.ruAF ACG"KA 1A.r+A."K QA.r+{9A."KzAC,EA<1A uAC,A,A""(2` ;|("KAC  A) A4 f @pۜzیۄ A, AC ,)qA F\+<emulatesetoptextendedglobHOMEHOME/~1#HOMElocalZFTP_VERBOSEmatchmbeginmendZFTP_SYSTEMUNIXrcexpandparam/1%/replyMfzftp ls -lF $dir:d:space::space:c8/#replyMfzftp dir $dir:d:space::space:c8reply/bd:space::space:c8///match2dirdir/WIDGET_wanteddirectoriesexplremote directorycompadddirreplydirreplyzfget_matchAfdқCABr!Q'd|AlCgdb{+kEzEEE E,EDAgd\tAAf9zA"r"CFCFTAFpA"FAl +<A AVRrMqrA. A<1A.AF8 Au1uA"YA,q+kA,$b{AXC j A&% AB f:+'+^A , A V$A $+f1A,D+A\uA 1A.0rEA C f`y!AB$ D-3@+A  &TQ A.5rEA F`yA &ADC' A&9 = AF`e A & Q A.< = ACF` A & A A$D- A"Ar C -% qA.C@AFL i emulatecurcontext:zflocalcurcontext:zfcgetstatopt_Gopt_tremlistlocstremstrstattsizegetoptsoptprintzfcget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )remlistHOMEremlistHOME/~remlist#HOMEopt_Gzfrglob #remlist remlistrem:tloczftpremzftp local $loczftpremoteremrstatremst<$1<<<'temporary file'rstatprintServer does not support SIZE command.\nAssuming you know what you're doing...zftpgetatremlocst1locstatcontinueRemote file not found: remcontinuelocst1remst1Local file is larger!continuelocst1Files are already the same size.continuelocst1opt_tzfrtimeremst2returnstatABr1'D\AFcurcontext:zflocalcurcontext:zfclosezftpcloseAfdқCABr!Q'd|ATCgdb{+kEEE E AC1A.rE#A. QA.r#A. qA f 9=AFAxb{+<A,!+kA" AV"Rr-rEA.#+keA@C gA&%RA F A.']A A S$A $+f1A,D+A\uA< F A.0r9A C fTm=A,3DA  &XQA.5r9A $f| A&8ACFT A &l Q A.; AFT A C&D qACi A A.Dr AB,cf  Cf|( ED AB,f E f| GDACF emulatecurcontext:zflocalcurcontext:zfcputstatlocstremstoffstailtypeecho abcd | tail +2cecho abcd | tail --bytes=+2printI can't get your `tail' to start from arbitrary characters.\nIf you know how to do this, let me know.returnlocremHOMEHOME/~rem#HOMECan't read file loczftp local $loczftpremoteremrstatremst<$1<<<'temporary file'rstatprintServer does not support remote status commands.\nYou will have to find out the size by hand and use zftp append.statcontinuezftpremlocremst1locst1Remote file is larger!continuelocst1Files are already the same size.continue offs = remst[1] + 1 tailtypetail+offscappendbytes+offsappendreturnstatAfdқCAF <ABrq'A,z(HJ`A'AC'4YA,N"A.r+<A AV Rr+r+A C&A &A.#+A C &A,'(5A@ L'PiJ[YA,)zA  A0 A.+H0 2A.-0+"A"/2@   fk4A"02@ 9 a fk4AC F$A FA &ABCF$CFA<L P!PA= AV=Rrere A.>A6AFB2`r+$=AE1AERYA,FxA.G5A.Iq$AM1AMRA,N4A.OE A,Qm A,R` Al 1 AVS2 2P  ABVr % fk4 A"X X ] Ad 1 A&[r Afk4 A"_ F$A"1A6b2@ Af ! qACA(CACF< P A<f< "K+<F++ F e A  f< "K+<Af emulatesetoptextendedglobcurcontext:zflocalcurcontext:zfdirfileoptlistredirnewargsforcecurdirzfconfigcurdir_ZFTP_SESSIONotherdirzfconfigotherdir_ZFTP_SESSIONshiftbreakrfd1i = 1i <= #optlistoptlisticurdircurdircurdirotherdirotherdirotherdirzffcachereturnzfautochecki <= #argvi++ argviHOMEHOME/argvi~argv[i]#HOMEredircurdircurdirTMPPREFIXzfcurdir_ZFTP_SESSION_zfconfigcurdir_ZFTP_SESSIONcurdircurdirotherdirTMPPREFIXzfotherdir_ZFTP_SESSION_zfconfigotherdir_ZFTP_SESSIONotherdirotherdir*filenewargsforcenewargszfconfigotherargs_ZFTP_SESSIONnewargszfconfigotherargs_ZFTP_SESSIONnewargs # == 0 evalPAGER:/usr/bin/pager$filezftptestPAGER:/usr/bin/pagerPAGER:/usr/bin/pagerA"r+$GA,IAC1A RAGAAGJAT A ADA,]A.Ah 1A.r+$ACFHaQAAFlocalfcache_namezfconfigfcache_ZFTP_SESSIONfcache_namevalsvzfconfigIfcache_zftp_fcache_integervalsrzftp_fcache_i i++ zftp_fcache_izfconfigfcache_ZFTP_SESSIONfcache_nameunsetfcache_name (P)#fcache_name == 0 evalfcache_name=(${(f)"$(zftp ls)"})AfdқCABr!Q'd|A(Cdz+kb{Ag4HANAfl9zA"r"CFCF0AFLaA"FAB &(F0A1 AF"2`+$ YAFA F0 A.%+$A F5A F0A Q=A* YA 'd"KYA,,AC ,2+<A/ AV/Rrr9A.0YA< 1A.2A FAC A5A +kA,7b{9A A fp:+A"9rCfqA.;4AA AVARr+r+A.B AB +fp:++D4+A"GA &pACF0emulatecurcontext:zflocalcurcontext:zfgcpremlistopt_Gopt_tintegerstatdo_closegetoptsoptprintzfgcp: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckargv1zfgcp: last argument must be a directory.zfgcp: not enough arguments.argv1remlistHOMEremlistHOME/~remlist#HOMEopt_Gzfrglob #remlist remlistdir/rem:tzftpremlocopt_tzfrtimeHOME/~1#HOME do_close zfclosestatACfdқCABr!Q'd|A,db{+kzACg,L`AAfzA"r"FF\ACFxA"F AB C&TCF\A=+<A% AV%RA.&A< 1A.(UAC FpA< &1&A+A ,"+kAC A- A f:+A./L+A,1b{)A  A Mf:+A"3ra f|MqA.5LA"< &AF\emulatecurcontext:zflocalcurcontext:zfgetremlistopt_Gopt_topt_cintegerstatdo_closegetopts:Gtcoptprintzfget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckremlistHOMEremlistHOME/~remlist#HOMEopt_Gzfrglob #remlist remlistopt_czftpremrem:tlocopt_tzfrtime do_close zfclosestatAfdқCABC 4DlCFA AVR++A. AycAV 2M+;|9ACdA' 5AB4sFApCMCA A'"KABr;|"K)A$Hbd2ACg\xA\ACx=AA A CfH"KA\A\ACx!AxA4 f 4 d y ۜzیۄ A,C & $ d = t ۄ A  fHb AC qA G A C &D Ap  A. i A, & $ d = 4  AC emulatezmodloadzsh/filesb:zf_lnreturnHOMEHOME/~1#HOMEZFTP_SYSTEMUNIXsetoptlocaloptionsclobberextendedgloblocaltmpfTMPPREFIXzfgmzf_ln<<<''tmpfWIDGET1%/dirdir/zftpreply1reply2Mf<$tmpfdir:/%/f<$tmpfdir%*:/#reply1Mf<$tmpf:d:space::space:c8reply1/bd:space::space:c8///match2f<$tmpf:d:space::space:c8reply2/b:space::space:c8/match2_wanteddirectoriesexplremote directorycompaddreply1_wantedfilesremote filecompaddreply21*2reply<$tmpffcache_namezffcacheWIDGET_wantedcompaddfignorePfcache_nameAfdқCAF <AB rq'AFAg A$zACACf<qzA"r]"FpFAF 5A"hCFAX AAFp%ACFAp-1A6 2@  AC' A,"J2bAH$5NAf ۔ A.$5}A.&J2QA' A $NA f ۔A"*,Rrr!  &dA.-A,1EAX  A3RA FpAC FA "KA,9 A,:E A,; q A,<"K ABAV>2r r = AFT i Q AVARr 2r A"F = "C FT AVD2r m r A" & "H FT AG8 A8 U AC AVM2r= r A" & "N FT qA"f = "P FT emulatesetoptextendedglobcurcontext:zflocalcurcontext:zfgotoZFTP_BMFILE:ZFDOTDIR:HOME/.zfbkmarkstypesetbkmarkslineopt_ngetoptsoptprintzfgoto: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 ) # != 1 Usage: zfgoto bookmarkopt_n/.ncftp/bookmarksoldifsIFSreadbkmarksline1line[3]:-anonymous@line[2]:line[6]/.ncftp/bookmarksoldifsZFTP_BMFILEline:blank::blank:#continuebkmarksline%% line#* ZFTP_BMFILEbkmarks1Bookmark `1' not founduserhostline%%@line@line%%:line:ZFTP_USERuserZFTP_HOSThostzfcddir:anonymouszfanondirzfconfiglastloc_ZFTP_SESSIONhost:zfconfiglastuser_ZFTP_SESSIONzfopenparamszftp paramsparams1params2ABr1C'D\AFcurcontext:zflocalcurcontext:zfherezfcdPWDAfdқCAA.+tABCf LDCFtAB L FtAC616ACf LAG AB< %Lq ABC< CAB< )PuAp A"F< =AeAg< A%AF 9AF ACF AF %AF yA,C&۬DXA4f۬<TlA0F۬(D`A,& ۬@ \  $ A baA"&RPrA Ry < A$ & A F A L 4m \  \Hۜzیu\l\l\\uۜA( @\`ۜzیDA$C \lT< A \\D`A0 FۜۜA(A0ۜQA>+ zA('-PqA" fAf%+A"2@ ECfhEAA4Cf ۜ-ۜu\ACFemulatezmodloadzsh/net/tcpreturnzsh/zftpzftpzsh/zutillocalzstyle:zftp:*progress:zftp:*progress:zftp:*update:zftp:*:zftp:*titlebar:zftp:*titlebartruefunctionschpwd/dev/null:zftp:*:zftp:*typesetzfconfiglastsessiondefaultaliaszfcdnoglob zfcdzfgetnoglob zfgetzflsnoglob zflszfdirnoglob zfdirzfugetnoglob zfugetautoloadzfanonzfautocheckzfcdzfcd_matchzfcgetzfclosezfcputautoloadzfdirzffcachezfgcpzfgetzfget_matchzfgotozfherezfinitzflsautoloadzfmarkzfopenzfparamszfpcpzfputzfrglobzfrtimezfsessionautoloadzfstatzftp_chpwdzftp_progresszftransferzftypezfugetzfuput_patcomps_patcompsr_zfcompctlsetoptcompletealiasescompctlp[1](open params user login type ascii binary mode put putat get getat append appendat ls dir local remote mkdir rmdir delete close quit)w[1,cd][1,ls][1,dir][1,rmdir]zfcd_matchW[1,get*]w[1,delete][1,remote]w[1,open][1,params]hostsw[1,session]${$(zftp session):#$ZFTP_SESSION}compctlzfcd_matchcompctlcompctlcompctl$(awk '{print $1}' ${ZFTP_BMFILE:-${ZDOTDIR:-$HOME}/.zfbkmarks})W[1,-*n*]$(awk -F, 'NR > 2 { print $1 }' ~/.ncftp/bookmarks)compctl${$(zftp session):#$ZFTP_SESSION}zftransfer_matchlocalsess1%%:oldsessZFTP_SESSIONsesszftpsessionzfget_match1:oldsesssessionreplysess:replycompctl$(zftp session)C[0,*:*]zftransfer_matchzftransferreturnAfdқCABr!QC'd|A AVRr+r+A. AF0$Af`b+<emulatecurcontext:zflocalcurcontext:zflsHOMEHOME/~1#HOMEzfautocheckzftpACfdқCAF <AB rq'AFACg AG A1A !A$NAfT۔ A"*Rriri C&A.qA AA4 Af<۔UAF A#A F<AC FA 1A( iA.)QA* eA.+A F< A FA@  A f<۔Uemulatesetoptextendedglobcurcontext:zflocalcurcontext:zfmarkZFTP_BMFILE:ZDOTDIR:HOME/.zfbkmarkstypesetbkmarkslineZFTP_BMFILEreadline:blank::blank:#continuebkmarksline%% line#* ZFTP_BMFILE # == 0 kobkmarksprintline bkmarks[line]return # > 1 Usage: zfmark [bookmark]ZFTP_HOSTbkmarks1ZFTP_USER@ZFTP_HOST:ZFTP_PWDzfconfiglastloc_ZFTP_SESSIONzfconig[lastuser_ZFTP_SESSION]@zfconfig[lastloc_ZFTP_SESSION]No current or recent ZFTP session to bookmark.ZFTP_BMFILEACfdқCAB r!Q'd|A dz"KANAf҉zA"r)"F<UFAFA"4FhA 1 A.r+;|9A,A,"KA.A51A.rAABf\p+<FAA. r+$ATC 1 ACF\AF\AFA"(" F+<(A 1A F\pA"+  F\A", ) FAC FA4C 1A1 UA FhUemulatecurcontext:zflocalcurcontext:zfopenopt_1setparamsgetoptsoptprintzfopen: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )1ftp://1/1%%/opt_1zftpopenloginclose # > 0 zfparamsZFTP_HOSTsetparamsdirzfcdAfdқCABr!QC'd|A51AN2pr+$r+A(C'dEZ+A, Z+A" FAH,Z+ (LtACFQAA")A AMA 1A.r+qA.qA.Afl+<emulatecurcontext:zflocalcurcontext:zfparamssessZFTP_SESSIONzfconfigfcache_sesskeyunsetfcachelastloclastdircurdirotherdirotherargslastuserzfconfig[key_sess] # > 0 # < 2 # < 3 ??Password on 1: ?Password for 2##\? on 1: zftpparamsAfdқCABr!Q'd|Agd+kb{AgAB &FLAV0AvR+$Rr+ir+;|AC'd"KA,A AVRrrA."KAB"2` ;|"K]Ap, b{+<A,!+k}AB $f"$A% AV%Rr+r+A.& A  $+f+A,)+A Av*22rErq A  $+fA.-+A"1  C &<A FL]emulatecurcontext:zflocalcurcontext:zfpcpintegerstatdo_closezfautocheckreturn...argv1argv1dirHOMEHOME/~dir#HOMEdir/dirloc:tzftpremlocHOME/~2#HOMEZFTP_CODEZFTP_REPLYIs a directory2/1:t do_close zfclosestatACfdқCABr!Q'd|AgdzAC4AAfLґzA"rm"FFACF,AA"tFA C&Ak8Ab{+kAG8XA%lA3b{+<AA Al A AC%A &qA. +kqA.+k%A $fH]A"qX+A|1AFHA,ABXA &AAAfHD]ACFA"qX+AF $AFDaAF+<A,@+A"B &DAFdemulatecurcontext:zflocalcurcontext:zfputopt_rintegerstatdo_closeabortgetoptsoptprintzfget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckzfput_sublocalsubdirsintegerstatsubdirsopt_rlocsubdirssubdirscontinueloc:tzftprem ? testabort stat break #subdirs && ! abort mkdirsubdirs1zfput_subsubdirs1/NDshiftsubdirsreturnstatzfput_substat do_close zfclosereturnstatAfdқCACF <A(p "KJA"Cۤ1`AFA\C 1 An!2R` AF<At MA.&At +A,$+0fbAFXmq:A 5'AV,2rar;|9A. 1A..rA.0"KqA.2"KzA,4AxC +#A,0$+fbAXqAC,E AGpA C&A,>A, ACFTiemulatesetoptextendedgloblocalnondirfileszfrglobzstylecurcontextremoteglobzfrglobevalpat$1patzfrglobreturnzftppat/dev/nulleval1=($(<$1))<<<'temporary file'ZFTP_SYSTEMUNIXpat/pat%/nondirpat/zftpdir/dev/nullfiles<$1<<<'temporary file'filesfiles:tlocalfcache_namezffcachenondirpatPfcache_nameeval1=(${files:/^${~nondir}})AfdқCACF DA<xj{sBjKs+AgxL(A1A +A.+q ACmA" A"RF A,=A,j{siA,A,BA,jKsA,+%AX, YA ۜ۔)A.$ETA ۜ۔!MA,'EA,)A ۜ EA ۤ+emulatezmodloadzsh/datetimelocaltimegmtimeloctimeyearmdaytmpdatedays_since_epochzftp remote $2 2>/dev/nulltimetime2returntime1,4time5,6time7,8time9,10time11,12time13,141970..( year - 1)strftimetmpdate%Y/%m/%dy/12/31days_since_epochstrftime "%j" $tmpdatetmpdate%Y/%m/%dyear/mon/( mday - 1 )days_since_epoch( sec + 60 * ( min + 60 * (hr + 24 * days_since_epoch)) )%Y%m%d%H%M%SEPOCHSECONDStouchtime1,12.time13,14ACfdқCABr!Q'd|A(dz4A AfTuzA" r"FFHAFdyA. 4A"FAC1AvR+$22@ ARe+$AFAFHAA -AGdHAC,H]AftAT 1A.rAFA &QA! AF$8AC A% YA 1A.&uA 'd5A f$luA,)A FA FMAC FHA C 1 A1 eA( 'd"+cEZ+A,3Z+% A"4  F AHC ,Z+  , P x A F Af$ - A C&HA"< A FHe AP A.>r+$AF} A &HA'd Af$D +APC A.Ee A,F A &$ emulatecurcontext:zflocalcurcontext:zfsessionopt_lopt_vopt_oopt_dhadoptsgetopts:lovdoptprintzfsession: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )hadoptsopt_dUsage: zfsession ( [ -lvod ] | session )opt_vsesszftp session(r.15.. ..:.)sess\tzfconfig[lastloc_sess]:-not connectedsessZFTP_SESSION *opt_lzftpsessionopt_ozfconfiglastsessionZFTP_SESSIONcursessionZFTP_SESSIONsessionzfconfiglastsessioncursessionZFTP_SESSIONzfsession: no previous session.1:ZFTP_SESSIONzfconfigfcache_delkeyunsetfcachelastloclastdircurdirotherdirotherargslastuserzfconfig[key_del]rmsessiondelhadoptsstatZFTP_SESSIONoldsessionZFTP_SESSION:defaultsessionZFTP_SESSIONoldsessionzfconfiglastsessionzftp_chpwdAfPAFhAB r'<A8GJ\EzEpACNACfұzA"r"FFPAFlA"CFA" IFAC[1OA AFAFmAFA" CFAA=19A AFA" =FuACFAft=A1A.rLAFQA.!r AFqA FA ft1A 1A.'r}A FQA.)rA FqA F qA F) q A F} A"3  FE A.5\A"9  CFA AF AF Aft} ACL ( A-= 0 } Aft 0  ACft 0 Aft0 ; ACft5A &AAFJ2` r AF$AFA'lAfAFPsetoptlocaloptionsunsetunsetoptksharrayscurcontext:zflocalcurcontext:zfstatstatopt_vgetoptsoptprintzfstat: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )ZFTP_SESSIONSession:\tZFTP_SESSIONZFTP_HOSTHost:\t\tZFTP_HOSTPort:\t\tZFTP_PORTIP:\t\tZFTP_IPZFTP_SYSTEMSystem type:\tZFTP_SYSTEMZFTP_USERUser:\t\tZFTP_USER ZFTP_ACCOUNTAccount:\tAFTP_ACCOUNTDirectory:\tZFTP_PWDTransfer type:\tZFTP_TYPEImageZFTP_TYPEAsciiUnknownTransfer mode:\tZFTP_MODEStreamZFTP_MODEBlockUnknownNo user logged in.Not connected.zfconfiglastloc_ZFTP_SESSIONLast location:\tzfconfig[lastloc_ZFTP_SESSION]ZFTP_REPLYLast reply:\tZFTP_REPLYVerbosity:\tZFTP_VERBOSETimeout:\tZFTP_TMOUTPreferences:\ti = 1i <= #ZFTP_PREFSi++ ZFTP_PREFSipPPassive sSSendport dDDumb ZFTP_PREFS[i]???ZFTP_HOSTopt_vzfautocheckStatus of remote server:ZFTP_VERBOSEzftpquoteSTATstatAA.)A'A" 2@ a fk4A, ACFH$AHH1ARmA"2@  fk4A,)A"ۤ &q5A" )A,)A,AGA($#A" 2@ۤAC'AA"""A!0 9A fXۄrq0 $A fXۄr=ZFTP_PWDzfconfiglastdir_ZFTP_SESSIONlocalcurdirzfconfigcurdir_ZFTP_SESSIONcurdircurdircurdirzfconfigotherargs_ZFTP_SESSIONzffcacheZFTP_USERzfotherdirzfotherdirzfotherdirzfconfiglastdir_ZFTP_SESSIONzstyle:zftpcurcontextchpwdzfconfiglastloc_ZFTP_SESSIONZFTP_HOST:ZFTP_PWDzfconfiglastuser_ZFTP_SESSIONZFTP_USERargs:zftpcurcontexttitlebarzfconfiglastloc_ZFTP_SESSIONstr%m: %~ strTERMsuncmdprint\033]lstr\033\xtermrxvtdttermEtermkterm\033]2;str\aA G0ALۜiALۜ00A"&Rpr%ACF`AZ1ZA }A"};4"" &`A'AC3-A&!A',AA,$Av#2r% 2prA@ A$AC FlA '0PuA 'A C fltqqA flt]qA flt)A  AV02r};4rAC F , A &lqA  G\ <| localstyleupdatezstyle:zftpcurcontextprogress:zftpcurcontextstylenonereturnZFTP_TRANSFER +zftpseconds SECONDS - zftpseconds < update sizeZFTP_TSIZE:ZFTP_SIZEsize:0frac( ZFTP_COUNT * 100 / size )%+COLUMNSCOLUMNS ! +zftpseconds printZFTP_FILE (size bytes): ZFTP_TRANSFERintegermaxwidth( COLUMNS - 7 )width( ZFTP_COUNT * maxwidth / size )\r%S(l:width:):-%s(l:maxwidth-width:):-: frac%%\rZFTP_FILE (size bytes): ZFTP_TRANSFER frac\rZFTP_FILE: ZFTP_TRANSFER ZFTP_COUNT+zftpsecondsunsetzftpsecondstypesetzftpsecondsSECONDSAfdқCABr!Q'd|A,Cd 8YA\ 1 A& +$AFACF`A 1 A.r+;9A,}A.AFA 1 A.r+;9A,!A. EAFeAAFR`Rr;|A. A` A.r5QAFmACF`A f$85AB C &XC F`A GdAC ۜA AF.2` --HA gd\Ax +*A,$+Lf1AtIA"4r4Ac)ACT4XAfl:+AflA" &fl A'$ < +AflP q AF emulatecurcontext:zflocalcurcontext:zftransfersess1sess2file1file2oldsessZFTP_SESSIONprintUsage: zftransfer sess1:file1 sess2:file2return1%%:1:sess1:ZFTP_SESSION2%%:2:sess2:ZFTP_SESSIONfile2file2file1:tsess1sess2zftransfer: must use two distinct sessions.zftpsessionzfautocheckstylezstyle:zftp:zftransferprogressstylenoneZFTP_TSIZEarrayzftpremotefile1/dev/nullarray<$1<<<'temporary file'arrayZFTP_TSIZEarray1zstyleprogressnonezftpfile1sessionsess2zfautocheckfile2localstatsessionoldsessreturnstatAGABr-]'pAF$A;AA, A1 A. rIJAF`yAFQ A. rI AF`AFqACFqA1A.+yA. AVR++A.JACF`=AFAfIlocaltypecurcontext:zfcurcontext:zftypezfautocheck # == 0 zftp typetypeprintCurrent type is image (binary)returnCurrent type is ASCIIiasciiiimageibinaryType not recognised: 1zftpAfdқCABr!QC'd|A$db{+kA,d$<z\tAgA"OA'Kk+Aft1Aft:jAD(AftAF`AftACFtAFA NA f<zA"1rU"C FhC FA F-A"4` FAB & FAl$+<A: AV:REiA.;$A<C1A.= AF0 $A1A@Q AC,+k A,Bb{ A,C A% AXC1AE  A;A $+f-A@eA $+fA,+Ae AC A.Mr] AFx AFl Q A.Pr] ACFx A,R A & A"UrE  C&` A(D1AV AANX2pEyA"YE   C&` AFx A fx tAAfی$q'A0%A&`9ACA.ay A"bE   &` AFx mA fx tACfی$ A"irE  Cfx rzA.j$rqA"nrE  x r*-AA.prAACA C-fX:+mAD1A.rrA-mqA.w +A" &AC Fl =emulatecurcontext:zflocalcurcontext:zfugetlocstatsremstatsdoitrstatremlistopt_vopt_sopt_Gopt_tintegerstatdo_closezfuget_print_timelocalprinttim[1,4]/tim[5,6]/tim[7,8] tim[9,10]:tim[11,12].tim[13,14]zfuget_printprint\nremote rem (zfuget_print_timeremstats2, remstats[1] bytes)\nlocal loc (zfuget_print_timelocstats2, locstats[1] bytes)getopts:vsGtoptprintzfuget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckremlistremlistHOMEremlistHOME/~remlist#HOMEopt_nzfrglob #remlist remlistrem:tdoitremstatsloczftplocalloclocstats<$1remoteremrstatremstats<<<'temporary file'rstatprintServer does not implement full command set required.returnFile not found on server: remstatcontinueopt_vzfuget_print locstats[1] != remstats[1] locstats2remstats2opt_sLocal file loc more recent than remote,but sizes are different. Transfer anyway [y/n]? readdoitremstats2Local file loc has same size as remote,but local file is older. Transfer anyway [y/n]? transferringfilelocdoitzftpremopt_tzfrtimeremstats2 do_close zfclosestatACfdқCABr!Q'd|A$db{+kA Cd$z<TAglAOA'Kk+Aft1Aft:jADHAftAF`AftACF`uAFANAfұzA"#r"FFLA Fh}A"& FAB  &D FLAH A.*ru;9A FA0 ,+k+<A,0b{IA,1lA %Ap  A&3 A FA,5 A &( AS;A $+f-A@eA $+fA,+Ae9 Aa A.?r AF ACF Q A.Br A"Cr  r* KA"Er  C& A(D1AF9 AANH2p  A"I  C& AF 9 A f t Afیq'A0%A&P ACA.Q  A"R   & AF A f tACfی A"Yr  Cf rzA.ZrAd 1 A.^r AB $ f_+A"c &@ACF aemulatecurcontext:zflocalcurcontext:zfuputlocstatsremstatsdoitrstatopt_vopt_sintegerstatdo_closezfuput_print_timelocalprinttim[1,4]/tim[5,6]/tim[7,8] tim[9,10]:tim[11,12].tim[13,14]zfuput_printprint\nremote rem (zfuput_print_timeremstats2, remstats[1] bytes)\nlocal loc (locstats2, locstats[1] bytes)getoptsoptprintzfuget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckZFTP_VERBOSEMessages with code 550 are harmless.rem:tdoitremstatslocloc: file not foundstatcontinuezftplocalloclocstats<$1remoteremrstatremstats<<<'temporary file'rstatprintServer does not implement full command set required.returnopt_vfileloczfuput_print locstats[1] != remstats[1] locstats2remstats2opt_sRemote file rem more recent than local,but sizes are different. Transfer anyway [y/n]? readdoitremstats2Remote file rem has same size as local,but remote file is older. Transfer anyway [y/n]? transferringdoitzftpremstat do_close zfclosestat5.8.1Pdebian/zsh-common//usr/share/zsh/functions/Zftp/zfanondebian/zsh-common//usr/share/zsh/functions/Zftp/zfautocheck8debian/zsh-common//usr/share/zsh/functions/Zftp/zfcd1debian/zsh-common//usr/share/zsh/functions/Zftp/zfcd_matcho ,debian/zsh-common//usr/share/zsh/functions/Zftp/zfcget Xdebian/zsh-common//usr/share/zsh/functions/Zftp/zfclose T `debian/zsh-common//usr/share/zsh/functions/Zftp/zfcput W  debian/zsh-common//usr/share/zsh/functions/Zftp/zfdirdebian/zsh-common//usr/share/zsh/functions/Zftp/zffcache1 0debian/zsh-common//usr/share/zsh/functions/Zftp/zfgcpAdebian/zsh-common//usr/share/zsh/functions/Zftp/zfgetIdebian/zsh-common//usr/share/zsh/functions/Zftp/zfget_match- xdebian/zsh-common//usr/share/zsh/functions/Zftp/zfgotoXdebian/zsh-common//usr/share/zsh/functions/Zftp/zfhere debian/zsh-common//usr/share/zsh/functions/Zftp/zfinitAdebian/zsh-common//usr/share/zsh/functions/Zftp/zflsAt4debian/zsh-common//usr/share/zsh/functions/Zftp/zfmarkdebian/zsh-common//usr/share/zsh/functions/Zftp/zfopenW0debian/zsh-common//usr/share/zsh/functions/Zftp/zfparams debian/zsh-common//usr/share/zsh/functions/Zftp/zfpcpdebian/zsh-common//usr/share/zsh/functions/Zftp/zfput Qdebian/zsh-common//usr/share/zsh/functions/Zftp/zfrglob!debian/zsh-common//usr/share/zsh/functions/Zftp/zfrtime# pdebian/zsh-common//usr/share/zsh/functions/Zftp/zfsession%j debian/zsh-common//usr/share/zsh/functions/Zftp/zfstat(+ debian/zsh-common//usr/share/zsh/functions/Zftp/zftp_chpwd)_ debian/zsh-common//usr/share/zsh/functions/Zftp/zftp_progress*debian/zsh-common//usr/share/zsh/functions/Zftp/zftransfer,O`debian/zsh-common//usr/share/zsh/functions/Zftp/zftype-i debian/zsh-common//usr/share/zsh/functions/Zftp/zfuget15 debian/zsh-common//usr/share/zsh/functions/Zftp/zfuputAfdCABr!Q'd|AdzK"ACNACfzA" r"F-FAFA"  CF@YATSARAgd,A1.Ar9t;.A A ,A\yA" QqA"RA""1A RA( 'd!,A%P,A&Ah  A  f,A(A Cf,,A+Dy.A,AL 1A.RA FA F,A2A F %A6 1.A6r+9|;,A7 ,A8K" .A9 5A 1.A<r YABC+ tCF qA + tABFFA41AC AF emulatecurcontext:zflocalcurcontext:zfanonopt_1getoptsoptprintzfanon: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )EMAIL_ADDRdomainhostHOST/etc/resolv.confdomainMf/dev/null:Name:2oldvbZFTP_VERBOSEoldtmZFTP_TMOUTZFTP_VERBOSEZFTP_TMOUTzftpopen/dev/nullZFTP_HOSTcloseZFTP_VERBOSEoldvbZFTP_TMOUToldtmCan't get your hostname. Define $EMAIL_ADDR by hand.EMAIL_ADDRUSER@hostUsing EMAIL_ADDR as anonymous FTP password.1ftp://1/1%%/opt_1anonymousparamsdirzfcdAC'9A'A"=FA ARA B&FAB+;$;0AC|FThAFqA B&FA1.A#+;t;A F QFA%`2 A |F0Elocallastloczfconfiglastloc_ZFTP_SESSIONZFTP_VERBOSEZFTP_VERBOSE//0 +zftpseconds unsetzftpsecondsZFTP_HOSTzfopenreturndo_closezftptest/dev/nulllastlocZFTP_HOSTlastloc%%:zfcdlastloc:AfdCABr!Q'd|A.Ar+9{ABFs$FABCF$CFA VA Rr+ r+%.A!EA A$}A f+NA'p2r$+r+A Cf+&A*r$+A C(+=A 'dAt  1A" f#4 A fk41.A7 AF0Iemulatecurcontext:zflocalcurcontext:zfcdzfautocheckreturnHOMEHOME/~1#HOME # == 0 zfconfiglastdir_ZFTP_SESSIONeval${ZFTP_PWD:s!1!2!}lastdirZFTP_PWDzftp@lastdirzfconfigcurdir_ZFTP_SESSIONzfconfiglastdir_ZFTP_SESSIONprintzfconfiglastloc_ZFTP_SESSIONAfdCACF <A VARr+qr+.A AC'A  ,D`A4EA.AruAF ACGK"A 1.Ar+.AK" Q.Ar+9{.AK"zAC,EA<1A uAC,A,A""(`2 |;(K"A C A) A4 f @pz A, A C,)qA F\<+emulatesetoptextendedglobHOMEHOME/~1#HOMElocalZFTP_VERBOSEmatchmbeginmendZFTP_SYSTEMUNIXrcexpandparam/1%/replyMfzftp ls -lF $dir:d:space::space:c8/#replyMfzftp dir $dir:d:space::space:c8reply/bd:space::space:c8///match2dirdir/WIDGET_wanteddirectoriesexplremote directorycompadddirreplydirreplyzfget_matchAfdCABr!Q'd|AlCgd{bk+EzEEE E,EDAgd\tAAf9zA"r"CFCFTAFpA"FAl <+A VARrMqr.A A<1.AAF8 Auu1A"YAq,k+,A${bAX Cj &A% A B f+:'+^A , A V$A $+f1,AD+A\uA 1.A0rEA  Cf`y!A$B D-3@+A  &T Q.A5rEA F`yA  &ADC' &A9  =AF` eA & Q.A< =ACF` A & A A$D- A"Ar C - %q.AC@AF L iemulatecurcontext:zflocalcurcontext:zfcgetstatopt_Gopt_tremlistlocstremstrstattsizegetoptsoptprintzfcget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )remlistHOMEremlistHOME/~remlist#HOMEopt_Gzfrglob #remlist remlistrem:tloczftpremzftp local $loczftpremoteremrstatremst<$1<<<'temporary file'rstatprintServer does not support SIZE command.\nAssuming you know what you're doing...zftpgetatremlocst1locstatcontinueRemote file not found: remcontinuelocst1remst1Local file is larger!continuelocst1Files are already the same size.continuelocst1opt_tzfrtimeremst2returnstatABr1'D\AFcurcontext:zflocalcurcontext:zfclosezftpcloseAfdCABr!Q'd|ATCgd{bk+EEE E AC1.ArE#.A Q.Ar#.A qA f 9=AFAx{b<+,A!k+A" VA"Rr-rE.A#k+eA@ Cg&A%RA F .A']A A S$A $+f1,AD+A\uA< F .A0r9A  CfTm=,A3DA  &XQ.A5r9A  $f| &A8ACFT A & l Q.A; AFT A C& DqAC iA .ADr A,Bcf Cf| (ED A,Bf Ef| GDACF emulatecurcontext:zflocalcurcontext:zfcputstatlocstremstoffstailtypeecho abcd | tail +2cecho abcd | tail --bytes=+2printI can't get your `tail' to start from arbitrary characters.\nIf you know how to do this, let me know.returnlocremHOMEHOME/~rem#HOMECan't read file loczftp local $loczftpremoteremrstatremst<$1<<<'temporary file'rstatprintServer does not support remote status commands.\nYou will have to find out the size by hand and use zftp append.statcontinuezftpremlocremst1locst1Remote file is larger!continuelocst1Files are already the same size.continue offs = remst[1] + 1 tailtypetail+offscappendbytes+offsappendreturnstatAfdCAF <ABrq'A,z(HJ`A'AC'4YA,"N.Ar+<A VA Rr+r+A C&A &.A#+A  C&,A'(5A@ 'LPiY[J,A)zA  A 0.A+H 02.A-+0"A"/@2   fk4A"0@2 9 a fk4A CF$A FA  &ABCF$CFA< LP!PA= VA=Rrere .A>A6FAB`2r$+=AE1AERY,AFx.AG5.AI$qAM1AMR,AN4.AO E,AQ m,AR` Al 1VAS2 P2  ABVr  % fk4 A"X X ]Ad 1&A[r Afk4 A"_ F$A"16Ab@2 Af !qACA(CACF < PA<f <K"<+F++ F eA  f <K"<+Af emulatesetoptextendedglobcurcontext:zflocalcurcontext:zfdirfileoptlistredirnewargsforcecurdirzfconfigcurdir_ZFTP_SESSIONotherdirzfconfigotherdir_ZFTP_SESSIONshiftbreakrfd1i = 1i <= #optlistoptlisticurdircurdircurdirotherdirotherdirotherdirzffcachereturnzfautochecki <= #argvi++ argviHOMEHOME/argvi~argv[i]#HOMEredircurdircurdirTMPPREFIXzfcurdir_ZFTP_SESSION_zfconfigcurdir_ZFTP_SESSIONcurdircurdirotherdirTMPPREFIXzfotherdir_ZFTP_SESSION_zfconfigotherdir_ZFTP_SESSIONotherdirotherdir*filenewargsforcenewargszfconfigotherargs_ZFTP_SESSIONnewargszfconfigotherargs_ZFTP_SESSIONnewargs # == 0 evalPAGER:/usr/bin/pager$filezftptestPAGER:/usr/bin/pagerPAGER:/usr/bin/pagerA"r+$G,AIAC1A RAGAAGJTA A AD,A].AAh 1.Ar+$ACFHaQAAFlocalfcache_namezfconfigfcache_ZFTP_SESSIONfcache_namevalsvzfconfigIfcache_zftp_fcache_integervalsrzftp_fcache_i i++ zftp_fcache_izfconfigfcache_ZFTP_SESSIONfcache_nameunsetfcache_name (P)#fcache_name == 0 evalfcache_name=(${(f)"$(zftp ls)"})AfdCABr!Q'd|A(Cdzk+{bAg4HANAfl9zA"r"CFCF0AFLaA"FA B&(F0A 1FA"`2$+ YAFA F0 .A%$+A F5A F0A Q=A* YA 'dK"Y,A,A C2,<+A/ VA/Rrr9.A0YA< 1.A2A FA CA5A k+,A7{b9A A fp+:A"9rCfq.A;4AA VAARr+r+.AB A B+fp+:+D4+A"GA &pACF0emulatecurcontext:zflocalcurcontext:zfgcpremlistopt_Gopt_tintegerstatdo_closegetoptsoptprintzfgcp: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckargv1zfgcp: last argument must be a directory.zfgcp: not enough arguments.argv1remlistHOMEremlistHOME/~remlist#HOMEopt_Gzfrglob #remlist remlistdir/rem:tzftpremlocopt_tzfrtimeHOME/~1#HOME do_close zfclosestatACfdCABr!Q'd|A,d{bk+zACg,L`AAfzA"r"FF\ACFxA"F A BC&TCF\A=<+A% VA%R.A&A< 1.A(UA CFpA< &&1A+A ",k+A CA- A f+:.A/L+,A1{b)A  A  Mf+:A"3ra f|Mq.A5LA"< &AF\emulatecurcontext:zflocalcurcontext:zfgetremlistopt_Gopt_topt_cintegerstatdo_closegetopts:Gtcoptprintzfget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckremlistHOMEremlistHOME/~remlist#HOMEopt_Gzfrglob #remlist remlistopt_czftpremrem:tlocopt_tzfrtime do_close zfclosestatAfdCABC 4DlCFA VAR++.A AycVA 2M+9|;ACdA' 5ABs4FApCMCA A'K"ABr|;K")A$Hb2dACg\xA\ACx=AA A CfHK"A\A\ACx!AxA4 f  4 d y z A, C&  $ d = t A  fHb A C qA G A  C& DAp A. iA, & $ d = 4  A C emulatezmodloadzsh/filesb:zf_lnreturnHOMEHOME/~1#HOMEZFTP_SYSTEMUNIXsetoptlocaloptionsclobberextendedgloblocaltmpfTMPPREFIXzfgmzf_ln<<<''tmpfWIDGET1%/dirdir/zftpreply1reply2Mf<$tmpfdir:/%/f<$tmpfdir%*:/#reply1Mf<$tmpf:d:space::space:c8reply1/bd:space::space:c8///match2f<$tmpf:d:space::space:c8reply2/b:space::space:c8/match2_wanteddirectoriesexplremote directorycompaddreply1_wantedfilesremote filecompaddreply21*2reply<$tmpffcache_namezffcacheWIDGET_wantedcompaddfignorePfcache_nameAfdCAF <AB rq'AFAg A$zACACf<qzA"r]"FpFAF 5A"hCFAX  AAFp%ACFAp-16A @2  AC' ,A"2JbAH$5NAf  .A$5}.A&2JQA' A $NA f A*",Rrr!  &d.A-,A1EAX  A3RA FpA CFA K",A9 ,A: E,A; q,A<K" ABVA>2r r  =AF T i QVAARr 2r A"F ="C F T VAD2r mr A "& "H F T AG 8A 8 UAC VAM2r = r A "& "N F T qA"f  = "P F T emulatesetoptextendedglobcurcontext:zflocalcurcontext:zfgotoZFTP_BMFILE:ZFDOTDIR:HOME/.zfbkmarkstypesetbkmarkslineopt_ngetoptsoptprintzfgoto: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 ) # != 1 Usage: zfgoto bookmarkopt_n/.ncftp/bookmarksoldifsIFSreadbkmarksline1line[3]:-anonymous@line[2]:line[6]/.ncftp/bookmarksoldifsZFTP_BMFILEline:blank::blank:#continuebkmarksline%% line#* ZFTP_BMFILEbkmarks1Bookmark `1' not founduserhostline%%@line@line%%:line:ZFTP_USERuserZFTP_HOSThostzfcddir:anonymouszfanondirzfconfiglastloc_ZFTP_SESSIONhost:zfconfiglastuser_ZFTP_SESSIONzfopenparamszftp paramsparams1params2ABr1C'D\AFcurcontext:zflocalcurcontext:zfherezfcdPWDAfdCA.A+tABCf LDCFtAB  LFtAC661ACf LAG AB< %Lq ABC< CAB< )PuAp  A"F< =AeAg <A%AF 9AF ACF AF %AF yA,C&ҬDXA4fҬ<TlA0FҬ(D`A,& Ҭ @ \  $A baA"&PRr AR y< A$ & A F A  L4 m\  \Hzu\l\l\\uA( @\`zDA$ C\lT< A  \\D`A0 FA(A0QA>+ zA('-PqA" fAf%+A"@2 ECfhEAA4Cf -u\ACFemulatezmodloadzsh/net/tcpreturnzsh/zftpzftpzsh/zutillocalzstyle:zftp:*progress:zftp:*progress:zftp:*update:zftp:*:zftp:*titlebar:zftp:*titlebartruefunctionschpwd/dev/null:zftp:*:zftp:*typesetzfconfiglastsessiondefaultaliaszfcdnoglob zfcdzfgetnoglob zfgetzflsnoglob zflszfdirnoglob zfdirzfugetnoglob zfugetautoloadzfanonzfautocheckzfcdzfcd_matchzfcgetzfclosezfcputautoloadzfdirzffcachezfgcpzfgetzfget_matchzfgotozfherezfinitzflsautoloadzfmarkzfopenzfparamszfpcpzfputzfrglobzfrtimezfsessionautoloadzfstatzftp_chpwdzftp_progresszftransferzftypezfugetzfuput_patcomps_patcompsr_zfcompctlsetoptcompletealiasescompctlp[1](open params user login type ascii binary mode put putat get getat append appendat ls dir local remote mkdir rmdir delete close quit)w[1,cd][1,ls][1,dir][1,rmdir]zfcd_matchW[1,get*]w[1,delete][1,remote]w[1,open][1,params]hostsw[1,session]${$(zftp session):#$ZFTP_SESSION}compctlzfcd_matchcompctlcompctlcompctl$(awk '{print $1}' ${ZFTP_BMFILE:-${ZDOTDIR:-$HOME}/.zfbkmarks})W[1,-*n*]$(awk -F, 'NR > 2 { print $1 }' ~/.ncftp/bookmarks)compctl${$(zftp session):#$ZFTP_SESSION}zftransfer_matchlocalsess1%%:oldsessZFTP_SESSIONsesszftpsessionzfget_match1:oldsesssessionreplysess:replycompctl$(zftp session)C[0,*:*]zftransfer_matchzftransferreturnAfdCABr!QC'd|A VARr+r+.A AF0$Af`b<+emulatecurcontext:zflocalcurcontext:zflsHOMEHOME/~1#HOMEzfautocheckzftpACfdCAF <AB rq'AFACg AG A1A !A$NAfT A*"Rriri C&.AqA AA4 Af<۔UAF A#A F<A CFA 1A( i.A)QA* e.A+A F< A FA@  A f<۔Uemulatesetoptextendedglobcurcontext:zflocalcurcontext:zfmarkZFTP_BMFILE:ZDOTDIR:HOME/.zfbkmarkstypesetbkmarkslineZFTP_BMFILEreadline:blank::blank:#continuebkmarksline%% line#* ZFTP_BMFILE # == 0 kobkmarksprintline bkmarks[line]return # > 1 Usage: zfmark [bookmark]ZFTP_HOSTbkmarks1ZFTP_USER@ZFTP_HOST:ZFTP_PWDzfconfiglastloc_ZFTP_SESSIONzfconig[lastuser_ZFTP_SESSION]@zfconfig[lastloc_ZFTP_SESSION]No current or recent ZFTP session to bookmark.ZFTP_BMFILEACfdCAB r!Q'd|A dzK"ANAfzA"r)"F<UFAFA"4FhA 1.Ar+9|;,A,AK".AA51.ArAABf\p<+FA.A r$+ATC 1ACF\AF\AFA"(" F<+(A 1A F\pA"+  F\A", ) FA CFA4 C1A1 UA FhUemulatecurcontext:zflocalcurcontext:zfopenopt_1setparamsgetoptsoptprintzfopen: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )1ftp://1/1%%/opt_1zftpopenloginclose # > 0 zfparamsZFTP_HOSTsetparamsdirzfcdAfdCABr!QC'd|A51NAp2r$+r+A(C'dE+Z,A +ZA" FAH,+Z (LtACFQAA")A AMA 1.Ar+q.Aq.AAfl<+emulatecurcontext:zflocalcurcontext:zfparamssessZFTP_SESSIONzfconfigfcache_sesskeyunsetfcachelastloclastdircurdirotherdirotherargslastuserzfconfig[key_sess] # > 0 # < 2 # < 3 ??Password on 1: ?Password for 2##\? on 1: zftpparamsAfdCABr!Q'd|Agdk+{bAgA B&FLAV0vAR$+Rr+ir+|;AC'dK",AA VARrr.AK"A"B`2 |;K"]Ap ,{b<+,A!k+}A B$f"$A% VA%Rr+r+.A& A  $+f+,A)+A vA*22rErq A  $+f.A-+A"1  C&<A FL]emulatecurcontext:zflocalcurcontext:zfpcpintegerstatdo_closezfautocheckreturn...argv1argv1dirHOMEHOME/~dir#HOMEdir/dirloc:tzftpremlocHOME/~2#HOMEZFTP_CODEZFTP_REPLYIs a directory2/1:t do_close zfclosestatACfdCABr!Q'd|AgdzAC4AAfLzA"rm"FFACF,AA"tFA C&Ak8A{bk+AG8XA%lA3{b<+AA Al A AC%A &q.A k+q.Ak+%A $fH]A"qX+A|1AFH,AABXA &AAAfHD]ACFA"qX+AF $AFDaAF<+,A@+A"B &DAFdemulatecurcontext:zflocalcurcontext:zfputopt_rintegerstatdo_closeabortgetoptsoptprintzfget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckzfput_sublocalsubdirsintegerstatsubdirsopt_rlocsubdirssubdirscontinueloc:tzftprem ? testabort stat break #subdirs && ! abort mkdirsubdirs1zfput_subsubdirs1/NDshiftsubdirsreturnstatzfput_substat do_close zfclosereturnstatAfdCACF <A(p K"JA"C1`AFA\C 1nA!2`R AF<At M.A&At  +A,$+0fbAFXm:qA 5'VA,2rar9|;A. 1.A.r.A0K"q.A2K"z,A4Ax C+#A,0$+fbAXqAC,E AGpA C&,A>A, ACFTiemulatesetoptextendedgloblocalnondirfileszfrglobzstylecurcontextremoteglobzfrglobevalpat$1patzfrglobreturnzftppat/dev/nulleval1=($(<$1))<<<'temporary file'ZFTP_SYSTEMUNIXpat/pat%/nondirpat/zftpdir/dev/nullfiles<$1<<<'temporary file'filesfiles:tlocalfcache_namezffcachenondirpatPfcache_nameeval1=(${files:/^${~nondir}})AfdCACF DA<xs{jBsKj+AgxL(A1A +.A+ qACmA" A"RF ,A=,As{ji,A,AB,AsKj,A+%AX ,YA ).A$ETA  !M,A'E,A)A  EA +emulatezmodloadzsh/datetimelocaltimegmtimeloctimeyearmdaytmpdatedays_since_epochzftp remote $2 2>/dev/nulltimetime2returntime1,4time5,6time7,8time9,10time11,12time13,141970..( year - 1)strftimetmpdate%Y/%m/%dy/12/31days_since_epochstrftime "%j" $tmpdatetmpdate%Y/%m/%dyear/mon/( mday - 1 )days_since_epoch( sec + 60 * ( min + 60 * (hr + 24 * days_since_epoch)) )%Y%m%d%H%M%SEPOCHSECONDStouchtime1,12.time13,14ACfdCABr!Q'd|A(dz4A AfTuzA" r"FFHAFdy.A 4A"FAC1vAR$+2@2 ARe$+AFAFHAA -AGdHAC,H]AftAT 1.ArAFA &QA!  AF$8A CA% YA 1.A&uA 'd5A f$lu,A)A FA FMA CFHA  C 1A1 eA( 'dc+"E+Z,A3+Z %A"4  F AH C,+Z  , P xA F Af$  -A C&HA"< AFH eAP .A>r$+AF }A &HA'd Af$ D+APC .AE e ,AF A & $emulatecurcontext:zflocalcurcontext:zfsessionopt_lopt_vopt_oopt_dhadoptsgetopts:lovdoptprintzfsession: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )hadoptsopt_dUsage: zfsession ( [ -lvod ] | session )opt_vsesszftp session(r.15.. ..:.)sess\tzfconfig[lastloc_sess]:-not connectedsessZFTP_SESSION *opt_lzftpsessionopt_ozfconfiglastsessionZFTP_SESSIONcursessionZFTP_SESSIONsessionzfconfiglastsessioncursessionZFTP_SESSIONzfsession: no previous session.1:ZFTP_SESSIONzfconfigfcache_delkeyunsetfcachelastloclastdircurdirotherdirotherargslastuserzfconfig[key_del]rmsessiondelhadoptsstatZFTP_SESSIONoldsessionZFTP_SESSION:defaultsessionZFTP_SESSIONoldsessionzfconfiglastsessionzftp_chpwdAfPAFhAB r'<A8GJ\EzEpACNACfzA"r"FFPAFlA"CFA" IFAC[O1A AFAFmAFA"  CFAA=91A AFA" =FuACFAft=A1.ArLAFQ.A!r AFqA FA ft1A 1.A'r}A FQ.A)rA FqA F qA F ) qA F }A"3  F E.A5\A"9 CF AAF AF Aft }ACL (A- = 0 }Aft 0 ACft 0Aft 0; ACft5A &AFAJ`2 r AF$AFA'lAfAFPsetoptlocaloptionsunsetunsetoptksharrayscurcontext:zflocalcurcontext:zfstatstatopt_vgetoptsoptprintzfstat: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )ZFTP_SESSIONSession:\tZFTP_SESSIONZFTP_HOSTHost:\t\tZFTP_HOSTPort:\t\tZFTP_PORTIP:\t\tZFTP_IPZFTP_SYSTEMSystem type:\tZFTP_SYSTEMZFTP_USERUser:\t\tZFTP_USER ZFTP_ACCOUNTAccount:\tAFTP_ACCOUNTDirectory:\tZFTP_PWDTransfer type:\tZFTP_TYPEImageZFTP_TYPEAsciiUnknownTransfer mode:\tZFTP_MODEStreamZFTP_MODEBlockUnknownNo user logged in.Not connected.zfconfiglastloc_ZFTP_SESSIONLast location:\tzfconfig[lastloc_ZFTP_SESSION]ZFTP_REPLYLast reply:\tZFTP_REPLYVerbosity:\tZFTP_VERBOSETimeout:\tZFTP_TMOUTPreferences:\ti = 1i <= #ZFTP_PREFSi++ ZFTP_PREFSipPPassive sSSendport dDDumb ZFTP_PREFS[i]???ZFTP_HOSTopt_vzfautocheckStatus of remote server:ZFTP_VERBOSEzftpquoteSTATstatA.A)A'A" @2 a fk4,A ACFH$AHH1ARmA"@2  fk4,A)A" &5qA" ),A),AAGA($#A" @2AC'AA"""A! 09A fXrq0 $A fXr=ZFTP_PWDzfconfiglastdir_ZFTP_SESSIONlocalcurdirzfconfigcurdir_ZFTP_SESSIONcurdircurdircurdirzfconfigotherargs_ZFTP_SESSIONzffcacheZFTP_USERzfotherdirzfotherdirzfotherdirzfconfiglastdir_ZFTP_SESSIONzstyle:zftpcurcontextchpwdzfconfiglastloc_ZFTP_SESSIONZFTP_HOST:ZFTP_PWDzfconfiglastuser_ZFTP_SESSIONZFTP_USERargs:zftpcurcontexttitlebarzfconfiglastloc_ZFTP_SESSIONstr%m: %~ strTERMsuncmdprint\033]lstr\033\xtermrxvtdttermEtermkterm\033]2;str\aA G0ALiAL00A&"pRr%ACF`AZZ1A }A"}4;"" &`A'AC3-&A!A',AA,$vA#2r% p2rA@ A$A CFlA '0PuA 'A  CfltqqA  flt]qA  flt)A  VA02r}4;rA CF  ,A &lqA  G \< | localstyleupdatezstyle:zftpcurcontextprogress:zftpcurcontextstylenonereturnZFTP_TRANSFER +zftpseconds SECONDS - zftpseconds < update sizeZFTP_TSIZE:ZFTP_SIZEsize:0frac( ZFTP_COUNT * 100 / size )%+COLUMNSCOLUMNS ! +zftpseconds printZFTP_FILE (size bytes): ZFTP_TRANSFERintegermaxwidth( COLUMNS - 7 )width( ZFTP_COUNT * maxwidth / size )\r%S(l:width:):-%s(l:maxwidth-width:):-: frac%%\rZFTP_FILE (size bytes): ZFTP_TRANSFER frac\rZFTP_FILE: ZFTP_TRANSFER ZFTP_COUNT+zftpsecondsunsetzftpsecondstypesetzftpsecondsSECONDSAfdCABr!Q'd|A,Cd 8YA\ 1&A $+AFACF`A 1.Ar+9;,A}.AAFA 1.Ar+9;,A!.A EAFeAFA`RRr|;.A A`  .Ar5QAFmACF`A f$85A B C&X CF`A GdA CA FA.`2 --HA gd\Ax +*A,$+Lf1AtIA"4r4Ac)ACT4XAfl+:AflA "&fl A' $ <+Afl P qAF emulatecurcontext:zflocalcurcontext:zftransfersess1sess2file1file2oldsessZFTP_SESSIONprintUsage: zftransfer sess1:file1 sess2:file2return1%%:1:sess1:ZFTP_SESSION2%%:2:sess2:ZFTP_SESSIONfile2file2file1:tsess1sess2zftransfer: must use two distinct sessions.zftpsessionzfautocheckstylezstyle:zftp:zftransferprogressstylenoneZFTP_TSIZEarrayzftpremotefile1/dev/nullarray<$1<<<'temporary file'arrayZFTP_TSIZEarray1zstyleprogressnonezftpfile1sessionsess2zfautocheckfile2localstatsessionoldsessreturnstatAGABr-]'pAF$A;A,A A 1.A rIJAF`yAF Q.A rI AF`AFqACFqA1.A+y.A VAR++.AJACF`=AFAfIlocaltypecurcontext:zfcurcontext:zftypezfautocheck # == 0 zftp typetypeprintCurrent type is image (binary)returnCurrent type is ASCIIiasciiiimageibinaryType not recognised: 1zftpAfdCABr!QC'd|A$d{bk+A,d$<z\tAgA"OA'kK+Aft1Aftj:DA(AftAF`AftACFtAFA NA f<zA"1rU" CFh CFA F-A"4` FA B & FAl̬$<+A: VA:REi.A;$A<C1.A= AF 0$A1A@ QAC,k+ ,AB{b ,AC A% AXC1AE A;A $+f-A@eA $+f,A+Ae AC .AMr ]AF x AF l Q.APr ]ACF x ,AR A & A"Ur E C& `A(D1AV ANAXp2EyA"Y E C& `AF xA f xtAAf$'qA0%&A`9AC.Aay A"b E & `AF xmA f xtACf$ A"ir E Cf xzr.Aj$rqA"nr E  x*r-A.AprAACA C-fX+:mAD1.ArrA-mq.Aw +A" &A CF l=emulatecurcontext:zflocalcurcontext:zfugetlocstatsremstatsdoitrstatremlistopt_vopt_sopt_Gopt_tintegerstatdo_closezfuget_print_timelocalprinttim[1,4]/tim[5,6]/tim[7,8] tim[9,10]:tim[11,12].tim[13,14]zfuget_printprint\nremote rem (zfuget_print_timeremstats2, remstats[1] bytes)\nlocal loc (zfuget_print_timelocstats2, locstats[1] bytes)getopts:vsGtoptprintzfuget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckremlistremlistHOMEremlistHOME/~remlist#HOMEopt_nzfrglob #remlist remlistrem:tdoitremstatsloczftplocalloclocstats<$1remoteremrstatremstats<<<'temporary file'rstatprintServer does not implement full command set required.returnFile not found on server: remstatcontinueopt_vzfuget_print locstats[1] != remstats[1] locstats2remstats2opt_sLocal file loc more recent than remote,but sizes are different. Transfer anyway [y/n]? readdoitremstats2Local file loc has same size as remote,but local file is older. Transfer anyway [y/n]? transferringfilelocdoitzftpremopt_tzfrtimeremstats2 do_close zfclosestatACfdCABr!Q'd|A$d{bk+A Cd$z<TAglAOA'kK+Aft1Aftj:DAHAftAF`AftACF`uAFANAfzA"#r"FFLA Fh}A"& FA B &D FLAH .A*ru9;A FA0 ,k+<+,A0{bI,A1lA %Ap  &A3 A F,A5 A  & (AS;A $+f-A@eA $+f,A+Ae 9Aa .A?r AF ACF  Q.ABr A"Cr  *r KA"Er  C& A(D1AF 9ANAHp2 A"I  C& AF 9A f t Af'qA0%&AP AC.AQ  A"R  & AF A f tACf A"Yr  Cf zr.AZrAd 1.A^r A B$ f_+A"c &@ACF aemulatecurcontext:zflocalcurcontext:zfuputlocstatsremstatsdoitrstatopt_vopt_sintegerstatdo_closezfuput_print_timelocalprinttim[1,4]/tim[5,6]/tim[7,8] tim[9,10]:tim[11,12].tim[13,14]zfuput_printprint\nremote rem (zfuput_print_timeremstats2, remstats[1] bytes)\nlocal loc (locstats2, locstats[1] bytes)getoptsoptprintzfuget: bad option: -OPTARGreturnevalopt_opt=1 OPTIND > 1 shift( OPTIND - 1 )zfautocheckZFTP_VERBOSEMessages with code 550 are harmless.rem:tdoitremstatslocloc: file not foundstatcontinuezftplocalloclocstats<$1remoteremrstatremstats<<<'temporary file'rstatprintServer does not implement full command set required.returnopt_vfileloczfuput_print locstats[1] != remstats[1] locstats2remstats2opt_sRemote file rem more recent than local,but sizes are different. Transfer anyway [y/n]? readdoitremstats2Remote file rem has same size as local,but remote file is older. Transfer anyway [y/n]? transferringdoitzftpremstat do_close zfclosestat