1 --- fontforge-20120731-b/gutils/gimagereadgif.c~ 2012-08-02 17:09:09.000000000 +0200
2 +++ fontforge-20120731-b/gutils/gimagereadgif.c 2015-05-10 14:11:16.818633712 +0200
6 static DL_CONST void *libgif=NULL;
8 +static GifFileType *(*_DGifOpenFileName)(char *, int *);
9 +static int (*_DGifCloseFile)(GifFileType *, int *);
11 static GifFileType *(*_DGifOpenFileName)(char *);
12 -static int (*_DGifSlurp)(GifFileType *);
13 static int (*_DGifCloseFile)(GifFileType *);
15 +static int (*_DGifSlurp)(GifFileType *);
17 static int loadgif() {
20 fprintf(stderr,"%s\n", dlerror());
23 +#if GIFLIB_MAJOR >= 5
24 + _DGifOpenFileName = (GifFileType *(*)(char *, int *)) dlsym(libgif,"DGifOpenFileName");
25 + _DGifCloseFile = (int (*)(GifFileType *, int *)) dlsym(libgif,"DGifCloseFile");
27 _DGifOpenFileName = (GifFileType *(*)(char *)) dlsym(libgif,"DGifOpenFileName");
28 - _DGifSlurp = (int (*)(GifFileType *)) dlsym(libgif,"DGifSlurp");
29 _DGifCloseFile = (int (*)(GifFileType *)) dlsym(libgif,"DGifCloseFile");
31 + _DGifSlurp = (int (*)(GifFileType *)) dlsym(libgif,"DGifSlurp");
32 if ( _DGifOpenFileName && _DGifSlurp && _DGifCloseFile )
39 +#if GIFLIB_MAJOR >= 5
40 + if ((gif = _DGifOpenFileName(filename, NULL)) == NULL) {
42 if ((gif = _DGifOpenFileName(filename)) == NULL) {
44 fprintf( stderr, "can't open %s\n", filename);
48 if ( _DGifSlurp(gif)==GIF_ERROR ) {
49 +#if GIFLIB_MAJOR >= 5
50 + _DGifCloseFile(gif, NULL);
54 fprintf( stderr, "Bad gif file %s\n", filename );
60 ret = GImageCreateAnimation(images,gif->ImageCount);
61 +#if GIFLIB_MAJOR >= 5
62 + _DGifCloseFile(gif, NULL);
73 +#if GIFLIB_MAJOR >= 5
74 + if ((gif = DGifOpenFileName(filename, NULL)) == NULL) {
76 if ((gif = DGifOpenFileName(filename)) == NULL) {
78 fprintf( stderr, "can't open %s\n", filename);
82 if ( DGifSlurp(gif)==GIF_ERROR ) {
83 +#if GIFLIB_MAJOR >= 5
84 + DGifCloseFile(gif, NULL);
88 fprintf(stderr,"Bad gif file %s\n", filename );
94 ret = GImageCreateAnimation(images,gif->ImageCount);
95 +#if GIFLIB_MAJOR >= 5
96 + DGifCloseFile(gif, NULL);