summaryrefslogtreecommitdiff
path: root/extra/libgdiplus/libgdiplus0-giflib5.patch
diff options
context:
space:
mode:
authorMichał Masłowski <mtjm@mtjm.eu>2013-08-03 17:45:52 +0200
committerMichał Masłowski <mtjm@mtjm.eu>2013-08-03 17:45:52 +0200
commit513c776d74c56a49781a09a5a772f4ea6d6bb401 (patch)
tree161509e3271db459f14f8c69de7c52d4902ba107 /extra/libgdiplus/libgdiplus0-giflib5.patch
parent8183144fe6e064d80985ac810f6178a3cf289d0d (diff)
parente191a289464c21aafe7478065ea7ed3ddda0766f (diff)
Merge branch 'master' of ssh://parabolagnulinux.org:1863/home/parabola/abslibre-pre-mips64el
Conflicts: community/arm-elf-binutils/PKGBUILD community/bird/PKGBUILD community/cantata/PKGBUILD community/dbmail/PKGBUILD community/ekg2/PKGBUILD community/ffmpeg-compat/PKGBUILD community/gigedit/PKGBUILD community/gimp-refocus/PKGBUILD community/gmime24/PKGBUILD community/gmpc/PKGBUILD community/gnash/PKGBUILD community/id3lib-rcc/PKGBUILD community/linuxsampler/PKGBUILD community/lwm/PKGBUILD community/midori/PKGBUILD community/mplayer2/PKGBUILD community/mtpaint/PKGBUILD community/nestopia/PKGBUILD community/preload/PKGBUILD community/projectm/PKGBUILD community/rusxmms/PKGBUILD community/taglib-rcc/PKGBUILD community/the_silver_searcher/PKGBUILD community/xnee/PKGBUILD core/libgcrypt/PKGBUILD core/libusbx/PKGBUILD core/mkinitcpio-busybox/PKGBUILD extra/a2ps/PKGBUILD extra/a52dec/PKGBUILD extra/abook/PKGBUILD extra/avidemux/PKGBUILD extra/bzflag/PKGBUILD extra/cln/PKGBUILD extra/exempi/PKGBUILD extra/ffmpeg/PKGBUILD extra/fluxter/PKGBUILD extra/fontforge/PKGBUILD extra/glib/PKGBUILD extra/gnet/PKGBUILD extra/gnome-vfs/PKGBUILD extra/gnutls/PKGBUILD extra/gstreamer0.10-ugly/PKGBUILD extra/gtk/PKGBUILD extra/idnkit/PKGBUILD extra/ilmbase/PKGBUILD extra/imake/PKGBUILD extra/kdenetwork/PKGBUILD extra/libdatrie/PKGBUILD extra/libmbim/PKGBUILD extra/libmp3splt/PKGBUILD extra/libqmi/PKGBUILD extra/libtxc_dxtn/PKGBUILD extra/libxfont/PKGBUILD extra/mesa/PKGBUILD extra/modemmanager/PKGBUILD extra/nedit/PKGBUILD extra/nmap/PKGBUILD extra/openexr/PKGBUILD extra/purple-plugin-pack/PKGBUILD extra/qemu/PKGBUILD extra/qtwebkit/PKGBUILD extra/subversion/PKGBUILD extra/transmission/PKGBUILD extra/truecrypt/PKGBUILD extra/vigra/PKGBUILD extra/virtuoso/PKGBUILD extra/vlc/PKGBUILD extra/wireshark/PKGBUILD extra/wxmaxima/PKGBUILD extra/x264/PKGBUILD extra/xorg-iceauth/PKGBUILD extra/xorg-mkfontscale/PKGBUILD extra/xorg-xfd/PKGBUILD libre/abuse-libre/PKGBUILD libre/clementine-libre/PKGBUILD libre/linux-libre/PKGBUILD
Diffstat (limited to 'extra/libgdiplus/libgdiplus0-giflib5.patch')
-rw-r--r--extra/libgdiplus/libgdiplus0-giflib5.patch117
1 files changed, 117 insertions, 0 deletions
diff --git a/extra/libgdiplus/libgdiplus0-giflib5.patch b/extra/libgdiplus/libgdiplus0-giflib5.patch
new file mode 100644
index 000000000..36d2bf836
--- /dev/null
+++ b/extra/libgdiplus/libgdiplus0-giflib5.patch
@@ -0,0 +1,117 @@
+diff --git a/src/gifcodec.c b/src/gifcodec.c
+index 8dee0eb..564beed 100644
+--- a/src/gifcodec.c
++++ b/src/gifcodec.c
+@@ -39,8 +39,10 @@ GUID gdip_gif_image_format_guid = {0xb96b3cb0U, 0x0728U, 0x11d3U, {0x9d, 0x7b, 0
+
+ #include "gifcodec.h"
+
++#if GIFLIB_MAJOR < 5
+ /* giflib declares this incorrectly as EgifOpen */
+ extern GifFileType *EGifOpen(void *userData, OutputFunc writeFunc);
++#endif
+
+ /* Data structure used for callback */
+ typedef struct
+@@ -105,7 +107,7 @@ gdip_gif_inputfunc (GifFileType *gif, GifByteType *data, int len)
+ */
+
+ static int
+-AddExtensionBlockMono(SavedImage *New, int Len, BYTE ExtData[])
++AddExtensionBlockMono(SavedImage *New, int Len, int func, BYTE ExtData[])
+ {
+ ExtensionBlock *ep;
+
+@@ -129,7 +131,7 @@ AddExtensionBlockMono(SavedImage *New, int Len, BYTE ExtData[])
+
+ if (ExtData) {
+ memcpy(ep->Bytes, ExtData, Len);
+- ep->Function = New->Function;
++ ep->Function = func;
+ }
+
+ return (GIF_OK);
+@@ -232,20 +234,20 @@ DGifSlurpMono(GifFileType * GifFile, SavedImage *TrailingExtensions)
+ }
+
+ case EXTENSION_RECORD_TYPE: {
+- if (DGifGetExtension(GifFile, &temp_save.Function, &ExtData) == GIF_ERROR) {
++ int func;
++ if (DGifGetExtension(GifFile, &func, &ExtData) == GIF_ERROR) {
+ return (GIF_ERROR);
+ }
+
+ while (ExtData != NULL) {
+ /* Create an extension block with our data */
+- if (AddExtensionBlockMono(&temp_save, ExtData[0], &ExtData[1]) == GIF_ERROR) {
++ if (AddExtensionBlockMono(&temp_save, func, ExtData[0], &ExtData[1]) == GIF_ERROR) {
+ return (GIF_ERROR);
+ }
+
+ if (DGifGetExtensionNext(GifFile, &ExtData) == GIF_ERROR) {
+ return (GIF_ERROR);
+ }
+- temp_save.Function = 0;
+ }
+ break;
+ }
+@@ -303,12 +305,19 @@ gdip_load_gif_image (void *stream, GpImage **image, BOOL from_file)
+ result = NULL;
+ loop_counter = FALSE;
+
++#if GIFLIB_MAJOR < 5
+ if (from_file) {
+ gif = DGifOpen(stream, &gdip_gif_fileinputfunc);
+ } else {
+ gif = DGifOpen (stream, &gdip_gif_inputfunc);
+ }
+-
++#else
++ if (from_file)
++ gif = DGifOpen(stream, &gdip_gif_fileinputfunc, NULL);
++ else
++ gif = DGifOpen(stream, &gdip_gif_inputfunc, NULL);
++#endif
++
+ if (gif == NULL) {
+ goto error;
+ }
+@@ -660,11 +669,22 @@ gdip_save_gif_image (void *stream, GpImage *image, BOOL from_file)
+ return InvalidParameter;
+ }
+
++#if GIFLIB_MAJOR < 5
+ if (from_file) {
+ fp = EGifOpenFileName (stream, 0);
+ } else {
+ fp = EGifOpen (stream, gdip_gif_outputfunc);
+ }
++#else
++ if (from_file)
++ fp = EGifOpenFileName (stream, 0, NULL);
++ else
++ fp = EGifOpen (stream, gdip_gif_outputfunc, NULL);
++#define MakeMapObject GifMakeMapObject
++#define FreeMapObject GifFreeMapObject
++#define QuantizeBuffer GifQuantizeBuffer
++#define BitSize GifBitSize
++#endif
+
+ if (!fp) {
+ return FileNotFound;
+@@ -848,8 +868,15 @@ gdip_save_gif_image (void *stream, GpImage *image, BOOL from_file)
+ Buffer[0] = 1;
+ Buffer[1] = ptr[0];
+ Buffer[2] = ptr[1];
++#if GIFLIB_MAJOR < 5
+ EGifPutExtensionFirst(fp, APPLICATION_EXT_FUNC_CODE, 11, "NETSCAPE2.0");
+ EGifPutExtensionLast(fp, APPLICATION_EXT_FUNC_CODE, 3, Buffer);
++#else
++ EGifPutExtensionLeader(fp, APPLICATION_EXT_FUNC_CODE);
++ EGifPutExtensionBlock(fp, 11, "NETSCAPE2.0");
++ EGifPutExtensionBlock(fp, 3, Buffer);
++ EGifPutExtensionTrailer(fp);
++#endif
+ }
+ }
+