#compdef apm

if [[ $OSTYPE == linux* ]]
then

_arguments -C -s \
    '(--version)-V[print the apm program and exit immediately]' \
    '(-V)--version[print the apm program and exit immediately]' \
    '(--verbose)-v[print information about APM BIOS and Linux APM driver version]' \
    '(-v)--verbose[print information about APM BIOS and Linux APM driver version]' \
    '(--minutes)-m[print total minutes remaining instead of using an hh:mm format]' \
    '(-m)--minutes[print total minutes remaining instead of using an hh:mm format]' \
    '(--suspend)-s[put the machine into suspend mode if possible]' \
    '(-s)--suspend[put the machine into suspend mode if possible]' \
    '(--standby)-S[put the machine into standby mode if possible]' \
    '(-S)--standby[put the machine into standby mode if possible]' \
    '(--noignore)-n[tell the system not to ignore system-generated APM message]' \
    '(-n)--noignore[tell the system not to ignore system-generated APM message]' \
    '(--ignore)-i[tell the system to ignore system-generated APM message]' \
    '(-i)--ignore[tell the system to ignore system-generated APM message]'

elif [[ $OSTYPE == freebsd* ]]
then

_arguments -C \
     '-a[display AC line status]' \
     '-b[display battery status]' \
     '-d[disable/enable display suspension]:bool:' \
     '-e[disable/enable apm functions]:bool:' \
     '-h[disable/enable HLT in kernel context switch]:bool:' \
     '-l[display remaining battery percentage]' \
     '-r[enable resume wakeup timer]' \
     '-s[display status of APM support]' \
     '-t[display estimated remaining battery life in seconds]' \
     '-Z[transition system into standby mode]' \
     '-z[suspend the system]'

elif [[ $OSTYPE == openbsd* ]]
then

_arguments -C \
     '-z[engage suspend mode]' \
     '-S[engage stand-by mode]' \
     '-l[display estimated battery lifetime percentage]' \
     '-m[display estimated battery lifetime minutes]' \
     '-b[display battery status]' \
     '-a[display AC line status]' \
     '-v[verbose]' \
     '-f[socket]:sockname:_files'

fi
