#compdef atrm atq at batch local context state line expl ret=1 typeset -A opt_args #todo (when extremely bored) make -l and -d do the atq and atrm completions case $service in atrm) _arguments \ '-V[print version number]' \ '*:job number:->jobs' && ret=0 ;; atq) _arguments \ '-V[print version number]' \ '-q[uses specified queue]:a-z+A-Z' && ret=0 ;; at|batch) _arguments \ - new-job \ '-V[print version number]' \ '-q[uses specified queue, uppercase acts as batch]:a-z+A-Z' \ '-f[read job from file rather than from stdin]:file:_files' \ '-v[show the time the job will be executed]' \ '-m[send mail even if there was no output]' \ ':time:' \ - atq \ '-l[alias for atq]' \ - atrm \ '-d[alias for atrm]' \ - show-job \ '-c[cat specified jobs to stdout]:*:job number:->jobs' && ret=0 esac case $state in jobs) _wanted -C $context jobs expl 'job number' compadd ${(M)${(f)"$(_call_program job atq)"}##<->} && ret=0 ;; esac return ret