32 cursor_t *cursor =
safe_calloc(1,
sizeof (*cursor));
33 char *filename_cur, *extension;
35 ASSERT(filename_png != NULL);
41 filename_cur =
safe_calloc(1, strlen(filename_png) + 8);
42 strlcpy(filename_cur, filename_png, strlen(filename_png) + 8);
43 extension = strrchr(filename_cur,
'.');
44 if (extension != NULL)
45 strlcpy(extension,
".cur", 8);
47 strlcpy(&filename_cur[strlen(filename_cur)],
".cur", 8);
48 cursor->crs = LoadCursorFromFileA(filename_cur);
49 if (cursor->crs == NULL) {
50 win_perror(GetLastError(),
"Error loading cursor file %s",
66 ASSERT(cursor->crs != NULL);
67 DestroyCursor(cursor->crs);
75 ASSERT(cursor->crs != NULL);
76 SetCursor(cursor->crs);
void cursor_make_current(cursor_t *cursor)
cursor_t * cursor_read_from_file(const char *filename_png)
void cursor_free(cursor_t *cursor)
static void * safe_calloc(size_t nmemb, size_t size)