mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef telnet
 | |
| 
 | |
| # Parameter used:
 | |
| #
 | |
| #  telnet_hosts_ports_users
 | |
| #    The array that contains 3-tuples `host:port:user'.
 | |
| 
 | |
| local curcontext="$curcontext" state line expl
 | |
| typeset -A opt_args
 | |
| 
 | |
| if (( ! $+_telnet_args )); then
 | |
|   local help="$(_call options telnet -\? < /dev/null 2>&1)"
 | |
|   local -A optionmap
 | |
|   optionmap=(
 | |
|     '*\[-8\]*' '-8[allow 8-Bit data]'
 | |
|     '*\[-E\]*' '-E[disable an escape character]'
 | |
|     '*\[-K\]*' '-K[no automatic login]'
 | |
|     '*\[-L\]*' '-L[allow 8-Bit data on output]'
 | |
|     '*\[-N\]*' '-N[supress reverse lookup]'
 | |
|     '*\[-S tos\]*' '-S+:IP type-of-service:'
 | |
|     '*\[-X atype\]*' '-X+:authentication type to disable:'
 | |
|     '*\[-a\]*' '-a[attempt automatic login]'
 | |
|     '*\[-c\]*' '-c[disable .telnetrc]'
 | |
|     '*\[-d\]*' '-d[debug mode]'
 | |
|     '*\[-e char\]*' '-e+[specify escape character]:escape character:'
 | |
|     '*\[-f/*' '-f'
 | |
|     '*/-F\]*' '-F'
 | |
|     '*\[-k realm\]*' '-k+:realm:'
 | |
|     '*\[-l user\]*' '-l+[specify user]:user:->users'
 | |
|     '*\[-n tracefile\]*' '-n+[specify tracefile]:tracefile:_files'
 | |
|     '*\[-r\]*' '-r[rlogin like user interface]'
 | |
|     '*\[-s src_addr\]*' '-s+[set source IP address]:src_addr:'
 | |
|     '*\[-x\]*' '-x'
 | |
|     '*\[-t transcom\]*' '-t+:transcom:'
 | |
|     '*\[-noasynch\]*' '-noasynch'
 | |
|     '*\[-noasyncnet\]*' '-noasyncnet'
 | |
|     '*\[-noasynctty\]*' '-noasynctty'
 | |
|   )
 | |
|   _telnet_args=($optionmap[(K)"$help"])
 | |
| fi
 | |
| 
 | |
| _arguments -C -s \
 | |
|   "$_telnet_args[@]" \
 | |
|   ':host:->hosts' \
 | |
|   ':port:->ports'
 | |
| 
 | |
| case "$state" in
 | |
| hosts)
 | |
|   _wanted hosts expl host \
 | |
|       _combination -s '[@:]' '' users-hosts-ports \
 | |
|           ${opt_args[-l]:+users=${opt_args[-l]:q}} \
 | |
|           hosts -
 | |
|   ;;
 | |
| 
 | |
| ports)
 | |
|   _wanted ports expl port \
 | |
|       _combination -s '[@:]' '' users-hosts-ports \
 | |
|           ${opt_args[-l]:+users=${opt_args[-l]:q}} \
 | |
|           hosts="${line[1]:q}" \
 | |
|           ports -
 | |
|   ;;
 | |
| 
 | |
| users)
 | |
|   _wanted users expl user \
 | |
|       _combination -s '[@:]' '' users-hosts-ports \
 | |
|       ${line[2]:+hosts="${line[2]:q}"} \
 | |
|       ${line[3]:+ports="${line[3]:q}"} \
 | |
|       users -
 | |
|   ;;
 | |
| esac
 |