#compdef kvno

local curcontext="$curcontext" state line ret=1

_arguments -C \
  '(-4)-c[specify credentials cache to use]:cache:_files' \
  '(-4)-e[specify encryption type]:encryption type' \
  '-q[suppress printing]' \
  '(- :)-h[display help information]' \
  '(-c -e)-4[kerberos 4 tickets]' \
  ':principal:->principal' && ret=0

if [[ $state = principal ]]; then
  if compset -P host/; then
    _hosts && ret=0
  else
    _alternative \
      'users:user:_users' \
      'services:service:compadd -S/ host' && ret=0
  fi
fi

return ret
