Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 538976 | Differences between
and this patch

Collapse All | Expand All

(-)imlib-1.9.15.old/gdk_imlib/io-gif.c (-2 / +4 lines)
Lines 1-8 Link Here
1
#include <config.h>
1
#include <config.h>
2
#include "gdk_imlib.h"
2
#include "gdk_imlib.h"
3
#include "gdk_imlib_private.h"
3
#include "gdk_imlib_private.h"
4
#include <gifutil.h>
4
5
5
#ifndef HAVE_LIBGIF
6
#ifndef HAVE_LIBGIF
7
/*------------------------*/
6
unsigned char loader_gif (FILE *f, int *w, int *h, int *t)
8
unsigned char loader_gif (FILE *f, int *w, int *h, int *t)
7
{
9
{
8
	return NULL;
10
	return NULL;
Lines 43-56 Link Here
43
    {
45
    {
44
      if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
46
      if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
45
	{
47
	{
46
	  PrintGifError();
48
	  _PrintGifError(gif);
47
	  rec = TERMINATE_RECORD_TYPE;
49
	  rec = TERMINATE_RECORD_TYPE;
48
	}
50
	}
49
      if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
51
      if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
50
	{
52
	{
51
	  if (DGifGetImageDesc(gif) == GIF_ERROR)
53
	  if (DGifGetImageDesc(gif) == GIF_ERROR)
52
	    {
54
	    {
53
	      PrintGifError();
55
	      _PrintGifError(gif);
54
	      rec = TERMINATE_RECORD_TYPE;
56
	      rec = TERMINATE_RECORD_TYPE;
55
	    }
57
	    }
56
	  *w = gif->Image.Width;
58
	  *w = gif->Image.Width;
(-)imlib-1.9.15.old/gifutil.h (+26 lines)
Line 0 Link Here
1
#ifndef __GIFUTIL_H__
2
#define __GIFUTIL_H__
3
4
static void
5
_PrintGifError(GifFileType *gif)
6
{
7
  /* GIFLIB_MAJOR is only defined in libgif >= 4.2.0 */
8
  /* libgif 4.2.0 has retired PrintGifError() and added GifErrorString() */
9
#if defined(GIFLIB_MAJOR) && defined(GIFLIB_MINOR) && \
10
           ((GIFLIB_MAJOR == 4 && GIFLIB_MINOR >= 2) || GIFLIB_MAJOR > 4)
11
  /* Static string actually, hence the const char* cast */
12
  
13
#if GIFLIB_MAJOR >= 5
14
  const char* gifliberr = (const char*) GifErrorString(gif->Error);
15
#else
16
  const char* gifliberr = (const char*) GifErrorString();
17
#endif
18
  if (gifliberr == NULL)
19
      gifliberr = "Unknown error";
20
  fprintf(stderr, "%s\n", gifliberr);
21
#else
22
  PrintGifError();
23
#endif
24
}
25
26
#endif
(-)imlib-1.9.15.old/Imlib/load.c (-2 / +21 lines)
Lines 3-8 Link Here
3
#include "Imlib.h"
3
#include "Imlib.h"
4
#include "Imlib_private.h"
4
#include "Imlib_private.h"
5
#include <setjmp.h>
5
#include <setjmp.h>
6
#include <gifutil.h>
6
7
7
#define G_MAXINT ((int) 0x7fffffff)
8
#define G_MAXINT ((int) 0x7fffffff)
8
9
Lines 431-436 Link Here
431
#endif /* HAVE_LIBTIFF */
432
#endif /* HAVE_LIBTIFF */
432
433
433
#ifdef HAVE_LIBGIF
434
#ifdef HAVE_LIBGIF
435
/*------------------------*/
436
/*------------------------*/
434
unsigned char      *
437
unsigned char      *
435
_LoadGIF(ImlibData * id, FILE *f, int *w, int *h, int *t)
438
_LoadGIF(ImlibData * id, FILE *f, int *w, int *h, int *t)
436
{
439
{
Lines 454-475 Link Here
454
  fd = fileno(f);
457
  fd = fileno(f);
455
  /* Apparently rewind(f) isn't sufficient */
458
  /* Apparently rewind(f) isn't sufficient */
456
  lseek(fd, (long) 0, 0);
459
  lseek(fd, (long) 0, 0);
460
461
#if GIFLIB_MAJOR >= 5
462
  int errCode = 0;
463
464
  gif = DGifOpenFileHandle(fd, &errCode);
465
  if (!gif)
466
  {
467
    const char* gifliberr = (const char*) GifErrorString(errCode);
468
    if (gifliberr == NULL)
469
      gifliberr = "Unknown error";
470
    fprintf(stderr, "%s\n", gifliberr);
471
    return NULL;
472
  }
473
#else
457
  gif = DGifOpenFileHandle(fd);
474
  gif = DGifOpenFileHandle(fd);
458
475
459
  if (!gif)
476
  if (!gif)
460
    return NULL;
477
    return NULL;
478
#endif
479
461
  do
480
  do
462
    {
481
    {
463
      if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
482
      if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
464
	{
483
	{
465
	  PrintGifError();
484
	  _PrintGifError(gif);
466
	  rec = TERMINATE_RECORD_TYPE;
485
	  rec = TERMINATE_RECORD_TYPE;
467
	}
486
	}
468
      if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
487
      if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
469
	{
488
	{
470
	  if (DGifGetImageDesc(gif) == GIF_ERROR)
489
	  if (DGifGetImageDesc(gif) == GIF_ERROR)
471
	    {
490
	    {
472
	      PrintGifError();
491
	      _PrintGifError(gif);
473
	      rec = TERMINATE_RECORD_TYPE;
492
	      rec = TERMINATE_RECORD_TYPE;
474
	    }
493
	    }
475
	  *w = gif->Image.Width;
494
	  *w = gif->Image.Width;

Return to bug 538976