File use_system_libs_libpng14.patch of Package freeimage

Index: FreeImage/Source/FreeImage/PluginPNG.cpp
===================================================================
--- FreeImage.orig/Source/FreeImage/PluginPNG.cpp
+++ FreeImage/Source/FreeImage/PluginPNG.cpp
@@ -37,8 +37,8 @@
 
 // ----------------------------------------------------------
 
-#include "../ZLib/zlib.h"
-#include "../LibPNG/png.h"
+#include <zlib.h>
+#include <png.h>
 
 // ----------------------------------------------------------
 
@@ -106,7 +106,11 @@ ReadMetadata(png_structp png_ptr, png_in
 			tag = FreeImage_CreateTag();
 			if(!tag) return FALSE;
 
+#ifdef PNG_iTXt_SUPPORTED
 			DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length);
+#else
+			DWORD tag_length = text_ptr[i].text_length;
+#endif
 
 			FreeImage_SetTagLength(tag, tag_length);
 			FreeImage_SetTagCount(tag, tag_length);
@@ -153,9 +157,11 @@ WriteMetadata(png_structp png_ptr, png_i
 			text_metadata.key = (char*)FreeImage_GetTagKey(tag);	// keyword, 1-79 character description of "text"
 			text_metadata.text = (char*)FreeImage_GetTagValue(tag);	// comment, may be an empty string (ie "")
 			text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
+#ifdef PNG_iTXt_SUPPORTED
 			text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
 			text_metadata.lang = 0;		 // language code, 0-79 characters or a NULL pointer
 			text_metadata.lang_key = 0;	 // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
+#endif
 
 			// set the tag 
 			png_set_text(png_ptr, info_ptr, &text_metadata, 1);
@@ -175,9 +181,11 @@ WriteMetadata(png_structp png_ptr, png_i
 		text_metadata.key = (char*)g_png_xmp_keyword;					// keyword, 1-79 character description of "text"
 		text_metadata.text = (char*)FreeImage_GetTagValue(tag);	// comment, may be an empty string (ie "")
 		text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
+#ifdef PNG_iTXt_SUPPORTED
 		text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
 		text_metadata.lang = 0;		 // language code, 0-79 characters or a NULL pointer
 		text_metadata.lang_key = 0;	 // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
+#endif
 
 		// set the tag 
 		png_set_text(png_ptr, info_ptr, &text_metadata, 1);
@@ -559,7 +567,7 @@ Load(FreeImageIO *io, fi_handle handle,
 
 			if (png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP)) {
 				png_charp profile_name = NULL;
-				png_bytep profile_data = NULL;
+				png_charp profile_data = NULL;
 				png_uint_32 profile_length = 0;
 				int  compression_type;
 
@@ -599,7 +607,9 @@ Load(FreeImageIO *io, fi_handle handle,
 				row_pointers[height - 1 - k] = FreeImage_GetScanLine(dib, k);			
 			}
 
+#ifdef PNG_BENIGN_ERRORS_SUPPORTED
 			png_set_benign_errors(png_ptr, 1);
+#endif
 			png_read_image(png_ptr, row_pointers);
 
 			// check if the bitmap contains transparency, if so enable it in the header
@@ -843,7 +853,7 @@ Save(FreeImageIO *io, FIBITMAP *dib, fi_
 
 			FIICCPROFILE *iccProfile = FreeImage_GetICCProfile(dib);
 			if (iccProfile->size && iccProfile->data) {
-				png_set_iCCP(png_ptr, info_ptr, "Embedded Profile", 0, (png_const_bytep)iccProfile->data, iccProfile->size);
+				png_set_iCCP(png_ptr, info_ptr, "Embedded Profile", 0, (png_charp)iccProfile->data, iccProfile->size);
 			}
 
 			// write metadata
openSUSE Build Service is sponsored by