Previously, the cache for xcursors consisted of a static array. We had a
hardcoded list of supported cursor names and each one got assigned a
position in this array. This hardcoded list means that one cannot simply
use whatever cursor a cursor theme happens to provide, since the name
needs to be in our list.
In this commit, the code is rewritten. Instead of a hardcoded list, a
sorted array is now used as the cache, as provided by the BARRAY code
from common/util.h. The array is sorted by the name of the cursor.
This change implies an API change for the xcursor code. Previously, one
had to first translate a cursor name into a cache index
(xcursor_font_fromstr()) and could then use this to actually get the
cursor (xcursor_new()). With this commit, xcursor_new() is the only
function provided by the cursor code and it directly gets a string as
argument.
Signed-off-by: Uli Schlachter <psychon@znc.in>