--- ekg-1.7/src/events.c.orig 2015-12-13 14:29:18.771043146 +0100 +++ ekg-1.7/src/events.c 2015-12-13 14:50:21.057656839 +0100 @@ -1529,6 +1529,7 @@ ColorMapObject *pal; #endif int fd; + int giferror; fd = open(fname, O_RDONLY); if (fd == -1) { @@ -1536,9 +1537,8 @@ goto err; } - if (!(file = DGifOpenFileHandle(fd))) { - snprintf(errbuf, sizeof(errbuf), "DGifOpenFileHandle(): %d", - GifLastError()); + if (!(file = DGifOpenFileHandle(fd, &giferror))) { + snprintf(errbuf, sizeof(errbuf), "DGifOpenFileHandle(): %d", giferror); goto err2; } @@ -1548,7 +1548,7 @@ } if (DGifSlurp(file) != GIF_OK) { - snprintf(errbuf, sizeof(errbuf), "DGifSlurp(): %d", GifLastError()); + snprintf(errbuf, sizeof(errbuf), "DGifSlurp(): %d", file->Error); goto err3; } @@ -1576,12 +1576,12 @@ token->data = (unsigned char *) xmalloc(token->sx * token->sy); memcpy(token->data, file->SavedImages[0].RasterBits, token->sx * token->sy); - DGifCloseFile(file); + DGifCloseFile(file, NULL); return 0; err3: - DGifCloseFile(file); + DGifCloseFile(file, NULL); err2: close(fd); err: