#autoload

local expl

if (( ! $+_cursor_cache )); then
  local file

  file=( /usr/{include,{{X11R6,openwin},local{,/X11{,R6}}}/include}/X11/cursorfont.h(N) )

  if (( $#file )); then
    _cursor_cache=( "${(@)${(@)${(M@)${(@f)$(< $file[1])}:#*XC_*}[2,-1]#* XC_}% *}" )
  else
    _cursor_cache=( X_cursor )
  fi
fi

_wanted cursors expl 'cursor name' \
    compadd "$@" -M 'm:-=_ r:|_=*' -a - _cursor_cache
