mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +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' && return 0
 | 
						|
 | 
						|
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
 |