#compdef modprobe rmmod local curcontext="$curcontext" state line expl loaded _modutils_loaded_modules() { if [[ -r /proc/modules ]]; then loaded=(${${(f)"$(modprobe_remove' \ '(-r)--remove:*:loaded module:->modprobe_remove' \ '(--list)-l[list matching modules]:*:module file:->modprobe_list' \ '(-l)--list:*:module file:->modprobe_list' \ "$_modprobe_arguments[@]" && return 0 ;; esac case "$state" in modprobe_remove) _call_function ret _modutils_$state && return ret _arguments "$_modprobe_arguments[@]" \ '*:loaded module:_modutils_loaded_modules' ;; modprobe_list) _call_function ret _modutils_$state && return ret _arguments "$_modprobe_arguments[@]" \ '*:module file:compadd ${^${(M)${(f)"$(modprobe -c)"}:#path*}#*[=]}/**/*.o(:t)' esac