Wed Jan 26 00:16:32 2011 UTC ()
Fix build with png-1.5. Problem reported by chuck.


(wiz)
diff -r1.9 -r1.10 pkgsrc/x11/XmHTML/distinfo
diff -r0 -r1.1 pkgsrc/x11/XmHTML/patches/patch-aj

cvs diff -r1.9 -r1.10 pkgsrc/x11/XmHTML/distinfo (expand / switch to unified diff)

--- pkgsrc/x11/XmHTML/distinfo 2009/09/08 19:20:49 1.9
+++ pkgsrc/x11/XmHTML/distinfo 2011/01/26 00:16:31 1.10
@@ -1,14 +1,15 @@ @@ -1,14 +1,15 @@
1$NetBSD: distinfo,v 1.9 2009/09/08 19:20:49 joerg Exp $ 1$NetBSD: distinfo,v 1.10 2011/01/26 00:16:31 wiz Exp $
2 2
3SHA1 (XmHTML-1.1.7.tar.gz) = 4d8c82f88cf0700f6fc8898323d865b83d2a1ff1 3SHA1 (XmHTML-1.1.7.tar.gz) = 4d8c82f88cf0700f6fc8898323d865b83d2a1ff1
4RMD160 (XmHTML-1.1.7.tar.gz) = 0e5cf4a0d24fc73277186a726a3997dea4ea82db 4RMD160 (XmHTML-1.1.7.tar.gz) = 0e5cf4a0d24fc73277186a726a3997dea4ea82db
5Size (XmHTML-1.1.7.tar.gz) = 1289780 bytes 5Size (XmHTML-1.1.7.tar.gz) = 1289780 bytes
6SHA1 (patch-aa) = 3d4f8b8cbb825b91da3bae64ef2b6572406189d9 6SHA1 (patch-aa) = 3d4f8b8cbb825b91da3bae64ef2b6572406189d9
7SHA1 (patch-ab) = 2f9e88b74913c735caf139646c2637a77a1232cd 7SHA1 (patch-ab) = 2f9e88b74913c735caf139646c2637a77a1232cd
8SHA1 (patch-ac) = a253e613c9f8752bbef42d5d9db180506edf0940 8SHA1 (patch-ac) = a253e613c9f8752bbef42d5d9db180506edf0940
9SHA1 (patch-ad) = 69f9244f3a567e4d2d15f3af448476167454c4c9 9SHA1 (patch-ad) = 69f9244f3a567e4d2d15f3af448476167454c4c9
10SHA1 (patch-ae) = f4d0a993d383e97ff06a29151316d57bcd21c25d 10SHA1 (patch-ae) = f4d0a993d383e97ff06a29151316d57bcd21c25d
11SHA1 (patch-af) = de3658ddbe191deb3d838f500d985c950ab4a967 11SHA1 (patch-af) = de3658ddbe191deb3d838f500d985c950ab4a967
12SHA1 (patch-ag) = acac76543e8fe98d79064bbec7830f285e9c50cd 12SHA1 (patch-ag) = acac76543e8fe98d79064bbec7830f285e9c50cd
13SHA1 (patch-ah) = 78ad8dc486da8aad6911f79eb8bd22d8417aec1f 13SHA1 (patch-ah) = 78ad8dc486da8aad6911f79eb8bd22d8417aec1f
14SHA1 (patch-ai) = 300b35e24698d6e717f0b1bdfd577df91244fba4 14SHA1 (patch-ai) = 300b35e24698d6e717f0b1bdfd577df91244fba4
 15SHA1 (patch-aj) = 7dbd41eb4c07f094f614a0ad91fbda242d167c31

File Added: pkgsrc/x11/XmHTML/patches/Attic/patch-aj
$NetBSD: patch-aj,v 1.1 2011/01/26 00:16:32 wiz Exp $

Fix build with png-1.5.

--- lib/common/readPNG.c.orig	1998-11-16 22:56:19.000000000 +0000
+++ lib/common/readPNG.c
@@ -132,7 +132,11 @@ my_png_error(png_structp png_ptr, String
 
 	_XmHTMLWarning(__WFUNC__(NULL, "png_error"), XMHTML_MSG_121, "png",
 		ib->file, msg);
+#if (PNG_LIBPNG_VER < 10500)
 	longjmp(png_ptr->jmpbuf, 1);
+#else
+	png_longjmp(png_ptr, 1);
+#endif
 }
 
 /*****
@@ -189,6 +193,10 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 	png_bytep *row_ptrs;
 	char msg[128];
 	static XmHTMLRawImageData *img_data;
+	png_colorp palette;
+	int num_palette;
+	double png_gamma;
+	png_color_16p background;
 
 	img_data = NULL;
 	data = 0;
@@ -232,7 +240,7 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 		return((XmHTMLRawImageData*)NULL);
 	}
 	/* now set error handler */
-	if(setjmp(png_ptr->jmpbuf))
+	if(setjmp(png_jmpbuf(png_ptr)))
 	{
 		/* 
 		* PNG signalled an error. Destroy image data, free any allocated
@@ -265,17 +273,18 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 	ResetRawImage(img_data);
 
 	/* save width & height */
-	width  = img_data->width  = info_ptr->width;
-	height = img_data->height = info_ptr->height;
+	width  = img_data->width  = png_get_image_width(png_ptr, info_ptr);
+	height = img_data->height = png_get_image_height(png_ptr, info_ptr);
 
 	/* image depth */
-	ib->depth = info_ptr->bit_depth;
+	ib->depth = png_get_bit_depth(png_ptr, info_ptr);
 
+	png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
 	/* no of colors */
-	ncolors = img_data->cmapsize = info_ptr->num_palette;
+	ncolors = img_data->cmapsize = num_palette;
 
 	/* type of image */
-	color_type = info_ptr->color_type;
+	color_type = png_get_color_type(png_ptr, info_ptr);
 
 	/*
 	* The fun stuff. This is based on readPNG by Greg Roelofs as found
@@ -306,7 +315,7 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 			* Actual image creation is postponed until the image is
 			* needed.
 			*/
-			if(info_ptr->valid & PNG_INFO_tRNS)
+			if(png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
 			{
 				_XmHTMLDebug(15, ("readPNG.c: tRNS chunk present\n"));
 				png_set_expand(png_ptr);
@@ -319,9 +328,9 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 				AllocRawImageCmap(img_data, ncolors);
 				for(i = 0; i < ncolors; i++)
 				{
-					GETR(img_data->cmap[i]) = info_ptr->palette[i].red;
-					GETG(img_data->cmap[i]) = info_ptr->palette[i].green;
-					GETB(img_data->cmap[i]) = info_ptr->palette[i].blue;
+					GETR(img_data->cmap[i]) = palette[i].red;
+					GETG(img_data->cmap[i]) = palette[i].green;
+					GETB(img_data->cmap[i]) = palette[i].blue;
 				}
 				has_cmap = True;
 				data = (Byte*)malloc(width*height*sizeof(Byte));
@@ -355,7 +364,7 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 			* grayscale with transparency is expanded to RGB with alpha
 			* channel.
 			*/
-			if(info_ptr->valid & PNG_INFO_tRNS)
+			if(png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
 			{
 				_XmHTMLDebug(15, ("readPNG.c: tRNS chunk present\n"));
 				png_set_gray_to_rgb(png_ptr);
@@ -434,7 +443,7 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 			break;
 		default:
 			sprintf(msg, "bad PNG image: unknown color type (%d)",
-				info_ptr->color_type);
+				png_get_color_type(png_ptr, info_ptr));
 			my_png_error(png_ptr, msg);
 			break;
 	}
@@ -444,16 +453,19 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 	* Doing that for alpha channel images would change the colortype of the
 	* current image, leading to weird results.
 	*/
-	if(!has_alpha && info_ptr->valid & PNG_INFO_bKGD)
+	if(!has_alpha && png_get_valid(png_ptr, info_ptr, PNG_INFO_bKGD))
 	{
-		png_set_background(png_ptr, &(info_ptr->background),
+		png_get_bKGD(png_ptr, info_ptr, &background);
+		png_set_background(png_ptr, background,
 			PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
-		img_data->bg = info_ptr->background.index;
+		img_data->bg = background->index;
 	}
 
+	png_get_gAMA(png_ptr, info_ptr, &png_gamma);
+
 	/* handle gamma correction */
-	if(info_ptr->valid & PNG_INFO_gAMA)
-		fg_gamma = info_ptr->gamma;
+	if(png_get_valid(png_ptr, info_ptr, PNG_INFO_gAMA))
+		fg_gamma = png_gamma;
 	else
 		fg_gamma = 0.45;
 
@@ -464,20 +476,20 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 	/* dithering gets handled by caller */
 
 	/* one byte per pixel */
-	if(info_ptr->bit_depth < 8)
+	if(png_get_bit_depth(png_ptr, info_ptr) < 8)
 		png_set_packing(png_ptr);
 
 	/* no tRNS chunk handling, we've expanded it to an alpha channel. */
 
 	/* handle interlacing */
-	if(info_ptr->interlace_type)
+	if(png_get_interlace_type(png_ptr, info_ptr))
 		npass = png_set_interlace_handling(png_ptr);
 
 	/* and now update everything */
 	png_read_update_info(png_ptr, info_ptr);
 
 	/* has possibly changed if we have promoted GrayScale or tRNS chunks */
-	color_type = info_ptr->color_type;
+	color_type = png_get_color_type(png_ptr, info_ptr);
 
 	/* new color_type? */
 	if(color_type == PNG_COLOR_TYPE_RGB_ALPHA)
@@ -497,10 +509,10 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 		* will call doAlphaChannel to do the actual image creation. 
 		*/
 		row_ptrs = (png_bytep*)malloc(height*sizeof(png_bytep));
-		png_data = (png_bytep)malloc(height*info_ptr->rowbytes);
+		png_data = (png_bytep)malloc(height*png_get_rowbytes(png_ptr, info_ptr));
 
 		for(i = 0; i < height; i++)
-			row_ptrs[i] = (png_bytep)png_data + i*info_ptr->rowbytes;
+			row_ptrs[i] = (png_bytep)png_data + i*png_get_rowbytes(png_ptr, info_ptr);
 
 		/* read it */
 		png_read_image(png_ptr, row_ptrs);
@@ -529,7 +541,7 @@ _XmHTMLReadPNG(Widget html, ImageBuffer 
 	row_ptrs = (png_bytep*)malloc(height*sizeof(png_bytep));
 
 	for(i = 0; i < height; ++i)
-		row_ptrs[i] = (png_bytep)data + i*info_ptr->rowbytes;
+		row_ptrs[i] = (png_bytep)data + i*png_get_rowbytes(png_ptr, info_ptr);
 
 	/* read it */
 	png_read_image(png_ptr, row_ptrs);