mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| emulate -L zsh
 | |
| 
 | |
| if [[ $1 != -n ]]; then
 | |
|    zmodload -i zsh/net/tcp || return 1
 | |
|    zmodload -ia zsh/zftp zftp || return 1
 | |
| fi
 | |
| 
 | |
| if zmodload -i zsh/zutil; then
 | |
|   local arr
 | |
|   # Set defaults for styles if none set.
 | |
|   zstyle -g arr ':zftp:*' progress || zstyle ':zftp:*' progress bar
 | |
|   zstyle -g arr ':zftp:*' update   || zstyle ':zftp:*' update   1
 | |
|   zstyle -g arr ':zftp:*' titlebar || zstyle ':zftp:*' titlebar true
 | |
|   if functions chpwd >&/dev/null && ! zstyle -g arr ':zftp:*' chpwd; then
 | |
|     zstyle ':zftp:*' chpwd true
 | |
|   fi
 | |
| 
 | |
|   typeset -gA zfconfig
 | |
|   zfconfig=(lastsession default)
 | |
| fi
 | |
| 
 | |
| alias zfcd='noglob zfcd'
 | |
| alias zfget='noglob zfget'
 | |
| alias zfls='noglob zfls'
 | |
| alias zfdir='noglob zfdir'
 | |
| alias zfuget='noglob zfuget'
 | |
| 
 | |
| autoload -U zfanon zfautocheck zfcd zfcd_match zfcget zfclose zfcput
 | |
| autoload -U zfdir zffcache zfgcp zfget zfget_match zfgoto zfhere zfinit zfls
 | |
| autoload -U zfmark zfopen zfparams zfpcp zfput zfrglob zfrtime zfsession
 | |
| autoload -U zfstat zftp_chpwd zftp_progress zftransfer zftype zfuget zfuput
 | |
| 
 | |
| #
 | |
| # zftp completions: only use these if new-style completion is not
 | |
| # active.
 | |
| #
 | |
| if [[ ${#_patcomps} -eq 0 || -z ${_patcomps[(r)_zf*]} ]]; then
 | |
|   # only way of getting that noglob out of the way: this is unnecessary with
 | |
|   # widget-based completion
 | |
|   setopt completealiases
 | |
| 
 | |
|   compctl -f -x 'p[1]' \
 | |
|     -k '(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]' -K zfcd_match -S/ -q - \
 | |
|     'W[1,get*]' -K zfget_match - 'w[1,delete][1,remote]' -K zfget_match - \
 | |
|     'w[1,open][1,params]' -k hosts - \
 | |
|     'w[1,session]' -s '${$(zftp session):#$ZFTP_SESSION}' -- zftp
 | |
|   compctl -K zfcd_match -S/ -q zfcd zfdir zfls
 | |
|   compctl -K zfget_match zfget zfgcp zfuget zfcget
 | |
|   compctl -k hosts zfanon zfopen zfparams
 | |
|   compctl -s \
 | |
|     '$(awk '\''{print $1}'\'' ${ZFTP_BMFILE:-${ZDOTDIR:-$HOME}/.zfbkmarks})' \
 | |
|     -x 'W[1,-*n*]' \
 | |
|     -s '$(awk -F, '\''NR > 2 { print $1 }'\'' ~/.ncftp/bookmarks)' -- \
 | |
|     zfgoto zfmark
 | |
|   compctl -s '${$(zftp session):#$ZFTP_SESSION}' zfsession
 | |
|   # in _zftp for new completion, but hard to inline into a compctl
 | |
|   zftransfer_match() {
 | |
|     local sess=${1%%:*} oldsess=$ZFTP_SESSION
 | |
|     [[ -n $sess ]] && zftp session $sess
 | |
|     zfget_match ${1#*:} $2
 | |
|     [[ -n $sess && -n $oldsess ]] && zftp session $oldsess
 | |
|     reply=(${sess}:${^reply})
 | |
|   }
 | |
|   compctl -s '$(zftp session)' -S : -x 'C[0,*:*]' \
 | |
|     -K zftransfer_match -- zftransfer
 | |
| fi
 | |
| 
 | |
| return 0
 |