diff -ruN sng-1.0.5/configure sng-1.0.5-patched//configure --- sng-1.0.5/configure 2010-11-22 21:46:24.000000000 +0100 +++ sng-1.0.5-patched//configure 2011-02-12 19:50:15.000000000 +0100 @@ -4043,7 +4043,7 @@ _ACEOF else - for dir in /etc/X11/ /usr/share/X11/rgb.txt /usr/X11R6/lib/X11 /usr/lib/X11 /usr/openwin/lib + for dir in /etc/X11/ /usr/share/X11/rgb.txt /usr/X11R6/lib/X11 /usr/lib/X11 /usr/openwin/lib /usr/X11/share/X11 do if test -f ${dir}/rgb.txt then --- a/sngd.c +++ b/sngd.c @@ -11,6 +11,18 @@ #include "config.h" /* for RGBTXT */ #include "png.h" #include "sng.h" + +/* cope with API issues */ +#if PNG_LIBPNG_VER_MAJOR == 1 + #if PNG_LIBPNG_VER_MINOR <= 2 + #define TRANS_COLOR trans_values + #define TRANS_ALPHA trans + #endif + #if PNG_LIBPNG_VER_MINOR >= 4 + #define TRANS_COLOR trans_color + #define TRANS_ALPHA trans_alpha + #endif +#endif png_structp png_ptr; png_infop info_ptr; @@ -794,17 +809,17 @@ fprintf(fpout, "tRNS {\n"); switch (info_ptr->color_type) { case PNG_COLOR_TYPE_GRAY: - fprintf(fpout, " gray: %u;\n", info_ptr->trans_values.gray); + fprintf(fpout, " gray: %u;\n", info_ptr->TRANS_COLOR.gray); break; case PNG_COLOR_TYPE_RGB: fprintf(fpout, " red: %u; green: %u; blue: %u;\n", - info_ptr->trans_values.red, - info_ptr->trans_values.green, - info_ptr->trans_values.blue); + info_ptr->TRANS_COLOR.red, + info_ptr->TRANS_COLOR.green, + info_ptr->TRANS_COLOR.blue); break; case PNG_COLOR_TYPE_PALETTE: for (i = 0; i < info_ptr->num_trans; i++) - fprintf(fpout, " %u", info_ptr->trans[i]); + fprintf(fpout, " %u", info_ptr->TRANS_ALPHA[i]); break; case PNG_COLOR_TYPE_GRAY_ALPHA: case PNG_COLOR_TYPE_RGB_ALPHA: