nixpkgs/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch
2013-12-08 12:04:02 +02:00

70 lines
2.3 KiB
Diff

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;
}