1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-22 18:35:09 +00:00

Handle giflib 5 changes (tiny change)

* configure.ac: Update for giflib 5. 

* src/image.c (GIFLIB_MAJOR): Ensure it's defined.
(DGifOpen, DGifOpenFileName): Handle giflib 5 syntax.  (Bug#15531)
This commit is contained in:
Barry Fishman 2013-10-09 20:37:44 -04:00 committed by Glenn Morris
parent 9db13baf0c
commit f3606ef766
4 changed files with 28 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
* configure.ac: Update for giflib 5. (Bug#15531)
2013-10-08 Eli Zaretskii <eliz@gnu.org>
* configure.ac (HAVE_MENUS): Define unconditionally.

View File

@ -3106,8 +3106,9 @@ elif test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
|| test "${HAVE_W32}" = "yes"; then
AC_CHECK_HEADER(gif_lib.h,
# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
# Earlier versions can crash Emacs.
[AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
# Earlier versions can crash Emacs, but version 5.0 removes EGifPutExtensionLast.
[AC_CHECK_LIB(gif, GifMakeMapObject, HAVE_GIF=yes,
[AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])])
if test "$HAVE_GIF" = yes; then
LIBGIF=-lgif

View File

@ -1,3 +1,8 @@
2013-10-10 Barry Fishman <barry_fishman@acm.org> (tiny change)
* image.c (GIFLIB_MAJOR): Ensure it's defined.
(DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
2013-10-09 Paul Eggert <eggert@cs.ucla.edu>
* fns.c (sxhash_bool_vector): Fix buffer read overrun.

View File

@ -7219,14 +7219,22 @@ gif_image_p (Lisp_Object object)
#endif /* HAVE_NTGUI */
#ifndef GIFLIB_MAJOR
#define GIFLIB_MAJOR 0
#endif
#ifdef WINDOWSNT
/* GIF library details. */
DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *));
DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *));
#if GIFLIB_MAJOR < 5
DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc));
DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *));
#else
DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc, int *));
DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *, int *));
#endif
static bool
init_gif_functions (void)
@ -7316,7 +7324,11 @@ gif_load (struct frame *f, struct image *img)
}
/* Open the GIF file. */
#if GIFLIB_MAJOR < 5
gif = fn_DGifOpenFileName (SSDATA (file));
#else
gif = fn_DGifOpenFileName (SSDATA (file), NULL);
#endif
if (gif == NULL)
{
image_error ("Cannot open `%s'", file, Qnil);
@ -7337,7 +7349,11 @@ gif_load (struct frame *f, struct image *img)
memsrc.len = SBYTES (specified_data);
memsrc.index = 0;
#if GIFLIB_MAJOR < 5
gif = fn_DGifOpen (&memsrc, gif_read_from_memory);
#else
gif = fn_DGifOpen (&memsrc, gif_read_from_memory, NULL);
#endif
if (!gif)
{
image_error ("Cannot open memory source `%s'", img->spec, Qnil);