summaryrefslogtreecommitdiffstats
path: root/source/xap/xv/xv-libpng-1.5.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap/xv/xv-libpng-1.5.patch')
-rw-r--r--source/xap/xv/xv-libpng-1.5.patch543
1 files changed, 0 insertions, 543 deletions
diff --git a/source/xap/xv/xv-libpng-1.5.patch b/source/xap/xv/xv-libpng-1.5.patch
deleted file mode 100644
index 66659ff8e..000000000
--- a/source/xap/xv/xv-libpng-1.5.patch
+++ /dev/null
@@ -1,543 +0,0 @@
-$OpenBSD: patch-xvpng_c,v 1.2 2011/08/29 18:07:44 espie Exp $
-
-Fix build with png-1.5.
-
---- xvpng.c.orig Mon May 14 02:53:28 2007
-+++ xvpng.c Mon Aug 29 15:05:31 2011
-@@ -31,6 +31,7 @@
-
- #ifdef HAVE_PNG
-
-+#include "zlib.h"
- #include "png.h"
-
- /*** Stuff for PNG Dialog box ***/
-@@ -41,7 +42,7 @@
- #define COMPRESSION 6 /* default zlib compression level, not max
- (Z_BEST_COMPRESSION) */
-
--#define HAVE_tRNS (info_ptr->valid & PNG_INFO_tRNS)
-+#define HAVE_tRNS (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
-
- #define DWIDE 86
- #define DHIGH 104
-@@ -435,6 +436,16 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- {
- png_struct *png_ptr;
- png_info *info_ptr;
-+ struct {
-+ /* IHDR */
-+ png_uint_32 width;
-+ png_uint_32 height;
-+ int bit_depth;
-+ int color_type;
-+ int interlace_type;
-+ /* PLTE */
-+ int use_palette;
-+ } info_tmp;
- png_color palette[256];
- png_textp text;
- byte r1[256], g1[256], b1[256]; /* storage for deduped palette */
-@@ -444,6 +455,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- byte *p, *png_line;
- char software[256];
- char *savecmnt;
-+ int num_text, max_text;
-
- if ((png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,
- png_xv_error, png_xv_warning)) == NULL) {
-@@ -458,7 +470,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- FatalError(software);
- }
-
-- if (setjmp(png_ptr->jmpbuf)) {
-+ if (setjmp(png_jmpbuf(png_ptr))) {
- png_destroy_write_struct(&png_ptr, &info_ptr);
- return -1;
- }
-@@ -489,8 +501,8 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- png_set_filter(png_ptr, 0, filter);
- }
-
-- info_ptr->width = w;
-- info_ptr->height = h;
-+ info_tmp.width = w;
-+ info_tmp.height = h;
- if (w <= 0 || h <= 0) {
- SetISTR(ISTR_WARNING, "%s: image dimensions out of range (%dx%d)",
- fbasename, w, h);
-@@ -498,7 +510,8 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- return -1;
- }
-
-- info_ptr->interlace_type = interCB.val ? 1 : 0;
-+ info_tmp.interlace_type =
-+ interCB.val ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE;
-
- linesize = 0; /* quiet a compiler warning */
-
-@@ -542,40 +555,40 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- png_destroy_write_struct(&png_ptr, &info_ptr);
- return -1;
- }
-- info_ptr->color_type = PNG_COLOR_TYPE_RGB;
-- info_ptr->bit_depth = 8;
-+ info_tmp.color_type = PNG_COLOR_TYPE_RGB;
-+ info_tmp.bit_depth = 8;
-+ info_tmp.use_palette = 0;
- } else /* ptype == PIC8 */ {
- linesize = w;
-- info_ptr->color_type = PNG_COLOR_TYPE_PALETTE;
-+ info_tmp.color_type = PNG_COLOR_TYPE_PALETTE;
- if (numuniqcols <= 2)
-- info_ptr->bit_depth = 1;
-+ info_tmp.bit_depth = 1;
- else
- if (numuniqcols <= 4)
-- info_ptr->bit_depth = 2;
-+ info_tmp.bit_depth = 2;
- else
- if (numuniqcols <= 16)
-- info_ptr->bit_depth = 4;
-+ info_tmp.bit_depth = 4;
- else
-- info_ptr->bit_depth = 8;
-+ info_tmp.bit_depth = 8;
-
- for (i = 0; i < numuniqcols; i++) {
- palette[i].red = r1[i];
- palette[i].green = g1[i];
- palette[i].blue = b1[i];
- }
-- info_ptr->num_palette = numuniqcols;
-- info_ptr->palette = palette;
-- info_ptr->valid |= PNG_INFO_PLTE;
-+ info_tmp.use_palette = 1;
- }
- }
-
- else if (colorType == F_GREYSCALE || colorType == F_BWDITHER) {
-- info_ptr->color_type = PNG_COLOR_TYPE_GRAY;
-+ info_tmp.color_type = PNG_COLOR_TYPE_GRAY;
-+ info_tmp.use_palette = 0;
- if (colorType == F_BWDITHER) {
- /* shouldn't happen */
- if (ptype == PIC24) FatalError("PIC24 and B/W Stipple in WritePNG()");
-
-- info_ptr->bit_depth = 1;
-+ info_tmp.bit_depth = 1;
- if (MONO(r1[0], g1[0], b1[0]) > MONO(r1[1], g1[1], b1[1])) {
- remap[0] = 1;
- remap[1] = 0;
-@@ -595,7 +608,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- png_destroy_write_struct(&png_ptr, &info_ptr);
- return -1;
- }
-- info_ptr->bit_depth = 8;
-+ info_tmp.bit_depth = 8;
- }
- else /* ptype == PIC8 */ {
- int low_precision;
-@@ -617,7 +630,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- for (; i < 256; i++)
- remap[i]=0; /* shouldn't be necessary, but... */
-
-- info_ptr->bit_depth = 8;
-+ info_tmp.bit_depth = 8;
-
- /* Note that this fails most of the time because of gamma */
- /* (and that would be a bug: GRR FIXME) */
-@@ -636,7 +649,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- for (i = 0; i < numuniqcols; i++) {
- remap[i] &= 0xf;
- }
-- info_ptr->bit_depth = 4;
-+ info_tmp.bit_depth = 4;
-
- /* try to adjust to 2-bit precision grayscale */
-
-@@ -652,7 +665,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- for (i = 0; i < numuniqcols; i++) {
- remap[i] &= 3;
- }
-- info_ptr->bit_depth = 2;
-+ info_tmp.bit_depth = 2;
-
- /* try to adjust to 1-bit precision grayscale */
-
-@@ -668,7 +681,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- for (i = 0; i < numuniqcols; i++) {
- remap[i] &= 1;
- }
-- info_ptr->bit_depth = 1;
-+ info_tmp.bit_depth = 1;
- }
- }
- }
-@@ -677,6 +690,20 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- else
- png_error(png_ptr, "Unknown colorstyle in WritePNG");
-
-+ png_set_IHDR(png_ptr, info_ptr,
-+ info_tmp.width, info_tmp.height,
-+ info_tmp.bit_depth, info_tmp.color_type,
-+ info_tmp.interlace_type, PNG_COMPRESSION_TYPE_BASE,
-+ PNG_FILTER_TYPE_BASE);
-+ if (info_tmp.use_palette) {
-+ /*
-+ * info_ptr->num_palette = numuniqcols;
-+ * info_ptr->palette = palette;
-+ * info_ptr->valid |= PNG_INFO_PLTE;
-+ */
-+ png_set_PLTE(png_ptr, info_ptr, palette, numuniqcols);
-+ }
-+
- if ((text = (png_textp)malloc(sizeof(png_text)))) {
- sprintf(software, "XV %s", REVDATE);
-
-@@ -684,21 +711,29 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- text->key = "Software";
- text->text = software;
- text->text_length = strlen(text->text);
-+ text->lang = NULL;
-
-- info_ptr->max_text = 1;
-- info_ptr->num_text = 1;
-- info_ptr->text = text;
-+ /*
-+ * info_ptr->max_text = 1;
-+ * info_ptr->num_text = 1;
-+ * info_ptr->text = text;
-+ */
-+ png_set_text(png_ptr, info_ptr, text, 1);
-+ num_text = max_text = 1;
- }
-
- Display_Gamma = gDial.val; /* Save the current gamma for loading */
-
- // GRR FIXME: add .Xdefaults option to omit writing gamma (size, cumulative errors when editing)--alternatively, modify save box to include "omit" checkbox
-- info_ptr->gamma = 1.0/gDial.val;
-- info_ptr->valid |= PNG_INFO_gAMA;
-+ /*
-+ * info_ptr->gamma = 1.0/gDial.val;
-+ * info_ptr->valid |= PNG_INFO_gAMA;
-+ */
-+ png_set_gAMA(png_ptr, info_ptr, 1.0/gDial.val);
-
- png_write_info(png_ptr, info_ptr);
-
-- if (info_ptr->bit_depth < 8)
-+ if (info_tmp.bit_depth < 8)
- png_set_packing(png_ptr);
-
- pass=png_set_interlace_handling(png_ptr);
-@@ -711,13 +746,13 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- int j;
- p = pic;
- for (j = 0; j < h; ++j) {
-- if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) {
-+ if (info_tmp.color_type == PNG_COLOR_TYPE_GRAY) {
- int k;
- for (k = 0; k < w; ++k)
- png_line[k] = ptype==PIC24 ? MONO(p[k*3], p[k*3+1], p[k*3+2]) :
- remap[pc2nc[p[k]]];
- png_write_row(png_ptr, png_line);
-- } else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) {
-+ } else if (info_tmp.color_type == PNG_COLOR_TYPE_PALETTE) {
- int k;
- for (k = 0; k < w; ++k)
- png_line[k] = pc2nc[p[k]];
-@@ -743,24 +778,26 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- strcpy(savecmnt, picComments);
- key = savecmnt;
- tp = text;
-- info_ptr->num_text = 0;
-
-+ png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, -1);
-+ num_text = 0;
-+
- comment = strchr(key, ':');
-
- do {
- /* Allocate a larger structure for comments if necessary */
-- if (info_ptr->num_text >= info_ptr->max_text)
-+ if (num_text >= max_text)
- {
- if ((tp =
-- realloc(text, (info_ptr->num_text + 2)*sizeof(png_text))) == NULL)
-+ realloc(text, (num_text + 2)*sizeof(png_text))) == NULL)
- {
- break;
- }
- else
- {
- text = tp;
-- tp = &text[info_ptr->num_text];
-- info_ptr->max_text += 2;
-+ tp = &text[num_text];
-+ max_text += 2;
- }
- }
-
-@@ -810,7 +847,7 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- }
-
- tp->compression = tp->text_length > 640 ? 0 : -1;
-- info_ptr->num_text++;
-+ num_text++;
- tp++;
- }
- }
-@@ -834,27 +871,29 @@ int WritePNG(fp, pic, ptype, w, h, rmap, gmap, bmap, n
- tp->text = key;
- tp->text_length = q - key;
- tp->compression = tp->text_length > 750 ? 0 : -1;
-- info_ptr->num_text++;
-+ num_text++;
- key = NULL;
- }
- } while (key && *key);
-+ png_set_text(png_ptr, info_ptr, text, num_text);
- }
- else {
-- info_ptr->num_text = 0;
-+ png_free_data(png_ptr, info_ptr, PNG_FREE_TEXT, -1);
- }
- }
-- info_ptr->text = text;
-
-- png_convert_from_time_t(&(info_ptr->mod_time), time(NULL));
-- info_ptr->valid |= PNG_INFO_tIME;
-+ {
-+ png_time mod_time;
-
-+ png_convert_from_time_t(&mod_time, time(NULL));
-+ png_set_tIME(png_ptr, info_ptr, &mod_time);
-+ }
-+
- png_write_end(png_ptr, info_ptr);
- fflush(fp); /* just in case we core-dump before finishing... */
-
- if (text) {
- free(text);
-- /* must do this or png_destroy_write_struct() 0.97+ will free text again: */
-- info_ptr->text = (png_textp)NULL;
- if (savecmnt)
- {
- free(savecmnt);
-@@ -886,6 +925,8 @@ int LoadPNG(fname, pinfo)
- int pass;
- int gray_to_rgb;
- size_t commentsize;
-+ png_textp text;
-+ int num_text;
-
- fbasename = BaseName(fname);
-
-@@ -921,7 +962,7 @@ int LoadPNG(fname, pinfo)
- FatalError("malloc failure in LoadPNG");
- }
-
-- if (setjmp(png_ptr->jmpbuf)) {
-+ if (setjmp(png_jmpbuf(png_ptr))) {
- fclose(fp);
- png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
- if (!read_anything) {
-@@ -945,8 +986,8 @@ int LoadPNG(fname, pinfo)
- #endif
- png_read_info(png_ptr, info_ptr);
-
-- pinfo->w = pinfo->normw = info_ptr->width;
-- pinfo->h = pinfo->normh = info_ptr->height;
-+ pinfo->w = pinfo->normw = png_get_image_width(png_ptr, info_ptr);
-+ pinfo->h = pinfo->normh = png_get_image_height(png_ptr, info_ptr);
- if (pinfo->w <= 0 || pinfo->h <= 0) {
- SetISTR(ISTR_WARNING, "%s: image dimensions out of range (%dx%d)",
- fbasename, pinfo->w, pinfo->h);
-@@ -957,9 +998,9 @@ int LoadPNG(fname, pinfo)
- pinfo->frmType = F_PNG;
-
- sprintf(pinfo->fullInfo, "PNG, %d bit ",
-- info_ptr->bit_depth * info_ptr->channels);
-+ png_get_bit_depth(png_ptr,info_ptr) * png_get_channels(png_ptr, info_ptr));
-
-- switch(info_ptr->color_type) {
-+ switch(png_get_color_type(png_ptr, info_ptr)) {
- case PNG_COLOR_TYPE_PALETTE:
- strcat(pinfo->fullInfo, "palette color");
- break;
-@@ -983,15 +1024,20 @@ int LoadPNG(fname, pinfo)
-
- sprintf(pinfo->fullInfo + strlen(pinfo->fullInfo),
- ", %sinterlaced. (%d bytes)",
-- info_ptr->interlace_type ? "" : "non-", filesize);
-+ png_get_interlace_type(png_ptr, info_ptr) ? "" : "non-", filesize);
-
-- sprintf(pinfo->shrtInfo, "%lux%lu PNG", info_ptr->width, info_ptr->height);
-+ sprintf(pinfo->shrtInfo, "%lux%lu PNG",
-+ png_get_image_width(png_ptr, info_ptr),
-+ png_get_image_height(png_ptr, info_ptr));
-
-- if (info_ptr->bit_depth < 8)
-+ if (png_get_bit_depth(png_ptr, info_ptr) < 8)
- png_set_packing(png_ptr);
-
-- if (info_ptr->valid & PNG_INFO_gAMA)
-- png_set_gamma(png_ptr, Display_Gamma, info_ptr->gamma);
-+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_gAMA)) {
-+ double gamma;
-+ png_get_gAMA(png_ptr, info_ptr, &gamma);
-+ png_set_gamma(png_ptr, Display_Gamma, gamma);
-+ }
- /*
- *else
- * png_set_gamma(png_ptr, Display_Gamma, 0.45);
-@@ -1000,7 +1046,7 @@ int LoadPNG(fname, pinfo)
- gray_to_rgb = 0; /* quiet a compiler warning */
-
- if (have_imagebg) {
-- if (info_ptr->bit_depth == 16) {
-+ if (png_get_bit_depth(png_ptr, info_ptr) == 16) {
- my_background.red = imagebgR;
- my_background.green = imagebgG;
- my_background.blue = imagebgB;
-@@ -1013,8 +1059,8 @@ int LoadPNG(fname, pinfo)
- }
- png_set_background(png_ptr, &my_background, PNG_BACKGROUND_GAMMA_SCREEN,
- 0, Display_Gamma);
-- if ((info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
-- (info_ptr->color_type == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
-+ if ((png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY_ALPHA ||
-+ (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY && HAVE_tRNS)) &&
- (imagebgR != imagebgG || imagebgR != imagebgB)) /* i.e., colored bg */
- {
- png_set_gray_to_rgb(png_ptr);
-@@ -1022,8 +1068,10 @@ int LoadPNG(fname, pinfo)
- gray_to_rgb = 1;
- }
- } else {
-- if (info_ptr->valid & PNG_INFO_bKGD) {
-- png_set_background(png_ptr, &info_ptr->background,
-+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_bKGD)) {
-+ png_color_16p background;
-+ png_get_bKGD(png_ptr, info_ptr, &background);
-+ png_set_background(png_ptr, background,
- PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
- } else {
- my_background.red = my_background.green = my_background.blue =
-@@ -1033,13 +1081,13 @@ int LoadPNG(fname, pinfo)
- }
- }
-
-- if (info_ptr->bit_depth == 16)
-+ if (png_get_bit_depth(png_ptr, info_ptr) == 16)
- png_set_strip_16(png_ptr);
-
-- if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
-- info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
-+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY ||
-+ png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY_ALPHA)
- {
-- if (info_ptr->bit_depth == 1)
-+ if (png_get_bit_depth(png_ptr, info_ptr) == 1)
- pinfo->colType = F_BWDITHER;
- else
- pinfo->colType = F_GREYSCALE;
-@@ -1050,8 +1098,8 @@ int LoadPNG(fname, pinfo)
-
- png_read_update_info(png_ptr, info_ptr);
-
-- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB ||
-- info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
-+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB ||
-+ png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA || gray_to_rgb)
- {
- linesize = 3 * pinfo->w;
- if (linesize/3 < pinfo->w) { /* know pinfo->w > 0 (see above) */
-@@ -1065,16 +1113,20 @@ int LoadPNG(fname, pinfo)
- } else {
- linesize = pinfo->w;
- pinfo->type = PIC8;
-- if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY ||
-- info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
-+ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY ||
-+ png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_GRAY_ALPHA) {
- for (i = 0; i < 256; i++)
- pinfo->r[i] = pinfo->g[i] = pinfo->b[i] = i;
- } else {
-+ png_colorp palette;
-+ int num_palette;
-+
-+ png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette);
- pinfo->colType = F_FULLCOLOR;
-- for (i = 0; i < info_ptr->num_palette; i++) {
-- pinfo->r[i] = info_ptr->palette[i].red;
-- pinfo->g[i] = info_ptr->palette[i].green;
-- pinfo->b[i] = info_ptr->palette[i].blue;
-+ for (i = 0; i < num_palette; i++) {
-+ pinfo->r[i] = palette[i].red;
-+ pinfo->g[i] = palette[i].green;
-+ pinfo->b[i] = palette[i].blue;
- }
- }
- }
-@@ -1092,7 +1144,17 @@ int LoadPNG(fname, pinfo)
- png_error(png_ptr, "can't allocate space for PNG image");
- }
-
-- png_start_read_image(png_ptr);
-+ /*
-+ * In png 1.5 (or at least 1.5.1beta06) calling this after calling
-+ * png_read_update_info() does nothing besides issue a misleading
-+ * warning message. The png docs are not at all clear on what an
-+ * application is *supposed* to do, so I'm not sure if this is a
-+ * problem with xv or with libpng. However, for now I'll comment
-+ * this out as according to the png source that should be harmless
-+ * and we don't want to see the warning message every time someone
-+ * opens a png.
-+ */
-+ /*png_start_read_image(png_ptr);*/
-
- for (i = 0; i < pass; i++) {
- byte *p = pinfo->pic;
-@@ -1106,22 +1168,24 @@ int LoadPNG(fname, pinfo)
-
- png_read_end(png_ptr, info_ptr);
-
-- if (info_ptr->num_text > 0) {
-+ png_get_text(png_ptr, info_ptr, &text, &num_text);
-+ if (num_text > 0) {
- commentsize = 1;
-
-- for (i = 0; i < info_ptr->num_text; i++)
-- commentsize += strlen(info_ptr->text[i].key) + 1 +
-- info_ptr->text[i].text_length + 2;
-+ for (i = 0; i < num_text; i++)
-+ commentsize += strlen(text[i].key) + 1 +
-+ text[i].text_length + 2;
-
- if ((pinfo->comment = malloc(commentsize)) == NULL) {
- png_warning(png_ptr,"can't allocate comment string");
- }
- else {
- pinfo->comment[0] = '\0';
-- for (i = 0; i < info_ptr->num_text; i++) {
-- strcat(pinfo->comment, info_ptr->text[i].key);
-+ for (i = 0; i < num_text; i++) {
-+ strcat(pinfo->comment, text[i].key);
- strcat(pinfo->comment, "::");
-- strcat(pinfo->comment, info_ptr->text[i].text);
-+ if (text[i].text_length != 0)
-+ strcat(pinfo->comment, text[i].text);
- strcat(pinfo->comment, "\n");
- }
- }
-@@ -1143,7 +1207,7 @@ png_xv_error(png_ptr, message)
- {
- SetISTR(ISTR_WARNING,"%s: libpng error: %s", fbasename, message);
-
-- longjmp(png_ptr->jmpbuf, 1);
-+ longjmp(png_jmpbuf(png_ptr), 1);
- }
-
-