head 1.2; access; symbols pkgsrc-2019Q2:1.1.0.70 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.68 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.66 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.64 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.62 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.60 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.58 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.56 pkgsrc-2017Q3-base:1.1 pkgsrc-2017Q2:1.1.0.52 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.50 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.48 pkgsrc-2016Q4-base:1.1 pkgsrc-2016Q3:1.1.0.46 pkgsrc-2016Q3-base:1.1 pkgsrc-2016Q2:1.1.0.44 pkgsrc-2016Q2-base:1.1 pkgsrc-2016Q1:1.1.0.42 pkgsrc-2016Q1-base:1.1 pkgsrc-2015Q4:1.1.0.40 pkgsrc-2015Q4-base:1.1 pkgsrc-2015Q3:1.1.0.38 pkgsrc-2015Q3-base:1.1 pkgsrc-2015Q2:1.1.0.36 pkgsrc-2015Q2-base:1.1 pkgsrc-2015Q1:1.1.0.34 pkgsrc-2015Q1-base:1.1 pkgsrc-2014Q4:1.1.0.32 pkgsrc-2014Q4-base:1.1 pkgsrc-2014Q3:1.1.0.30 pkgsrc-2014Q3-base:1.1 pkgsrc-2014Q2:1.1.0.28 pkgsrc-2014Q2-base:1.1 pkgsrc-2014Q1:1.1.0.26 pkgsrc-2014Q1-base:1.1 pkgsrc-2013Q4:1.1.0.24 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.22 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.20 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.18 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.16 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.14 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.12 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.10 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.8 pkgsrc-2011Q4-base:1.1 pkgsrc-2011Q3:1.1.0.6 pkgsrc-2011Q3-base:1.1 pkgsrc-2011Q2:1.1.0.4 pkgsrc-2011Q2-base:1.1 pkgsrc-2011Q1:1.1.0.2 pkgsrc-2011Q1-base:1.1; locks; strict; comment @# @; 1.2 date 2019.09.06.08.46.26; author nros; state dead; branches; next 1.1; commitid JvxlYbI47OLqFVBB; 1.1 date 2011.01.26.00.16.32; author wiz; state Exp; branches; next ; desc @@ 1.2 log @Updated xmhtml to version 1.1.0 This version has a real master site and homepage at sourceforge. Includes updates for buildling with the latest png api and fixes to debug.c (patch-ai). Removed the patches for this. Removed patch-ab, patch-ac and patch-ae because we only build the lib. Other updates upstream: Support for utf-8 text and xft. Function XmHTMLScrollToYPos added. Fixes for crashes and various memory leaks. @ text @$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); @ 1.1 log @Fix build with png-1.5. Problem reported by chuck. @ text @d1 1 a1 1 $NetBSD$ @