## vim:ft=zsh
## Check for a command/function
## Taken from the grml zshrc - http://grml.org
local -i comonly

if [[ ${1} == '-c' ]] ; then
    (( comonly = 1 ))
    shift
else
    (( comonly = 0 ))
fi

if (( ${#argv} != 1 )) ; then
    printf 'usage: check_com [-c] <command>\n' >&2
    return 1
fi

if (( comonly > 0 )) ; then
    [[ -n ${commands[$1]}  ]] && return 0
    return 1
fi

if   [[ -n ${commands[$1]}    ]] \
  || [[ -n ${functions[$1]}   ]] \
  || [[ -n ${aliases[$1]}     ]] \
  || [[ -n ${reswords[(r)$1]} ]] ; then

    return 0
fi

return 1