svn commit: r375623 - in head/astro/xplanet: . files
Antoine Brodin
antoine at FreeBSD.org
Fri Dec 26 14:19:03 UTC 2014
Author: antoine
Date: Fri Dec 26 14:19:01 2014
New Revision: 375623
URL: https://svnweb.freebsd.org/changeset/ports/375623
QAT: https://qat.redports.org/buildarchive/r375623/
Log:
Allow building with either giflib 4.2 or 5.0
Added:
head/astro/xplanet/files/patch-src_libimage_gif.c (contents, props changed)
Modified:
head/astro/xplanet/Makefile
Modified: head/astro/xplanet/Makefile
==============================================================================
--- head/astro/xplanet/Makefile Fri Dec 26 13:57:53 2014 (r375622)
+++ head/astro/xplanet/Makefile Fri Dec 26 14:19:01 2014 (r375623)
@@ -37,8 +37,6 @@ TIFF_LIB_DEPENDS= libtiff.so:${PORTSDIR}
post-extract:
@${REINPLACE_CMD} -e "s/default/default.sample/g" ${WRKSRC}/Makefile.in
- @${REINPLACE_CMD} -e "s/PrintGifError();/GifError();/g" \
- ${WRKSRC}/src/libimage/gif.c
@${MV} ${WRKSRC}/xplanet/config/default ${WRKSRC}/xplanet/config/default.sample
.include <bsd.port.mk>
Added: head/astro/xplanet/files/patch-src_libimage_gif.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/astro/xplanet/files/patch-src_libimage_gif.c Fri Dec 26 14:19:01 2014 (r375623)
@@ -0,0 +1,190 @@
+--- src/libimage/gif.c.orig 2006-03-25 22:50:51 UTC
++++ src/libimage/gif.c
+@@ -28,6 +28,26 @@
+ distribution.
+ */
+
++static void
++#if GIFLIB_MAJOR >= 5
++localPrintGifError(int ErrorCode)
++#else
++localPrintGifError(void)
++#endif
++{
++#if GIFLIB_MAJOR >= 5
++ char *Err = GifErrorString(ErrorCode);
++#else
++ char *Err = GifErrorString();
++ int ErrorCode = GifError();
++#endif
++
++ if (Err != NULL)
++ fprintf(stderr, "\nGIF-LIB error: %s.\n", Err);
++ else
++ fprintf(stderr, "\nGIF-LIB undefined error %d.\n", ErrorCode);
++}
++
+ int
+ read_gif(const char *filename, int *width, int *height, unsigned char **rgb)
+ {
+@@ -42,11 +62,15 @@ read_gif(const char *filename, int *widt
+ int color_index;
+ unsigned char *ptr = NULL;
+
++#if GIFLIB_MAJOR >= 5
++ infile = DGifOpenFileName(filename, NULL);
++#else
+ infile = DGifOpenFileName(filename);
++#endif
+
+ if (infile == NULL)
+ {
+- PrintGifError();
++ fprintf(stderr, "Can't open GIF file %s\n", filename);
+ return(0);
+ }
+
+@@ -54,7 +78,11 @@ read_gif(const char *filename, int *widt
+ {
+ if (DGifGetRecordType(infile, &record_type) == GIF_ERROR)
+ {
+- PrintGifError();
++#if GIFLIB_MAJOR >= 5
++ localPrintGifError(infile->Error);
++#else
++ localPrintGifError();
++#endif
+ return(0);
+ }
+
+@@ -63,7 +91,11 @@ read_gif(const char *filename, int *widt
+ case IMAGE_DESC_RECORD_TYPE:
+ if (DGifGetImageDesc(infile) == GIF_ERROR)
+ {
+- PrintGifError();
++#if GIFLIB_MAJOR >= 5
++ localPrintGifError(infile->Error);
++#else
++ localPrintGifError();
++#endif
+ return(0);
+ }
+
+@@ -107,14 +139,22 @@ read_gif(const char *filename, int *widt
+ GifByteType *ext;
+ if (DGifGetExtension(infile, &ext_code, &ext) == GIF_ERROR)
+ {
+- PrintGifError();
++#if GIFLIB_MAJOR >= 5
++ localPrintGifError(infile->Error);
++#else
++ localPrintGifError();
++#endif
+ return(0);
+ }
+ while (ext != NULL)
+ {
+ if (DGifGetExtensionNext(infile, &ext) == GIF_ERROR)
+ {
+- PrintGifError();
++#if GIFLIB_MAJOR >= 5
++ localPrintGifError(infile->Error);
++#else
++ localPrintGifError();
++#endif
+ return(0);
+ }
+ }
+@@ -178,7 +218,11 @@ write_gif(const char *filename, int widt
+ return(0);
+ }
+
++#if GIFLIB_MAJOR >= 5
++ colormap = GifMakeMapObject(colormap_size, NULL);
++#else
+ colormap = MakeMapObject(colormap_size, NULL);
++#endif
+
+ for (i = 0; i < width * height; i++)
+ {
+@@ -187,10 +231,15 @@ write_gif(const char *filename, int widt
+ blue[i] = (GifByteType) rgb[3*i+2];
+ }
+
++#if GIFLIB_MAJOR >= 5
++ if (GifQuantizeBuffer(width, height, &colormap_size, red, green, blue,
++ buffer, colormap->Colors) == GIF_ERROR)
++#else
+ if (QuantizeBuffer(width, height, &colormap_size, red, green, blue,
+ buffer, colormap->Colors) == GIF_ERROR)
++#endif
+ {
+- PrintGifError();
++ fprintf(stderr, "Can't quantize buffer\n");
+ return(0);
+ }
+
+@@ -198,24 +247,36 @@ write_gif(const char *filename, int widt
+ free(green);
+ free(blue);
+
+- outfile = EGifOpenFileName((char *) filename, FALSE);
++#if GIFLIB_MAJOR >= 5
++ outfile = EGifOpenFileName((char *) filename, false, NULL);
++#else
++ outfile = EGifOpenFileName((char *) filename, false);
++#endif
+ if (outfile == NULL)
+ {
+- PrintGifError();
++ fprintf(stderr, "Can't open GIF file %s\n", filename);
+ return(0);
+ }
+
+ if (EGifPutScreenDesc(outfile, width, height, colormap_size, 0, colormap)
+ == GIF_ERROR)
+ {
+- PrintGifError();
++#if GIFLIB_MAJOR >= 5
++ localPrintGifError(outfile->Error);
++#else
++ localPrintGifError();
++#endif
+ return(0);
+ }
+
+- if (EGifPutImageDesc(outfile, 0, 0, width, height, FALSE, NULL)
++ if (EGifPutImageDesc(outfile, 0, 0, width, height, false, NULL)
+ == GIF_ERROR)
+ {
+- PrintGifError();
++#if GIFLIB_MAJOR >= 5
++ localPrintGifError(outfile->Error);
++#else
++ localPrintGifError();
++#endif
+ return(0);
+ }
+
+@@ -224,7 +285,11 @@ write_gif(const char *filename, int widt
+ {
+ if (EGifPutLine(outfile, ptr, width) == GIF_ERROR)
+ {
+- PrintGifError();
++#if GIFLIB_MAJOR >= 5
++ localPrintGifError(outfile->Error);
++#else
++ localPrintGifError();
++#endif
+ return(0);
+ }
+ ptr += width;
+@@ -233,7 +298,7 @@ write_gif(const char *filename, int widt
+ EGifSpew(outfile);
+
+ if (EGifCloseFile(outfile) == GIF_ERROR)
+- PrintGifError();
++ fprintf(stderr, "Can't close GIF file %s\n", filename);
+
+ free(buffer);
+
More information about the svn-ports-head
mailing list