File nogravity-png15.patch of Package nogravity
diff -Naur rlx32.orig/src/gx_png.c rlx32/src/gx_png.c
--- rlx32.orig/src/gx_png.c 2005-05-23 20:14:50.000000000 +0200
+++ rlx32/src/gx_png.c 2012-12-26 13:20:24.000000000 +0100
@@ -50,7 +50,11 @@
* instead of an int, which is what fread() actually returns.
*/
check = (png_size_t)FIO_cur->fread(data, (png_size_t)1, length,
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ (SYS_FILEHANDLE)png_get_io_ptr(png_ptr));
+#else
(SYS_FILEHANDLE)png_ptr->io_ptr);
+#endif
if (check != length)
{
@@ -77,7 +81,11 @@
#ifdef _DEBUG
SYS_Msg("!%s", message);
#endif
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ longjmp(png_jmpbuf(png_ptr), 1);
+#else
longjmp(png_ptr->jmpbuf, 1);
+#endif
}
static void pngx_warning(png_structp png_ptr, png_const_charp message)
@@ -121,7 +129,11 @@
info_ptr = png_create_info_struct(png_ptr);
png_read_info(png_ptr, info_ptr); /* read all PNG info up to image data */
+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
+ if (setjmp(png_jmpbuf(png_ptr)))
+#else
if (setjmp(png_ptr->jmpbuf))
+#endif
{
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
return NULL;