minor linux portability for buffered image writes
[dcpu16] / display.c
index b6488a52df7b85098e2a4ff4266930b363986102..9d59b290030f54b3eaa93fc903dc9df236ef96d5 100644 (file)
--- a/display.c
+++ b/display.c
@@ -115,7 +115,13 @@ void memstream_cookie_fini_(struct memstream_cookie_ *c) {
 }
 
 static
-int memstream_write_fn_(void *c, const char *buf, int size) {
+/* of course these can't be the same */
+#ifdef HAVE_FOPENCOOKIE
+ssize_t memstream_write_fn_(void *c, const char *buf, size_t size)
+#else /* HAVE_FOPENCOOKIE */
+int memstream_write_fn_(void *c, const char *buf, int size)
+#endif /* HAVE_FOPENCOOKIE */
+{
     struct memstream_cookie_ *cookie = c;
 
     while ((size_t)size + cookie->offset > cookie->allocated) {
@@ -227,7 +233,7 @@ void display_png_write_(struct dcpu16_display_ *d) {
 
 #ifdef HAVE_FOPENCOOKIE
     /* linux-style memory stream */
-    struct cookie_io_functions_t cookie_io_functions = {
+    cookie_io_functions_t cookie_io_functions = {
         .read = NULL,
         .write = memstream_write_fn_,
         .seek = NULL,