about summary refs log tree commit diff
path: root/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch')
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch b/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch
new file mode 100644
index 000000000000..1755bdbce76d
--- /dev/null
+++ b/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch
@@ -0,0 +1,70 @@
+Index: b/kopete/protocols/wlm/wlmchatsession.cpp
+===================================================================
+--- a/kopete/protocols/wlm/wlmchatsession.cpp
++++ b/kopete/protocols/wlm/wlmchatsession.cpp
+@@ -63,10 +63,14 @@
+ #include "wlmprotocol.h"
+ #include "wlmaccount.h"
+ #include "wlmchatsessioninkaction.h"
+ #ifdef HAVE_GIFLIB
+ #include <gif_lib.h>
++/* old giflib has no GIFLIB_MAJOR, define to avoid cpp warnings */
++#ifndef GIFLIB_MAJOR
++#define GIFLIB_MAJOR 4
++#endif
+ #endif
+ 
+ WlmChatSession::WlmChatSession (Kopete::Protocol * protocol,
+                                 const Kopete::Contact * user,
+                                 Kopete::ContactPtrList others,
+@@ -465,15 +469,19 @@ WlmChatSession::slotInviteContact (Kopet
+ static void
+ printGifErrorMessage()
+ {
+ #ifdef HAVE_GIFLIB
+ #ifdef HAVE_GIF_ERROR_STRING // giflib 4.2.0+
++#if GIFLIB_MAJOR >= 5
++        fprintf(stderr, "GIF-LIB error (exact reporting not implemented)\n");
++#else
+         const char * errorString = GifErrorString();
+         if (errorString)
+             fprintf(stderr, "GIF-LIB error: %s\n", errorString);
+         else
+             fprintf(stderr, "GIF-LIB undefined error: %d\n", GifError());
++#endif
+ #else // older giflib versions, libungif
+         PrintGifError();
+ #endif // HAVE_GIF_ERROR_STRING
+ #endif // HAVE_GIFLIB
+ }
+@@ -481,10 +489,14 @@ printGifErrorMessage()
+ /* stolen from kpaint write_to_gif() */
+ void
+ WlmChatSession::convertToGif( const QPixmap & ink, QString filename)
+ {
+ #ifdef HAVE_GIFLIB
++#if GIFLIB_MAJOR >= 5
++#define FreeMapObject  GifFreeMapObject
++#define MakeMapObject  GifMakeMapObject
++#endif
+     int i, status;
+     GifFileType *GifFile;
+     ColorMapObject *screenColourmap;
+     ColorMapObject *imageColourmap;
+     QImage img = ink.toImage().convertToFormat(QImage::Format_Indexed8);
+@@ -523,11 +535,15 @@ WlmChatSession::convertToGif( const QPix
+             screenColourmap->Colors[i].Green= 0;
+             screenColourmap->Colors[i].Blue= 0;
+         }
+     }
+ 
++#if GIFLIB_MAJOR >= 5
++    GifFile= EGifOpenFileName(QFile::encodeName(filename).constData(), 0, NULL);
++#else
+     GifFile= EGifOpenFileName(QFile::encodeName(filename).constData(), 0);
++#endif
+     if (!GifFile) {
+         FreeMapObject(imageColourmap);
+         FreeMapObject(screenColourmap);
+         return;
+     }