#compdef hash rehash local state line expl common_args curcontext="$curcontext" typeset -A opt_args common_args=( \ '-d[use named directory hash table]' \ '(-r -m -v)-f[rebuild hash table]' ) case ${service} in hash) _arguments -C -s -S \ '(-f -m -v)-r[empty hash table]' \ '(-f -r)-m[treat arguments as patterns]' \ '(-f -r -m)-v[list entries as they are added]' \ '(-f -r -v)-L[list in the form of calls to hash]' \ "${common_args[@]}" \ '(-d -f -r -m -v -L)*:hash:->hashval' && return 0 ;; rehash) _arguments -C -s ${common_args[@]} && return 0 ;; esac if [[ $state = hashval ]]; then if (( $+opt_args[-d] )); then if compset -P 1 '*='; then _wanted -C value files expl directories _path_files -/ else _wanted -C name named-directories expl 'named directory' \ compadd -q -S '=' -k nameddirs fi elif compset -P 1 '*='; then _wanted -C value values expl 'executable file' _files -g '*(-*)' else _wanted -C name commands expl command compadd -q -S '=' -k commands fi fi